duanbing / go-evm Goto Github PK
View Code? Open in Web Editor NEWGo EVM extracted from go-ethereum
Go EVM extracted from go-ethereum
&vm.Contract{CallerAddress:[0 0 0 0 0 0 0 0 0 0 0 0 100 117 97 110 98 105 110 103], caller:vm.AccountRef{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x75, 0x61, 0x6e, 0x62, 0x69, 0x6e, 0x67}, self:vm.AccountRef{0x9f, 0x20, 0xca, 0xc3, 0x8e, 0xbe, 0xf9, 0x6f, 0x12, 0xd0, 0x5a, 0xd0, 0xcb, 0x13, 0xd, 0x60, 0x31, 0xe5, 0xcc, 0xc3}, jumpdests:vm.destinations{}, Code:[]uint8{0x60, 0x60, 0x60, 0x40, 0x52, 0x34, 0x15, 0x61, 0x0, 0xf, 0x57, 0x60, 0x0, 0x80, 0xfd, 0x5b, 0x60, 0xb1, 0x80, 0x61, 0x0, 0x1d, 0x60, 0x0, 0x39, 0x60, 0x0, 0xf3, 0x0, 0x60, 0x60, 0x60, 0x40, 0x52, 0x60, 0x4, 0x36, 0x10, 0x60, 0x3f, 0x57, 0x60, 0x0, 0x35, 0x7c, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x4, 0x63, 0xff, 0xff, 0xff, 0xff, 0x16, 0x80, 0x63, 0xc6, 0x88, 0x8f, 0xa1, 0x14, 0x60, 0x44, 0x57, 0x5b, 0x60, 0x0, 0x80, 0xfd, 0x5b, 0x34, 0x15, 0x60, 0x4e, 0x57, 0x60, 0x0, 0x80, 0xfd, 0x5b, 0x60, 0x62, 0x60, 0x4, 0x80, 0x80, 0x35, 0x90, 0x60, 0x20, 0x1, 0x90, 0x91, 0x90, 0x50, 0x50, 0x60, 0x78, 0x56, 0x5b, 0x60, 0x40, 0x51, 0x80, 0x82, 0x81, 0x52, 0x60, 0x20, 0x1, 0x91, 0x50, 0x50, 0x60, 0x40, 0x51, 0x80, 0x91, 0x3, 0x90, 0xf3, 0x5b, 0x60, 0x0, 0x60, 0x7, 0x82, 0x2, 0x90, 0x50, 0x91, 0x90, 0x50, 0x56, 0x0, 0xa1, 0x65, 0x62, 0x7a, 0x7a, 0x72, 0x30, 0x58, 0x20, 0xc4, 0xac, 0x95, 0xa, 0x92, 0xca, 0xa9, 0x94, 0x4a, 0x7e, 0x7, 0xe0, 0x30, 0x54, 0x2e, 0x9e, 0xd7, 0xdb, 0x92, 0x63, 0x1a, 0xdc, 0xc2, 0x34, 0xd8, 0x6a, 0x10, 0x5c, 0x85, 0x3b, 0x81, 0xa2, 0x0, 0x29}, CodeHash:[42 24 57 106 249 64 22 41 247 118 142 36 252 51 115 12 253 158 1 204 78 173 219 202 138 81 21 196 39 72 138 125], CodeAddr:[159 32 202 195 142 190 249 111 18 208 90 208 203 19 13 96 49 229 204 195], Input:[]uint8(nil), Gas:0x1da018, value:(*big.Int)(0xc4201359e0), Args:[]uint8(nil), DelegateCall:false}
get code [0] from [96 96 96 64 82 52 21 97 0 15 87 96 0 128 253 91 96 177 128 97 0 29 96 0 57 96 0 243 0 96 96 96 64 82 96 4 54 16 96 63 87 96 0 53 124 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 4 99 255 255 255 255 22 128 99 198 136 143 161 20 96 68 87 91 96 0 128 253 91 52 21 96 78 87 96 0 128 253 91 96 98 96 4 128 128 53 144 96 32 1 144 145 144 80 80 96 120 86 91 96 64 81 128 130 129 82 96 32 1 145 80 80 96 64 81 128 145 3 144 243 91 96 0 96 7 130 2 144 80 145 144 80 86 0 161 101 98 122 122 114 48 88 32 196 172 149 10 146 202 169 148 74 126 7 224 48 84 46 158 215 219 146 99 26 220 194 52 216 106 16 92 133 59 129 162 0 41]
operation=96,pc=0, vm.operation{execute:(vm.executionFunc)(0x425d9b0), gasCost:(vm.gasFunc)(0x42489d0), validateStack:(vm.stackValidationFunc)(0x425e310), memorySize:(vm.memorySizeFunc)(nil), halts:false, jumps:false, writes:false, valid:true, reverts:false, returns:false}
get code [2] from [96 96 96 64 82 52 21 97 0 15 87 96 0 128 253 91 96 177 128 97 0 29 96 0 57 96 0 243 0 96 96 96 64 82 96 4 54 16 96 63 87 96 0 53 124 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 4 99 255 255 255 255 22 128 99 198 136 143 161 20 96 68 87 91 96 0 128 253 91 52 21 96 78 87 96 0 128 253 91 96 98 96 4 128 128 53 144 96 32 1 144 145 144 80 80 96 120 86 91 96 64 81 128 130 129 82 96 32 1 145 80 80 96 64 81 128 145 3 144 243 91 96 0 96 7 130 2 144 80 145 144 80 86 0 161 101 98 122 122 114 48 88 32 196 172 149 10 146 202 169 148 74 126 7 224 48 84 46 158 215 219 146 99 26 220 194 52 216 106 16 92 133 59 129 162 0 41]
operation=96,pc=2, vm.operation{execute:(vm.executionFunc)(0x425d9b0), gasCost:(vm.gasFunc)(0x42489d0), validateStack:(vm.stackValidationFunc)(0x425e310), memorySize:(vm.memorySizeFunc)(nil), halts:false, jumps:false, writes:false, valid:true, reverts:false, returns:false}
get code [4] from [96 96 96 64 82 52 21 97 0 15 87 96 0 128 253 91 96 177 128 97 0 29 96 0 57 96 0 243 0 96 96 96 64 82 96 4 54 16 96 63 87 96 0 53 124 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 4 99 255 255 255 255 22 128 99 198 136 143 161 20 96 68 87 91 96 0 128 253 91 52 21 96 78 87 96 0 128 253 91 96 98 96 4 128 128 53 144 96 32 1 144 145 144 80 80 96 120 86 91 96 64 81 128 130 129 82 96 32 1 145 80 80 96 64 81 128 145 3 144 243 91 96 0 96 7 130 2 144 80 145 144 80 86 0 161 101 98 122 122 114 48 88 32 196 172 149 10 146 202 169 148 74 126 7 224 48 84 46 158 215 219 146 99 26 220 194 52 216 106 16 92 133 59 129 162 0 41]
operation=82,pc=4, vm.operation{execute:(vm.executionFunc)(0x42511c0), gasCost:(vm.gasFunc)(0x4247120), validateStack:(vm.stackValidationFunc)(0x425e310), memorySize:(vm.memorySizeFunc)(0x425c530), halts:false, jumps:false, writes:false, valid:true, reverts:false, returns:false}
get code [5] from [96 96 96 64 82 52 21 97 0 15 87 96 0 128 253 91 96 177 128 97 0 29 96 0 57 96 0 243 0 96 96 96 64 82 96 4 54 16 96 63 87 96 0 53 124 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 4 99 255 255 255 255 22 128 99 198 136 143 161 20 96 68 87 91 96 0 128 253 91 52 21 96 78 87 96 0 128 253 91 96 98 96 4 128 128 53 144 96 32 1 144 145 144 80 80 96 120 86 91 96 64 81 128 130 129 82 96 32 1 145 80 80 96 64 81 128 145 3 144 243 91 96 0 96 7 130 2 144 80 145 144 80 86 0 161 101 98 122 122 114 48 88 32 196 172 149 10 146 202 169 148 74 126 7 224 48 84 46 158 215 219 146 99 26 220 194 52 216 106 16 92 133 59 129 162 0 41]
operation=52,pc=5, vm.operation{execute:(vm.executionFunc)(0x424e260), gasCost:(vm.gasFunc)(0x425d160), validateStack:(vm.stackValidationFunc)(0x425e310), memorySize:(vm.memorySizeFunc)(nil), halts:false, jumps:false, writes:false, valid:true, reverts:false, returns:false}
get code [6] from [96 96 96 64 82 52 21 97 0 15 87 96 0 128 253 91 96 177 128 97 0 29 96 0 57 96 0 243 0 96 96 96 64 82 96 4 54 16 96 63 87 96 0 53 124 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 4 99 255 255 255 255 22 128 99 198 136 143 161 20 96 68 87 91 96 0 128 253 91 52 21 96 78 87 96 0 128 253 91 96 98 96 4 128 128 53 144 96 32 1 144 145 144 80 80 96 120 86 91 96 64 81 128 130 129 82 96 32 1 145 80 80 96 64 81 128 145 3 144 243 91 96 0 96 7 130 2 144 80 145 144 80 86 0 161 101 98 122 122 114 48 88 32 196 172 149 10 146 202 169 148 74 126 7 224 48 84 46 158 215 219 146 99 26 220 194 52 216 106 16 92 133 59 129 162 0 41]
operation=21,pc=6, vm.operation{execute:(vm.executionFunc)(0x424c130), gasCost:(vm.gasFunc)(0x425d160), validateStack:(vm.stackValidationFunc)(0x425e310), memorySize:(vm.memorySizeFunc)(nil), halts:false, jumps:false, writes:false, valid:true, reverts:false, returns:false}
get code [7] from [96 96 96 64 82 52 21 97 0 15 87 96 0 128 253 91 96 177 128 97 0 29 96 0 57 96 0 243 0 96 96 96 64 82 96 4 54 16 96 63 87 96 0 53 124 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 4 99 255 255 255 255 22 128 99 198 136 143 161 20 96 68 87 91 96 0 128 253 91 52 21 96 78 87 96 0 128 253 91 96 98 96 4 128 128 53 144 96 32 1 144 145 144 80 80 96 120 86 91 96 64 81 128 130 129 82 96 32 1 145 80 80 96 64 81 128 145 3 144 243 91 96 0 96 7 130 2 144 80 145 144 80 86 0 161 101 98 122 122 114 48 88 32 196 172 149 10 146 202 169 148 74 126 7 224 48 84 46 158 215 219 146 99 26 220 194 52 216 106 16 92 133 59 129 162 0 41]
operation=97,pc=7, vm.operation{execute:(vm.executionFunc)(0x425d9b0), gasCost:(vm.gasFunc)(0x42489d0), validateStack:(vm.stackValidationFunc)(0x425e310), memorySize:(vm.memorySizeFunc)(nil), halts:false, jumps:false, writes:false, valid:true, reverts:false, returns:false}
get code [10] from [96 96 96 64 82 52 21 97 0 15 87 96 0 128 253 91 96 177 128 97 0 29 96 0 57 96 0 243 0 96 96 96 64 82 96 4 54 16 96 63 87 96 0 53 124 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 4 99 255 255 255 255 22 128 99 198 136 143 161 20 96 68 87 91 96 0 128 253 91 52 21 96 78 87 96 0 128 253 91 96 98 96 4 128 128 53 144 96 32 1 144 145 144 80 80 96 120 86 91 96 64 81 128 130 129 82 96 32 1 145 80 80 96 64 81 128 145 3 144 243 91 96 0 96 7 130 2 144 80 145 144 80 86 0 161 101 98 122 122 114 48 88 32 196 172 149 10 146 202 169 148 74 126 7 224 48 84 46 158 215 219 146 99 26 220 194 52 216 106 16 92 133 59 129 162 0 41]
operation=87,pc=10, vm.operation{execute:(vm.executionFunc)(0x4251bf0), gasCost:(vm.gasFunc)(0x425d160), validateStack:(vm.stackValidationFunc)(0x425e310), memorySize:(vm.memorySizeFunc)(nil), halts:false, jumps:true, writes:false, valid:true, reverts:false, returns:false}
get code [11] from [96 96 96 64 82 52 21 97 0 15 87 96 0 128 253 91 96 177 128 97 0 29 96 0 57 96 0 243 0 96 96 96 64 82 96 4 54 16 96 63 87 96 0 53 124 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 4 99 255 255 255 255 22 128 99 198 136 143 161 20 96 68 87 91 96 0 128 253 91 52 21 96 78 87 96 0 128 253 91 96 98 96 4 128 128 53 144 96 32 1 144 145 144 80 80 96 120 86 91 96 64 81 128 130 129 82 96 32 1 145 80 80 96 64 81 128 145 3 144 243 91 96 0 96 7 130 2 144 80 145 144 80 86 0 161 101 98 122 122 114 48 88 32 196 172 149 10 146 202 169 148 74 126 7 224 48 84 46 158 215 219 146 99 26 220 194 52 216 106 16 92 133 59 129 162 0 41]
operation=96,pc=11, vm.operation{execute:(vm.executionFunc)(0x425d9b0), gasCost:(vm.gasFunc)(0x42489d0), validateStack:(vm.stackValidationFunc)(0x425e310), memorySize:(vm.memorySizeFunc)(nil), halts:false, jumps:false, writes:false, valid:true, reverts:false, returns:false}
get code [13] from [96 96 96 64 82 52 21 97 0 15 87 96 0 128 253 91 96 177 128 97 0 29 96 0 57 96 0 243 0 96 96 96 64 82 96 4 54 16 96 63 87 96 0 53 124 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 4 99 255 255 255 255 22 128 99 198 136 143 161 20 96 68 87 91 96 0 128 253 91 52 21 96 78 87 96 0 128 253 91 96 98 96 4 128 128 53 144 96 32 1 144 145 144 80 80 96 120 86 91 96 64 81 128 130 129 82 96 32 1 145 80 80 96 64 81 128 145 3 144 243 91 96 0 96 7 130 2 144 80 145 144 80 86 0 161 101 98 122 122 114 48 88 32 196 172 149 10 146 202 169 148 74 126 7 224 48 84 46 158 215 219 146 99 26 220 194 52 216 106 16 92 133 59 129 162 0 41]
operation=128,pc=13, vm.operation{execute:(vm.executionFunc)(0x425dd10), gasCost:(vm.gasFunc)(0x4248a10), validateStack:(vm.stackValidationFunc)(0x425e310), memorySize:(vm.memorySizeFunc)(nil), halts:false, jumps:false, writes:false, valid:true, reverts:false, returns:false}
get code [14] from [96 96 96 64 82 52 21 97 0 15 87 96 0 128 253 91 96 177 128 97 0 29 96 0 57 96 0 243 0 96 96 96 64 82 96 4 54 16 96 63 87 96 0 53 124 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 4 99 255 255 255 255 22 128 99 198 136 143 161 20 96 68 87 91 96 0 128 253 91 52 21 96 78 87 96 0 128 253 91 96 98 96 4 128 128 53 144 96 32 1 144 145 144 80 80 96 120 86 91 96 64 81 128 130 129 82 96 32 1 145 80 80 96 64 81 128 145 3 144 243 91 96 0 96 7 130 2 144 80 145 144 80 86 0 161 101 98 122 122 114 48 88 32 196 172 149 10 146 202 169 148 74 126 7 224 48 84 46 158 215 219 146 99 26 220 194 52 216 106 16 92 133 59 129 162 0 41]
operation=253,pc=14, vm.operation{execute:(vm.executionFunc)(0x42551d0), gasCost:(vm.gasFunc)(0x4247ec0), validateStack:(vm.stackValidationFunc)(0x425e310), memorySize:(vm.memorySizeFunc)(0x425c9b0), halts:false, jumps:false, writes:false, valid:true, reverts:true, returns:true}
We can get storage by ForEachStorage
, but all the keys are encrypted in cipher. so this issue aims to design a method as below:
func (db *StateDB) GetVariables(arg abi.Argument) ([]byte, err)
abi as github.com/ethereum/go-ethereum/accounts/abi
. There is an expensive method to meet this demand via getter method provided by EVM.
Can we get it from MPT tree directly?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.