cleaner bind
This commit is contained in:
		@@ -216,7 +216,7 @@ namespace AbiEncoder {
 | 
			
		||||
            this.bindList = {};
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public bind(dataType: DataType, section: CalldataSection = CalldataSection.DATA) {
 | 
			
		||||
        public bind(dataType: DataType, section: CalldataSection) {
 | 
			
		||||
            if (dataType.getId() in this.bindList) {
 | 
			
		||||
                throw `Rebind on ${dataType.getId()}`;
 | 
			
		||||
            }
 | 
			
		||||
@@ -284,12 +284,12 @@ namespace AbiEncoder {
 | 
			
		||||
            this.memblock = memblock;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public bind(calldata: Calldata) {
 | 
			
		||||
        public bind(calldata: Calldata, section: CalldataSection) {
 | 
			
		||||
            if (this.memblock === undefined) {
 | 
			
		||||
                calldata.bind(this);
 | 
			
		||||
                calldata.bind(this, section);
 | 
			
		||||
            }
 | 
			
		||||
            _.each(this.children, (child: DataType) => {
 | 
			
		||||
                child.bind(calldata);
 | 
			
		||||
                child.bind(calldata, CalldataSection.DATA);
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -729,17 +729,10 @@ namespace AbiEncoder {
 | 
			
		||||
 | 
			
		||||
        encode(args: any[]): string {
 | 
			
		||||
            const calldata = new Calldata(this.selector, this.params.length);
 | 
			
		||||
 | 
			
		||||
            // Write params section
 | 
			
		||||
            const params = this.params;
 | 
			
		||||
            _.each(params, (param: DataType, i: number) => {
 | 
			
		||||
                // Assign value to param
 | 
			
		||||
                param.assignValue(args[i]);
 | 
			
		||||
                // Binds top-level parameter to the params section of calldata
 | 
			
		||||
                calldata.bind(param, CalldataSection.PARAMS);
 | 
			
		||||
                // Binds parameter's children to the data section of calldata,
 | 
			
		||||
                // while retaining internal pointers
 | 
			
		||||
                param.bind(calldata);
 | 
			
		||||
                param.bind(calldata, CalldataSection.PARAMS);
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            console.log(calldata);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user