accounts/abi: return toGoType error immediately (#25565)
This commit is contained in:
		
							parent
							
								
									052c634917
								
							
						
					
					
						commit
						c2918c2f47
					
				@ -187,6 +187,9 @@ func (arguments Arguments) UnpackValues(data []byte) ([]interface{}, error) {
 | 
				
			|||||||
	virtualArgs := 0
 | 
						virtualArgs := 0
 | 
				
			||||||
	for index, arg := range nonIndexedArgs {
 | 
						for index, arg := range nonIndexedArgs {
 | 
				
			||||||
		marshalledValue, err := toGoType((index+virtualArgs)*32, arg.Type, data)
 | 
							marshalledValue, err := toGoType((index+virtualArgs)*32, arg.Type, data)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		if arg.Type.T == ArrayTy && !isDynamicType(arg.Type) {
 | 
							if arg.Type.T == ArrayTy && !isDynamicType(arg.Type) {
 | 
				
			||||||
			// If we have a static array, like [3]uint256, these are coded as
 | 
								// If we have a static array, like [3]uint256, these are coded as
 | 
				
			||||||
			// just like uint256,uint256,uint256.
 | 
								// just like uint256,uint256,uint256.
 | 
				
			||||||
@ -204,9 +207,6 @@ func (arguments Arguments) UnpackValues(data []byte) ([]interface{}, error) {
 | 
				
			|||||||
			// coded as just like uint256,bool,uint256
 | 
								// coded as just like uint256,bool,uint256
 | 
				
			||||||
			virtualArgs += getTypeSize(arg.Type)/32 - 1
 | 
								virtualArgs += getTypeSize(arg.Type)/32 - 1
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return nil, err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		retval = append(retval, marshalledValue)
 | 
							retval = append(retval, marshalledValue)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return retval, nil
 | 
						return retval, nil
 | 
				
			||||||
 | 
				
			|||||||
@ -162,6 +162,9 @@ func forTupleUnpack(t Type, output []byte) (interface{}, error) {
 | 
				
			|||||||
	virtualArgs := 0
 | 
						virtualArgs := 0
 | 
				
			||||||
	for index, elem := range t.TupleElems {
 | 
						for index, elem := range t.TupleElems {
 | 
				
			||||||
		marshalledValue, err := toGoType((index+virtualArgs)*32, *elem, output)
 | 
							marshalledValue, err := toGoType((index+virtualArgs)*32, *elem, output)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		if elem.T == ArrayTy && !isDynamicType(*elem) {
 | 
							if elem.T == ArrayTy && !isDynamicType(*elem) {
 | 
				
			||||||
			// If we have a static array, like [3]uint256, these are coded as
 | 
								// If we have a static array, like [3]uint256, these are coded as
 | 
				
			||||||
			// just like uint256,uint256,uint256.
 | 
								// just like uint256,uint256,uint256.
 | 
				
			||||||
@ -179,9 +182,6 @@ func forTupleUnpack(t Type, output []byte) (interface{}, error) {
 | 
				
			|||||||
			// coded as just like uint256,bool,uint256
 | 
								// coded as just like uint256,bool,uint256
 | 
				
			||||||
			virtualArgs += getTypeSize(*elem)/32 - 1
 | 
								virtualArgs += getTypeSize(*elem)/32 - 1
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return nil, err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		retval.Field(index).Set(reflect.ValueOf(marshalledValue))
 | 
							retval.Field(index).Set(reflect.ValueOf(marshalledValue))
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return retval.Interface(), nil
 | 
						return retval.Interface(), nil
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user