-
Notifications
You must be signed in to change notification settings - Fork 5.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Different bytecode with same metadata on 0.6.12 #12281
Comments
We should investigate why and how the code is different, but it might actually be that you did not check the correct metadata: The metadata is stored at the end of the deployed bytecode. If you only look at the compiled (constructor) bytecode itself, it might contain the bytecode of other contracts (contracts created with |
I checked this and this is our old problem with extra files added to the compilation affecting IDs in the bytecode. In this case it's that an extra contact results in different immutable IDs. It's still reproducible on 0.8.10. Metadata is the same because apparently only the files used to compile the contract are included in metadata but I think we want to make immutable IDs stable like we did for AST IDs in #10342. Repro
{
"language": "Solidity",
"sources": {
"T.sol": { "content": "contract T { uint public immutable x = 0; }"}
},
"settings": {
"outputSelection": {
"*": {"*": ["evm.assembly", "metadata"]}
}
}
}
{
"language": "Solidity",
"sources": {
"T.sol": { "content": "contract T { uint public immutable x = 0; }"},
"D.sol": {"content": "abstract contract D {}"}
},
"settings": {
"outputSelection": {
"*": {"*": ["evm.assembly", "metadata"]}
}
}
} Assembly diffdiff --color --unified \
<(cat one.json | solc --standard-json | jq --raw-output '.contracts."T.sol".T.evm.assembly') \
<(cat two.json | solc --standard-json | jq --raw-output '.contracts."T.sol".T.evm.assembly') @@ -22,7 +22,7 @@
mload(0x80)
codecopy(0x00, dataOffset(sub_0), dataSize(sub_0))
0x00
- assignImmutable("0xceebf77a833b30520287ddd9478ff51abbdffa30aa90a8d655dba0e8a79ce0c1")
+ assignImmutable("0x2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de")
return(0x00, dataSize(sub_0))
stop
@@ -70,7 +70,7 @@
swap1
return
tag_5:
- immutable("0xceebf77a833b30520287ddd9478ff51abbdffa30aa90a8d655dba0e8a79ce0c1")
+ immutable("0x2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de")
dup2
jump // out
/* "#utility.yul":7:84 */ Metadata diffdiff --color --unified \
<(cat one.json | solc --standard-json | jq --raw-output '.contracts."T.sol".T.metadata') \
<(cat two.json | solc --standard-json | jq --raw-output '.contracts."T.sol".T.metadata')
|
But does this also result in actual different bytecode, and not just in different assembly code? |
Good point. In this particular repro bytecode is identical but in the original code there are some differences. I tried to track it down by trimming the contracts but I got to a point where I still have a lot of files with many imports and pretty much any substantial change makes the difference go away. Unfortunately it's still ~30 contracts so it's not much better than the original input. The bottom line is that this only affects 0.6.12 and 0.7.0 with optimizer enabled but on later versions the only differences are due to immutables so bytecode is identical. DetailsWhat I figured out so far:
Diffs from the trimmed codeHere's the assembly diff on the trimmed code I got so far: @@ -162,8 +162,28 @@
pop
pop
jump // out
- /* "--CODEGEN--":532:684 */
+ /* "--CODEGEN--":363:525 */
tag_17:
+ /* "--CODEGEN--":455:468 */
+ dup1
+ mload
+ sub(shl(0xa0, 0x01), 0x01)
+ /* "--CODEGEN--":5226:5280 */
+ dup2
+ and
+ /* "--CODEGEN--":5721:5770 */
+ dup2
+ eq
+ /* "--CODEGEN--":5711:5713 */
+ tag_10
+ jumpi
+ /* "--CODEGEN--":5784:5785 */
+ 0x00
+ dup1
+ /* "--CODEGEN--":5774:5786 */
+ revert
+ /* "--CODEGEN--":532:684 */
+ tag_20:
/* "--CODEGEN--":619:632 */
dup1
mload
@@ -181,7 +201,7 @@
/* "--CODEGEN--":5884:5896 */
revert
/* "--CODEGEN--":692:1136 */
- tag_20:
+ tag_23:
0x00
/* "--CODEGEN--":805:808 */
dup3
@@ -194,14 +214,14 @@
/* "--CODEGEN--":782:809 */
slt
/* "--CODEGEN--":772:774 */
- tag_22
+ tag_25
jumpi
dup1
dup2
/* "--CODEGEN--":813:825 */
revert
/* "--CODEGEN--":772:774 */
- tag_22:
+ tag_25:
/* "--CODEGEN--":853:859 */
dup2
/* "--CODEGEN--":847:860 */
@@ -214,18 +234,18 @@
gt
/* "--CODEGEN--":4755:4757 */
iszero
- tag_23
+ tag_26
jumpi
dup2
dup3
/* "--CODEGEN--":4791:4803 */
revert
/* "--CODEGEN--":4755:4757 */
- tag_23:
+ tag_26:
/* "--CODEGEN--":4932:4936 */
0x20
/* "--CODEGEN--":875:940 */
- tag_24
+ tag_27
/* "--CODEGEN--":4864:4873 */
0x1f
/* "--CODEGEN--":4845:4862 */
@@ -238,9 +258,9 @@
dup3
add
/* "--CODEGEN--":875:940 */
- tag_25
+ tag_28
jump // in
- tag_24:
+ tag_27:
/* "--CODEGEN--":866:940 */
swap3
pop
@@ -265,7 +285,7 @@
gt
/* "--CODEGEN--":1040:1042 */
iszero
- tag_26
+ tag_29
jumpi
/* "--CODEGEN--":1081:1082 */
0x00
@@ -273,11 +293,11 @@
/* "--CODEGEN--":1071:1083 */
revert
/* "--CODEGEN--":1040:1042 */
- tag_26:
+ tag_29:
/* "--CODEGEN--":5437:5438 */
0x00
/* "--CODEGEN--":5444:5545 */
- tag_27:
+ tag_30:
/* "--CODEGEN--":5458:5464 */
dup3
/* "--CODEGEN--":5455:5456 */
@@ -286,7 +306,7 @@
lt
/* "--CODEGEN--":5444:5545 */
iszero
- tag_29
+ tag_32
jumpi
/* "--CODEGEN--":5525:5536 */
dup5
@@ -308,8 +328,8 @@
dup2
add
/* "--CODEGEN--":5444:5545 */
- jump(tag_27)
- tag_29:
+ jump(tag_30)
+ tag_32:
/* "--CODEGEN--":5560:5566 */
dup3
/* "--CODEGEN--":5557:5558 */
@@ -318,7 +338,7 @@
gt
/* "--CODEGEN--":5551:5553 */
iszero
- tag_30
+ tag_33
jumpi
/* "--CODEGEN--":5437:5438 */
0x00
@@ -334,7 +354,7 @@
/* "--CODEGEN--":5600:5627 */
mstore
/* "--CODEGEN--":5551:5553 */
- tag_30:
+ tag_33:
pop
pop
pop
@@ -360,14 +380,14 @@
slt
/* "--CODEGEN--":3053:3055 */
iszero
- tag_32
+ tag_35
jumpi
dup2
dup3
/* "--CODEGEN--":3091:3103 */
revert
/* "--CODEGEN--":3053:3055 */
- tag_32:
+ tag_35:
/* "--CODEGEN--":3149:3166 */
dup3
/* "--CODEGEN--":3136:3167 */
@@ -381,14 +401,14 @@
gt
/* "--CODEGEN--":3173:3175 */
iszero
- tag_33
+ tag_36
jumpi
dup4
dup5
/* "--CODEGEN--":3209:3221 */
revert
/* "--CODEGEN--":3173:3175 */
- tag_33:
+ tag_36:
/* "--CODEGEN--":3294:3300 */
dup2
/* "--CODEGEN--":3283:3292 */
@@ -408,14 +428,14 @@
/* "--CODEGEN--":110:137 */
slt
/* "--CODEGEN--":100:102 */
- tag_34
+ tag_37
jumpi
dup4
dup5
/* "--CODEGEN--":141:153 */
revert
/* "--CODEGEN--":100:102 */
- tag_34:
+ tag_37:
/* "--CODEGEN--":184:190 */
dup2
/* "--CODEGEN--":171:191 */
@@ -428,14 +448,14 @@
gt
/* "--CODEGEN--":197:199 */
iszero
- tag_35
+ tag_38
jumpi
dup5
dup6
/* "--CODEGEN--":233:245 */
revert
/* "--CODEGEN--":197:199 */
- tag_35:
+ tag_38:
/* "--CODEGEN--":328:331 */
dup7
/* "--CODEGEN--":3085:3087 */
@@ -451,14 +471,14 @@
gt
/* "--CODEGEN--":288:290 */
iszero
- tag_36
+ tag_39
jumpi
dup5
dup6
/* "--CODEGEN--":335:347 */
revert
/* "--CODEGEN--":288:290 */
- tag_36:
+ tag_39:
/* "--CODEGEN--":3085:3087 */
0x20
/* "--CODEGEN--":265:282 */
@@ -497,14 +517,14 @@
slt
/* "--CODEGEN--":3531:3533 */
iszero
- tag_38
+ tag_41
jumpi
dup3
dup4
/* "--CODEGEN--":3569:3581 */
revert
/* "--CODEGEN--":3531:3533 */
- tag_38:
+ tag_41:
/* "--CODEGEN--":1322:1326 */
0x20
/* "--CODEGEN--":1301:1320 */
@@ -513,23 +533,23 @@
slt
/* "--CODEGEN--":1294:1296 */
iszero
- tag_39
+ tag_42
jumpi
dup3
dup4
/* "--CODEGEN--":1330:1342 */
revert
/* "--CODEGEN--":1294:1296 */
- tag_39:
+ tag_42:
pop
/* "--CODEGEN--":1358:1378 */
- tag_40
+ tag_43
/* "--CODEGEN--":1322:1326 */
0x20
/* "--CODEGEN--":1358:1378 */
- tag_25
+ tag_28
jump // in
- tag_40:
+ tag_43:
/* "--CODEGEN--":2899:2912 */
dup4
mload
@@ -555,14 +575,14 @@
gt
/* "--CODEGEN--":3804:3806 */
iszero
- tag_41
+ tag_44
jumpi
dup3
dup4
/* "--CODEGEN--":3840:3852 */
revert
/* "--CODEGEN--":3804:3806 */
- tag_41:
+ tag_44:
/* "--CODEGEN--":3958:3980 */
swap1
dup5
@@ -578,22 +598,22 @@
slt
/* "--CODEGEN--":1726:1728 */
iszero
- tag_42
+ tag_45
jumpi
dup3
dup4
/* "--CODEGEN--":1762:1774 */
revert
/* "--CODEGEN--":1726:1728 */
- tag_42:
+ tag_45:
/* "--CODEGEN--":1790:1810 */
- tag_43
+ tag_46
/* "--CODEGEN--":1754:1758 */
0xa0
/* "--CODEGEN--":1790:1810 */
- tag_25
+ tag_28
jump // in
- tag_43:
+ tag_46:
/* "--CODEGEN--":1866:1883 */
dup3
/* "--CODEGEN--":1860:1884 */
@@ -606,16 +626,16 @@
gt
/* "--CODEGEN--":1890:1892 */
iszero
- tag_44
+ tag_47
jumpi
dup5
dup6
/* "--CODEGEN--":1926:1938 */
revert
/* "--CODEGEN--":1890:1892 */
- tag_44:
+ tag_47:
/* "--CODEGEN--":1971:2041 */
- tag_45
+ tag_48
/* "--CODEGEN--":2037:2040 */
dup9
/* "--CODEGEN--":2028:2034 */
@@ -625,9 +645,9 @@
/* "--CODEGEN--":2013:2035 */
add
/* "--CODEGEN--":1971:2041 */
- tag_20
+ tag_23
jump // in
- tag_45:
+ tag_48:
/* "--CODEGEN--":1953:1969 */
dup3
/* "--CODEGEN--":1946:2042 */
@@ -649,16 +669,16 @@
gt
/* "--CODEGEN--":2136:2138 */
iszero
- tag_46
+ tag_49
jumpi
dup5
dup6
/* "--CODEGEN--":2172:2184 */
revert
/* "--CODEGEN--":2136:2138 */
- tag_46:
+ tag_49:
/* "--CODEGEN--":2217:2287 */
- tag_47
+ tag_50
/* "--CODEGEN--":2283:2286 */
dup9
/* "--CODEGEN--":2274:2280 */
@@ -668,9 +688,9 @@
/* "--CODEGEN--":2259:2281 */
add
/* "--CODEGEN--":2217:2287 */
- tag_20
+ tag_23
jump // in
- tag_47:
+ tag_50:
/* "--CODEGEN--":1322:1326 */
0x20
/* "--CODEGEN--":2203:2208 */
@@ -680,27 +700,20 @@
/* "--CODEGEN--":2192:2288 */
mstore
pop
+ /* "--CODEGEN--":2382:2456 */
+ tag_51
+ /* "--CODEGEN--":2452:2455 */
+ dup8
/* "--CODEGEN--":3563:3565 */
0x40
/* "--CODEGEN--":2432:2441 */
- dup4
+ dup6
/* "--CODEGEN--":2428:2450 */
add
- /* "--CODEGEN--":455:468 */
- mload
- /* "--CODEGEN--":446:468 */
- swap2
- pop
- /* "--CODEGEN--":473:520 */
- tag_48
- /* "--CODEGEN--":514:519 */
- dup3
- /* "--CODEGEN--":473:520 */
- tag_49
- jump // in
- tag_48:
/* "--CODEGEN--":2382:2456 */
- dup2
+ tag_17
+ jump // in
+ tag_51:
/* "--CODEGEN--":3563:3565 */
0x40
/* "--CODEGEN--":2368:2373 */
@@ -710,7 +723,7 @@
/* "--CODEGEN--":2357:2457 */
mstore
/* "--CODEGEN--":2560:2629 */
- tag_50
+ tag_52
/* "--CODEGEN--":2625:2628 */
dup8
/* "--CODEGEN--":2527:2529 */
@@ -720,9 +733,9 @@
/* "--CODEGEN--":2601:2623 */
add
/* "--CODEGEN--":2560:2629 */
- tag_17
+ tag_20
jump // in
- tag_50:
+ tag_52:
/* "--CODEGEN--":2527:2529 */
0x60
/* "--CODEGEN--":2546:2551 */
@@ -780,7 +793,7 @@
/* "--CODEGEN--":4231:4355 */
jump // out
/* "--CODEGEN--":4362:4618 */
- tag_25:
+ tag_28:
/* "--CODEGEN--":4424:4426 */
0x40
/* "--CODEGEN--":4418:4427 */
@@ -802,7 +815,7 @@
or
/* "--CODEGEN--":4504:4506 */
iszero
- tag_53
+ tag_55
jumpi
/* "--CODEGEN--":4582:4583 */
0x00
@@ -810,7 +823,7 @@
/* "--CODEGEN--":4572:4584 */
revert
/* "--CODEGEN--":4504:4506 */
- tag_53:
+ tag_55:
/* "--CODEGEN--":4424:4426 */
0x40
/* "--CODEGEN--":4591:4613 */
@@ -820,28 +833,6 @@
swap1
pop
jump // out
- /* "--CODEGEN--":5648:5793 */
- tag_49:
- sub(shl(0xa0, 0x01), 0x01)
- /* "--CODEGEN--":5226:5280 */
- dup2
- and
- /* "--CODEGEN--":5721:5770 */
- dup2
- eq
- /* "--CODEGEN--":5711:5713 */
- tag_55
- jumpi
- /* "--CODEGEN--":5784:5785 */
- 0x00
- dup1
- /* "--CODEGEN--":5774:5786 */
- revert
- /* "--CODEGEN--":5711:5713 */
- tag_55:
- /* "--CODEGEN--":5705:5793 */
- pop
- jump // out
auxdata: 0xa2646970667358221220442e524eef4cfc63045cdc6f01e3c761af72190d26db1d83651418414a2cf4f264736f6c63430007000033
} When I take only changed lines, sort them and diff them again, you can see that there are some opcodes that are present in one output but not the other (and vice-versa): + dup1
- dup2
- dup3
- dup4
+ dup6
+ dup8
- jump // out
- jump(tag_27)
+ jump(tag_30)
- pop
- pop
- swap2 I removed comments and tags from the above. Diffs from the original codeHere's the same thing for input close to the original (i.e. @@ -223,9 +223,9 @@
shr(0x60, mload(0xa0))
shr(0x60, mload(0xc0))
codecopy(0x00, dataOffset(sub_0), dataSize(sub_0))
- assignImmutable("0x9614ae301e7f223b810db97ca1e18bc99c9bdd404706f21716e8bde641f373de")
- assignImmutable("0xa52d0fc2be1b30cecbfd48ac7bbe7bd89fc6771a975e7ed6d98b2a3fcb3379d7")
- assignImmutable("0xd761dd6fd26575166d5033b2f6b9017238b0b3abedddcb668d87fe8e20aa596f")
+ assignImmutable("0x54af41c9f5823f54786f556579785c27b181dbfb642c127d49aceae24a6ea03c")
+ assignImmutable("0x2dff5dacd0a2ed73b7d16efcb23d053715f5609f1b7982f3292410666d935944")
+ assignImmutable("0x33695bc4fb95c11dfe476c2e4814a5e7e43e17ac103938c5744f07e27a112b49")
return(0x00, dataSize(sub_0))
stop
@@ -478,17 +478,17 @@
jump // out
/* "contracts/rain-protocol/contracts/trust/TrustFactory.sol":6746:6796 SeedERC20Factory public immutable seedERC20Factory */
tag_17:
- immutable("0x9614ae301e7f223b810db97ca1e18bc99c9bdd404706f21716e8bde641f373de")
+ immutable("0x54af41c9f5823f54786f556579785c27b181dbfb642c127d49aceae24a6ea03c")
dup2
jump // out
/* "contracts/rain-protocol/contracts/trust/TrustFactory.sol":6602:6664 RedeemableERC20Factory public immutable redeemableERC20Factory */
tag_21:
- immutable("0xd761dd6fd26575166d5033b2f6b9017238b0b3abedddcb668d87fe8e20aa596f")
+ immutable("0x33695bc4fb95c11dfe476c2e4814a5e7e43e17ac103938c5744f07e27a112b49")
dup2
jump // out
/* "contracts/rain-protocol/contracts/trust/TrustFactory.sol":6670:6740 RedeemableERC20PoolFactory public immutable redeemableERC20PoolFactory */
tag_25:
- immutable("0xa52d0fc2be1b30cecbfd48ac7bbe7bd89fc6771a975e7ed6d98b2a3fcb3379d7")
+ immutable("0x2dff5dacd0a2ed73b7d16efcb23d053715f5609f1b7982f3292410666d935944")
dup2
jump // out
/* "contracts/rain-protocol/contracts/factory/Factory.sol":1727:2196 function createChild(bytes calldata data_)... */
@@ -698,7 +698,7 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/TrustFactory.sol":9249:9265 seedERC20Factory */
- immutable("0x9614ae301e7f223b810db97ca1e18bc99c9bdd404706f21716e8bde641f373de")
+ immutable("0x54af41c9f5823f54786f556579785c27b181dbfb642c127d49aceae24a6ea03c")
/* "contracts/rain-protocol/contracts/trust/TrustFactory.sol":9108:9552 TrustConfig(... */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -775,7 +775,7 @@
mstore
dup1
/* "contracts/rain-protocol/contracts/trust/TrustFactory.sol":9610:9632 redeemableERC20Factory */
- immutable("0xd761dd6fd26575166d5033b2f6b9017238b0b3abedddcb668d87fe8e20aa596f")
+ immutable("0x33695bc4fb95c11dfe476c2e4814a5e7e43e17ac103938c5744f07e27a112b49")
/* "contracts/rain-protocol/contracts/trust/TrustFactory.sol":9566:9974 TrustRedeemableERC20Config(... */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -856,7 +856,7 @@
mstore
dup1
/* "contracts/rain-protocol/contracts/trust/TrustFactory.sol":10036:10062 redeemableERC20PoolFactory */
- immutable("0xa52d0fc2be1b30cecbfd48ac7bbe7bd89fc6771a975e7ed6d98b2a3fcb3379d7")
+ immutable("0x2dff5dacd0a2ed73b7d16efcb23d053715f5609f1b7982f3292410666d935944")
/* "contracts/rain-protocol/contracts/trust/TrustFactory.sol":9988:10477 TrustRedeemableERC20PoolConfig(... */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -2010,68 +2010,71 @@
tag_86
jump // in
tag_130:
- /* "--CODEGEN--":85:91 */
- dup5
- /* "--CODEGEN--":72:92 */
- calldataload
- /* "--CODEGEN--":97:130 */
+ /* "--CODEGEN--":2108:2157 */
tag_131
- /* "--CODEGEN--":124:129 */
- dup2
- /* "--CODEGEN--":97:130 */
- tag_77
+ /* "--CODEGEN--":2153:2156 */
+ dup7
+ /* "--CODEGEN--":2129:2151 */
+ dup7
+ /* "--CODEGEN--":2108:2157 */
+ tag_74
jump // in
tag_131:
- /* "--CODEGEN--":2083:2158 */
+ /* "--CODEGEN--":2090:2106 */
dup2
+ /* "--CODEGEN--":2083:2158 */
mstore
/* "--CODEGEN--":2234:2236 */
0x20
- /* "--CODEGEN--":2288:2310 */
+ /* "--CODEGEN--":2292:2301 */
dup6
- dup2
+ /* "--CODEGEN--":2288:2310 */
add
/* "--CODEGEN--":6102:6122 */
calldataload
- /* "--CODEGEN--":2249:2265 */
- swap1
+ /* "--CODEGEN--":2234:2236 */
+ 0x20
+ /* "--CODEGEN--":2253:2258 */
dup3
+ /* "--CODEGEN--":2249:2265 */
add
/* "--CODEGEN--":2242:2317 */
mstore
+ /* "--CODEGEN--":2413:2462 */
+ tag_132
+ /* "--CODEGEN--":2458:2461 */
+ dup7
/* "--CODEGEN--":2380:2382 */
0x40
+ /* "--CODEGEN--":2438:2447 */
+ dup8
/* "--CODEGEN--":2434:2456 */
- dup6
add
- /* "--CODEGEN--":72:92 */
- calldataload
- /* "--CODEGEN--":97:130 */
- tag_132
- /* "--CODEGEN--":72:92 */
- dup2
- /* "--CODEGEN--":97:130 */
- tag_77
+ /* "--CODEGEN--":2413:2462 */
+ tag_74
jump // in
tag_132:
/* "--CODEGEN--":2380:2382 */
0x40
- /* "--CODEGEN--":2395:2411 */
+ /* "--CODEGEN--":2399:2404 */
dup3
+ /* "--CODEGEN--":2395:2411 */
add
/* "--CODEGEN--":2388:2463 */
mstore
/* "--CODEGEN--":2529:2531 */
0x60
- /* "--CODEGEN--":2583:2605 */
+ /* "--CODEGEN--":2587:2596 */
dup6
- dup2
+ /* "--CODEGEN--":2583:2605 */
add
/* "--CODEGEN--":6102:6122 */
calldataload
- /* "--CODEGEN--":2544:2560 */
- swap1
+ /* "--CODEGEN--":2529:2531 */
+ 0x60
+ /* "--CODEGEN--":2548:2553 */
dup3
+ /* "--CODEGEN--":2544:2560 */
add
/* "--CODEGEN--":2537:2612 */
mstore
@@ -2081,8 +2084,9 @@
dup7
/* "--CODEGEN--":2680:2683 */
0x80
- /* "--CODEGEN--":2734:2756 */
+ /* "--CODEGEN--":2738:2747 */
dup8
+ /* "--CODEGEN--":2734:2756 */
add
/* "--CODEGEN--":2714:2762 */
tag_106
@@ -2410,9 +2414,8 @@
add
/* "--CODEGEN--":21173:21210 */
mstore
- /* "--CODEGEN--":17687:17691 */
+ /* "--CODEGEN--":28081:28093 */
0x40
- /* "--CODEGEN--":17676:17692 */
dup1
dup3
add
@@ -2424,9 +2427,8 @@
add
/* "--CODEGEN--":21173:21210 */
mstore
- /* "--CODEGEN--":17878:17882 */
+ /* "--CODEGEN--":28081:28093 */
0x60
- /* "--CODEGEN--":17867:17883 */
dup1
dup3
add
@@ -2438,9 +2440,8 @@
add
/* "--CODEGEN--":21173:21210 */
mstore
- /* "--CODEGEN--":18077:18081 */
+ /* "--CODEGEN--":28081:28093 */
0x80
- /* "--CODEGEN--":18066:18082 */
swap1
dup2
add
@@ -2830,22 +2831,23 @@
0x00
/* "--CODEGEN--":23698:23701 */
0x01e0
- /* "--CODEGEN--":12425:12488 */
- tag_172
- /* "--CODEGEN--":12473:12487 */
- dup4
+ /* "--CODEGEN--":28818:28860 */
+ 0xffffffffffffffffffffffffffffffffffffffff
+ dup1
/* "--CODEGEN--":12402:12418 */
dup8
/* "--CODEGEN--":12396:12419 */
mload
- /* "--CODEGEN--":12425:12488 */
- tag_138
- jump // in
- tag_172:
+ /* "--CODEGEN--":28807:28861 */
+ and
+ /* "--CODEGEN--":8944:8947 */
+ dup5
+ /* "--CODEGEN--":8937:8974 */
+ mstore
/* "--CODEGEN--":12582:12586 */
0x20
/* "--CODEGEN--":12575:12580 */
- dup7
+ dup8
/* "--CODEGEN--":12571:12587 */
add
/* "--CODEGEN--":12565:12588 */
@@ -2853,33 +2855,31 @@
/* "--CODEGEN--":12582:12586 */
0x20
/* "--CODEGEN--":12646:12649 */
- dup5
+ dup6
/* "--CODEGEN--":12642:12656 */
add
/* "--CODEGEN--":21173:21210 */
mstore
+ /* "--CODEGEN--":28818:28860 */
+ dup1
/* "--CODEGEN--":12748:12752 */
0x40
/* "--CODEGEN--":12741:12746 */
- dup7
+ dup9
/* "--CODEGEN--":12737:12753 */
add
/* "--CODEGEN--":12731:12754 */
mload
- /* "--CODEGEN--":12760:12848 */
- tag_173
+ /* "--CODEGEN--":28807:28861 */
+ and
/* "--CODEGEN--":12748:12752 */
0x40
/* "--CODEGEN--":12837:12840 */
dup6
/* "--CODEGEN--":12833:12847 */
add
- /* "--CODEGEN--":12819:12831 */
- dup3
- /* "--CODEGEN--":12760:12848 */
- tag_138
- jump // in
- tag_173:
+ /* "--CODEGEN--":9643:9708 */
+ mstore
pop
/* "--CODEGEN--":12929:12933 */
0x60
@@ -2890,7 +2890,7 @@
/* "--CODEGEN--":12912:12935 */
mload
/* "--CODEGEN--":12941:13004 */
- tag_174
+ tag_172
/* "--CODEGEN--":12929:12933 */
0x60
/* "--CODEGEN--":12993:12996 */
@@ -2902,7 +2902,7 @@
/* "--CODEGEN--":12941:13004 */
tag_138
jump // in
- tag_174:
+ tag_172:
pop
/* "--CODEGEN--":13088:13092 */
0x80
@@ -2929,7 +2929,7 @@
/* "--CODEGEN--":13232:13255 */
mload
/* "--CODEGEN--":13261:13322 */
- tag_175
+ tag_173
/* "--CODEGEN--":13249:13253 */
0xa0
/* "--CODEGEN--":13311:13314 */
@@ -2941,7 +2941,7 @@
/* "--CODEGEN--":13261:13322 */
tag_161
jump // in
- tag_175:
+ tag_173:
pop
/* "--CODEGEN--":13419:13423 */
0xc0
@@ -2952,7 +2952,7 @@
/* "--CODEGEN--":13402:13425 */
mload
/* "--CODEGEN--":13431:13492 */
- tag_176
+ tag_174
/* "--CODEGEN--":13419:13423 */
0xc0
/* "--CODEGEN--":13481:13484 */
@@ -2964,7 +2964,7 @@
/* "--CODEGEN--":13431:13492 */
tag_161
jump // in
- tag_176:
+ tag_174:
pop
/* "--CODEGEN--":13577:13581 */
0xe0
@@ -2993,7 +2993,7 @@
/* "--CODEGEN--":23853:23902 */
mstore
/* "--CODEGEN--":23916:24062 */
- tag_177
+ tag_175
/* "--CODEGEN--":23698:23701 */
dup2
/* "--CODEGEN--":23687:23696 */
@@ -3005,7 +3005,7 @@
/* "--CODEGEN--":23916:24062 */
tag_154
jump // in
- tag_177:
+ tag_175:
/* "--CODEGEN--":23908:24062 */
swap2
pop
@@ -3035,11 +3035,11 @@
/* "--CODEGEN--":26856:26868 */
add
/* "--CODEGEN--":14053:14116 */
- tag_180
+ tag_178
/* "--CODEGEN--":14101:14115 */
dup5
/* "--CODEGEN--":26830:26869 */
- tag_181
+ tag_179
/* "--CODEGEN--":26856:26868 */
dup4
/* "--CODEGEN--":14030:14046 */
@@ -3047,11 +3047,11 @@
/* "--CODEGEN--":26830:26869 */
tag_74
jump // in
- tag_181:
+ tag_179:
/* "--CODEGEN--":14053:14116 */
tag_138
jump // in
- tag_180:
+ tag_178:
/* "--CODEGEN--":6102:6122 */
calldataload
/* "--CODEGEN--":26865:26867 */
@@ -3062,7 +3062,7 @@
/* "--CODEGEN--":21173:21210 */
mstore
/* "--CODEGEN--":14376:14426 */
- tag_182
+ tag_180
/* "--CODEGEN--":14420:14424 */
0x40
/* "--CODEGEN--":14409:14425 */
@@ -3071,11 +3071,11 @@
/* "--CODEGEN--":14413:14418 */
dup8
/* "--CODEGEN--":14376:14426 */
- tag_183
+ tag_181
jump // in
- tag_182:
+ tag_180:
/* "--CODEGEN--":14432:14495 */
- tag_184
+ tag_182
/* "--CODEGEN--":14420:14424 */
0x40
/* "--CODEGEN--":14484:14487 */
@@ -3087,7 +3087,7 @@
/* "--CODEGEN--":14432:14495 */
tag_138
jump // in
- tag_184:
+ tag_182:
pop
/* "--CODEGEN--":14606:14610 */
0x60
@@ -3106,7 +3106,7 @@
/* "--CODEGEN--":21173:21210 */
mstore
/* "--CODEGEN--":14750:14799 */
- tag_185
+ tag_183
/* "--CODEGEN--":14793:14797 */
0x80
/* "--CODEGEN--":14786:14791 */
@@ -3116,11 +3116,11 @@
/* "--CODEGEN--":14775:14780 */
dup8
/* "--CODEGEN--":14750:14799 */
- tag_186
+ tag_184
jump // in
- tag_185:
+ tag_183:
/* "--CODEGEN--":14805:14866 */
- tag_187
+ tag_185
/* "--CODEGEN--":14793:14797 */
0x80
/* "--CODEGEN--":14855:14858 */
@@ -3132,10 +3132,10 @@
/* "--CODEGEN--":14805:14866 */
tag_161
jump // in
- tag_187:
+ tag_185:
pop
/* "--CODEGEN--":14946:14995 */
- tag_188
+ tag_186
/* "--CODEGEN--":14989:14993 */
0xa0
/* "--CODEGEN--":14982:14987 */
@@ -3145,11 +3145,11 @@
/* "--CODEGEN--":14971:14976 */
dup8
/* "--CODEGEN--":14946:14995 */
- tag_186
+ tag_184
jump // in
- tag_188:
+ tag_186:
/* "--CODEGEN--":15001:15062 */
- tag_189
+ tag_187
/* "--CODEGEN--":14989:14993 */
0xa0
/* "--CODEGEN--":15051:15054 */
@@ -3161,7 +3161,7 @@
/* "--CODEGEN--":15001:15062 */
tag_161
jump // in
- tag_189:
+ tag_187:
pop
/* "--CODEGEN--":15174:15178 */
0xc0
@@ -3190,15 +3190,15 @@
/* "--CODEGEN--":24943:24992 */
mstore
/* "--CODEGEN--":15673:15735 */
- tag_190
+ tag_188
/* "--CODEGEN--":15718:15734 */
dup6
/* "--CODEGEN--":15711:15716 */
dup7
/* "--CODEGEN--":15673:15735 */
- tag_191
+ tag_189
jump // in
- tag_190:
+ tag_188:
/* "--CODEGEN--":14989:14993 */
0xa0
/* "--CODEGEN--":24762:24765 */
@@ -3210,7 +3210,7 @@
/* "--CODEGEN--":15748:15786 */
mstore
/* "--CODEGEN--":15801:15890 */
- tag_192
+ tag_190
/* "--CODEGEN--":15584:15598 */
0x0240
/* "--CODEGEN--":24751:24760 */
@@ -3224,14 +3224,14 @@
/* "--CODEGEN--":15801:15890 */
tag_149
jump // in
- tag_192:
+ tag_190:
/* "--CODEGEN--":15793:15890 */
swap3
pop
pop
pop
/* "--CODEGEN--":15974:16036 */
- tag_193
+ tag_191
/* "--CODEGEN--":26865:26867 */
0x20
/* "--CODEGEN--":16023:16028 */
@@ -3241,9 +3241,9 @@
/* "--CODEGEN--":16012:16017 */
dup7
/* "--CODEGEN--":15974:16036 */
- tag_191
+ tag_189
jump // in
- tag_193:
+ tag_191:
/* "--CODEGEN--":16072:16086 */
0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60
/* "--CODEGEN--":24751:24760 */
@@ -3262,7 +3262,7 @@
/* "--CODEGEN--":16049:16087 */
mstore
/* "--CODEGEN--":16102:16191 */
- tag_194
+ tag_192
/* "--CODEGEN--":16186:16190 */
dup4
/* "--CODEGEN--":16172:16184 */
@@ -3272,14 +3272,14 @@
/* "--CODEGEN--":16102:16191 */
tag_149
jump // in
- tag_194:
+ tag_192:
/* "--CODEGEN--":16094:16191 */
swap3
pop
pop
pop
/* "--CODEGEN--":16259:16323 */
- tag_195
+ tag_193
/* "--CODEGEN--":14420:14424 */
0x40
/* "--CODEGEN--":16310:16315 */
@@ -3289,11 +3289,11 @@
/* "--CODEGEN--":16299:16304 */
dup7
/* "--CODEGEN--":16259:16323 */
- tag_183
+ tag_181
jump // in
- tag_195:
+ tag_193:
/* "--CODEGEN--":16329:16406 */
- tag_196
+ tag_194
/* "--CODEGEN--":16391:16405 */
0x01e0
/* "--CODEGEN--":24751:24760 */
@@ -3305,10 +3305,10 @@
/* "--CODEGEN--":16329:16406 */
tag_138
jump // in
- tag_196:
+ tag_194:
pop
/* "--CODEGEN--":16477:16536 */
- tag_197
+ tag_195
/* "--CODEGEN--":14606:14610 */
0x60
/* "--CODEGEN--":16523:16528 */
@@ -3318,11 +3318,11 @@
/* "--CODEGEN--":16512:16517 */
dup7
/* "--CODEGEN--":16477:16536 */
- tag_198
+ tag_196
jump // in
- tag_197:
+ tag_195:
/* "--CODEGEN--":16542:16612 */
- tag_199
+ tag_197
/* "--CODEGEN--":16597:16611 */
0x0200
/* "--CODEGEN--":24751:24760 */
@@ -3334,7 +3334,7 @@
/* "--CODEGEN--":16542:16612 */
tag_146
jump // in
- tag_199:
+ tag_197:
pop
/* "--CODEGEN--":14793:14797 */
0x80
@@ -3387,7 +3387,7 @@
or
/* "--CODEGEN--":25543:25545 */
iszero
- tag_202
+ tag_200
jumpi
/* "--CODEGEN--":25621:25622 */
0x00
@@ -3395,7 +3395,7 @@
/* "--CODEGEN--":25611:25623 */
revert
/* "--CODEGEN--":25543:25545 */
- tag_202:
+ tag_200:
/* "--CODEGEN--":25463:25465 */
0x40
/* "--CODEGEN--":25630:25652 */
@@ -3406,7 +3406,7 @@
pop
jump // out
/* "--CODEGEN--":26756:26875 */
- tag_183:
+ tag_181:
0x00
/* "--CODEGEN--":85:91 */
dup3
@@ -3420,7 +3420,7 @@
tag_77
jump // in
/* "--CODEGEN--":27198:27335 */
- tag_198:
+ tag_196:
0x00
/* "--CODEGEN--":27281:27329 */
tag_111
@@ -3436,7 +3436,7 @@
tag_78
jump // in
/* "--CODEGEN--":27344:27846 */
- tag_191:
+ tag_189:
0x00
dup1
/* "--CODEGEN--":27469:27472 */
@@ -3458,14 +3458,14 @@
/* "--CODEGEN--":27489:27562 */
slt
/* "--CODEGEN--":27479:27481 */
- tag_208
+ tag_206
jumpi
dup3
dup4
/* "--CODEGEN--":27566:27578 */
revert
/* "--CODEGEN--":27479:27481 */
- tag_208:
+ tag_206:
/* "--CODEGEN--":27595:27628 */
dup4
add
@@ -3487,7 +3487,7 @@
gt
/* "--CODEGEN--":27706:27708 */
iszero
- tag_209
+ tag_207
jumpi
/* "--CODEGEN--":27752:27753 */
0x00
@@ -3495,7 +3495,7 @@
/* "--CODEGEN--":27742:27754 */
revert
/* "--CODEGEN--":27706:27708 */
- tag_209:
+ tag_207:
/* "--CODEGEN--":27799:27816 */
dup1
/* "--CODEGEN--":27521:27535 */
@@ -3508,7 +3508,7 @@
sgt
/* "--CODEGEN--":27762:27764 */
iszero
- tag_210
+ tag_208
jumpi
/* "--CODEGEN--":27831:27832 */
0x00
@@ -3516,7 +3516,7 @@
/* "--CODEGEN--":27821:27833 */
revert
/* "--CODEGEN--":27762:27764 */
- tag_210:
+ tag_208:
/* "--CODEGEN--":27423:27846 */
swap3
pop
@@ -3525,7 +3525,7 @@
pop
jump // out
/* "--CODEGEN--":27855:27972 */
- tag_186:
+ tag_184:
0x00
/* "--CODEGEN--":5979:5985 */
dup3
@@ -3561,7 +3561,7 @@
/* "--CODEGEN--":31360:31395 */
eq
/* "--CODEGEN--":31350:31352 */
- tag_214
+ tag_212
jumpi
/* "--CODEGEN--":31409:31410 */
0x00
@@ -3569,7 +3569,7 @@
/* "--CODEGEN--":31399:31411 */
revert
/* "--CODEGEN--":31350:31352 */
- tag_214:
+ tag_212:
/* "--CODEGEN--":31344:31418 */
pop
jump // out
@@ -7211,33 +7211,32 @@
/* "--CODEGEN--":2367:2398 */
swap2
pop
- /* "--CODEGEN--":2483:2543 */
+ /* "--CODEGEN--":89:95 */
+ dup6
+ /* "--CODEGEN--":83:96 */
+ mload
+ /* "--CODEGEN--":101:134 */
tag_244
- /* "--CODEGEN--":2539:2542 */
- dup8
- /* "--CODEGEN--":2515:2537 */
- dup8
- /* "--CODEGEN--":2483:2543 */
- tag_193
+ /* "--CODEGEN--":128:133 */
+ dup2
+ /* "--CODEGEN--":101:134 */
+ tag_196
jump // in
tag_244:
- /* "--CODEGEN--":2465:2481 */
- dup3
/* "--CODEGEN--":2458:2544 */
+ dup3
mstore
/* "--CODEGEN--":2620:2622 */
0x20
- /* "--CODEGEN--":2689:2698 */
- dup7
/* "--CODEGEN--":2685:2707 */
+ dup7
+ dup2
add
/* "--CODEGEN--":6740:6753 */
mload
- /* "--CODEGEN--":2620:2622 */
- 0x20
- /* "--CODEGEN--":2639:2644 */
- dup4
/* "--CODEGEN--":2635:2651 */
+ swap1
+ dup4
add
/* "--CODEGEN--":2628:2714 */
mstore
@@ -7247,9 +7246,8 @@
dup8
/* "--CODEGEN--":2787:2789 */
0x40
- /* "--CODEGEN--":2881:2890 */
- dup9
/* "--CODEGEN--":2877:2899 */
+ dup9
add
/* "--CODEGEN--":2820:2905 */
tag_193
@@ -8529,17 +8527,17 @@
shr(0x60, mload(0x01a0))
shr(0x60, mload(0x01c0))
codecopy(0x00, dataOffset(sub_0), dataSize(sub_0))
- assignImmutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
- assignImmutable("0x35e0a5d0f5b0569d1093ec5fdf2f163fb06bd6f948370537b24e994190ee9404")
- assignImmutable("0xfd8d1ed1a43deb872a1a5285e0b64e33422e96d48256d4125a105cc4da5a17c6")
- assignImmutable("0x72e500f04d6bf463abe0ab49ce296c197824c4038654f3d4cdb3caf862ef634e")
- assignImmutable("0xf5f368b36bc86e66fa8ba483eecfebd009cf8821c91db5504dc0cb8a9388235a")
- assignImmutable("0xc6d20a6e2d6a6b10df8604da3588d27eb010ed1234c7e3e6f35825005532e4d1")
- assignImmutable("0x8a03e496e719530e08b1c00044535339c35147888b0ea9b1d391b17bb162b341")
- assignImmutable("0x1d02ededae9e217eb08394d0854445ae178adbcb8308b3e681eeeee1489ca4c3")
- assignImmutable("0x4082b67cb7af061bf9cf67209517a9191c7bee596624d46eb91d334287a427fb")
- assignImmutable("0x01dee97ea74b75520cf6a46629b466c311f956cbc18a95ae58c573f5867d87a8")
- assignImmutable("0x26721cef89d6ca54ed4d654aa494650cf46e75d7e3e9eff3a266421b505fedd2")
+ assignImmutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
+ assignImmutable("0x6bff3f8d49e0bf21b445c8bc0d722f5d313e5fbbc155a2a488e033dca4472618")
+ assignImmutable("0x3e51459060e66b6570d1994a5c9cc3d07e5a057c13e5407514df21d19f596e66")
+ assignImmutable("0xae672f8e0c99c611f2eb3d69db180b38f45039e362b9d24521d3f4945565eae9")
+ assignImmutable("0x3e7fe5b9155be15b851844c4a8e6f0a976c2e395efb4f30f9ee97eea8f0ce20f")
+ assignImmutable("0x21c6a7972b66b0c35ecba1c36de5d57657cbf000205a785e808b0b4c4ce20ef4")
+ assignImmutable("0x4e26f2d16eea7e0292a24051cbc7cc5738da627cb8e164620dc5e6eb1d0e03e2")
+ assignImmutable("0xd938a253ffb3229e922cbd95aed81798e77f7df2e8252d39967cf8d5e274639b")
+ assignImmutable("0xa2bd1eb099088b4225f808f7c576eb6591882721490cdd16be1da84d93b838dd")
+ assignImmutable("0xb866b42166d4a63f804e4438264181d0993206ec1f5b239ea7c1fff52a5ea29a")
+ assignImmutable("0xff877c5ec8b168e137236a8f8d797c4f1a2de7afa9f80ddacc87cd23855fbaa5")
return(0x00, dataSize(sub_0))
stop
@@ -8820,32 +8818,32 @@
jump // in
/* "contracts/rain-protocol/contracts/trust/Trust.sol":14159:14209 SeedERC20Factory public immutable seedERC20Factory */
tag_25:
- immutable("0x72e500f04d6bf463abe0ab49ce296c197824c4038654f3d4cdb3caf862ef634e")
+ immutable("0xae672f8e0c99c611f2eb3d69db180b38f45039e362b9d24521d3f4945565eae9")
dup2
jump // out
/* "contracts/rain-protocol/contracts/trust/Trust.sol":13522:13554 address public immutable creator */
tag_29:
- immutable("0x26721cef89d6ca54ed4d654aa494650cf46e75d7e3e9eff3a266421b505fedd2")
+ immutable("0xff877c5ec8b168e137236a8f8d797c4f1a2de7afa9f80ddacc87cd23855fbaa5")
dup2
jump // out
/* "contracts/rain-protocol/contracts/trust/Trust.sol":15068:15107 uint256 public immutable successBalance */
tag_33:
- immutable("0xfd8d1ed1a43deb872a1a5285e0b64e33422e96d48256d4125a105cc4da5a17c6")
+ immutable("0x3e51459060e66b6570d1994a5c9cc3d07e5a057c13e5407514df21d19f596e66")
dup2
jump // out
/* "contracts/rain-protocol/contracts/trust/Trust.sol":15274:15315 RedeemableERC20Pool public immutable pool */
tag_37:
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
dup2
jump // out
/* "contracts/rain-protocol/contracts/trust/Trust.sol":13615:13659 uint256 public immutable minimumCreatorRaise */
tag_41:
- immutable("0x01dee97ea74b75520cf6a46629b466c311f956cbc18a95ae58c573f5867d87a8")
+ immutable("0xb866b42166d4a63f804e4438264181d0993206ec1f5b239ea7c1fff52a5ea29a")
dup2
jump // out
/* "contracts/rain-protocol/contracts/trust/Trust.sol":13872:13907 uint16 public immutable seederUnits */
tag_44:
- immutable("0x8a03e496e719530e08b1c00044535339c35147888b0ea9b1d391b17bb162b341")
+ immutable("0x4e26f2d16eea7e0292a24051cbc7cc5738da627cb8e164620dc5e6eb1d0e03e2")
dup2
jump // out
/* "contracts/rain-protocol/contracts/trust/Trust.sol":14847:14874 uint256 public finalBalance */
@@ -8855,12 +8853,12 @@
jump // out
/* "contracts/rain-protocol/contracts/trust/Trust.sol":13786:13820 uint256 public immutable seederFee */
tag_51:
- immutable("0x1d02ededae9e217eb08394d0854445ae178adbcb8308b3e681eeeee1489ca4c3")
+ immutable("0xd938a253ffb3229e922cbd95aed81798e77f7df2e8252d39967cf8d5e274639b")
dup2
jump // out
/* "contracts/rain-protocol/contracts/trust/Trust.sol":13705:13736 address public immutable seeder */
tag_54:
- immutable("0x4082b67cb7af061bf9cf67209517a9191c7bee596624d46eb91d334287a427fb")
+ immutable("0xa2bd1eb099088b4225f808f7c576eb6591882721490cdd16be1da84d93b838dd")
dup2
jump // out
/* "contracts/rain-protocol/contracts/trust/Trust.sol":24660:27691 function anonEndDistribution() external nonReentrant {... */
@@ -8903,7 +8901,7 @@
sstore
pop
/* "contracts/rain-protocol/contracts/trust/Trust.sol":24738:24742 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":24738:24750 pool.reserve */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -8982,7 +8980,7 @@
and
0x70a08231
/* "contracts/rain-protocol/contracts/trust/Trust.sol":24771:24775 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":24771:24779 pool.crp */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -9212,7 +9210,7 @@
sstore
pop
/* "contracts/rain-protocol/contracts/trust/Trust.sol":24802:24806 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":24802:24827 pool.ownerEndDutchAuction */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -9266,13 +9264,13 @@
pop
pop
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25117:25122 token */
- immutable("0x35e0a5d0f5b0569d1093ec5fdf2f163fb06bd6f948370537b24e994190ee9404")
+ immutable("0x6bff3f8d49e0bf21b445c8bc0d722f5d313e5fbbc155a2a488e033dca4472618")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25117:25138 token.burnDistributor */
0xffffffffffffffffffffffffffffffffffffffff
and
0xde1533ba
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25160:25164 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25160:25168 pool.crp */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -9476,7 +9474,7 @@
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25278:25295 uint256 poolDust_ */
0x00
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25298:25302 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25298:25310 pool.reserve */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -9555,7 +9553,7 @@
and
0x70a08231
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25344:25348 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25344:25352 pool.crp */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -9783,7 +9781,7 @@
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25659:25684 uint256 availableBalance_ */
0x00
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25687:25691 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25687:25699 pool.reserve */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -9948,7 +9946,7 @@
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25827:25836 poolDust_ */
dup4
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25804:25808 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25804:25820 pool.reserveInit */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -10034,7 +10032,7 @@
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25847:25866 uint256 creatorPay_ */
0x00
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25977:25991 successBalance */
- immutable("0xfd8d1ed1a43deb872a1a5285e0b64e33422e96d48256d4125a105cc4da5a17c6")
+ immutable("0x3e51459060e66b6570d1994a5c9cc3d07e5a057c13e5407514df21d19f596e66")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25961:25973 finalBalance */
sload(0x01)
/* "contracts/rain-protocol/contracts/trust/Trust.sol":25961:25991 finalBalance >= successBalance */
@@ -10047,7 +10045,7 @@
/* "contracts/rain-protocol/contracts/trust/Trust.sol":26081:26091 seederPay_ */
dup3
/* "contracts/rain-protocol/contracts/trust/Trust.sol":26096:26105 seederFee */
- immutable("0x1d02ededae9e217eb08394d0854445ae178adbcb8308b3e681eeeee1489ca4c3")
+ immutable("0xd938a253ffb3229e922cbd95aed81798e77f7df2e8252d39967cf8d5e274639b")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":26081:26095 seederPay_.add */
tag_84
/* "contracts/rain-protocol/contracts/trust/Trust.sol":26081:26106 seederPay_.add(seederFee) */
@@ -10063,7 +10061,7 @@
/* "contracts/rain-protocol/contracts/trust/Trust.sol":26068:26106 seederPay_ = seederPay_.add(seederFee) */
dup4
/* "contracts/rain-protocol/contracts/trust/Trust.sol":26970:26980 redeemInit */
- immutable("0xf5f368b36bc86e66fa8ba483eecfebd009cf8821c91db5504dc0cb8a9388235a")
+ immutable("0x3e7fe5b9155be15b851844c4a8e6f0a976c2e395efb4f30f9ee97eea8f0ce20f")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":26955:26969 seederPay_.add */
tag_84
/* "contracts/rain-protocol/contracts/trust/Trust.sol":26955:26981 seederPay_.add(redeemInit) */
@@ -10091,11 +10089,11 @@
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27038:27133 pool.reserve().safeTransfer(... */
tag_167
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27083:27090 creator */
- immutable("0x26721cef89d6ca54ed4d654aa494650cf46e75d7e3e9eff3a266421b505fedd2")
+ immutable("0xff877c5ec8b168e137236a8f8d797c4f1a2de7afa9f80ddacc87cd23855fbaa5")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27108:27119 creatorPay_ */
dup3
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27038:27042 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27038:27050 pool.reserve */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -10183,11 +10181,11 @@
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27154:27235 pool.reserve().safeTransfer(... */
tag_172
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27195:27201 seeder */
- immutable("0x4082b67cb7af061bf9cf67209517a9191c7bee596624d46eb91d334287a427fb")
+ immutable("0xa2bd1eb099088b4225f808f7c576eb6591882721490cdd16be1da84d93b838dd")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27215:27225 seederPay_ */
dup4
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27154:27158 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27154:27166 pool.reserve */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -10225,7 +10223,7 @@
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27469:27487 uint256 remainder_ */
0x00
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27490:27494 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27490:27502 pool.reserve */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -10392,11 +10390,11 @@
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27573:27674 pool.reserve().safeTransfer(... */
tag_187
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27626:27631 token */
- immutable("0x35e0a5d0f5b0569d1093ec5fdf2f163fb06bd6f948370537b24e994190ee9404")
+ immutable("0x6bff3f8d49e0bf21b445c8bc0d722f5d313e5fbbc155a2a488e033dca4472618")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27650:27660 remainder_ */
dup3
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27573:27577 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":27573:27585 pool.reserve */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -10451,7 +10449,7 @@
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23490:23506 Phase poolPhase_ */
dup1
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23509:23513 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23509:23526 pool.currentPhase */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -10547,7 +10545,7 @@
tag_200
jumpi
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23646:23650 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23646:23662 pool.reserveInit */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -10622,7 +10620,7 @@
jump // in
tag_204:
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23603:23607 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23603:23615 pool.reserve */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -10701,7 +10699,7 @@
and
0x70a08231
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23636:23640 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23603:23642 pool.reserve().balanceOf(address(pool)) */
mload(0x40)
dup3
@@ -10873,7 +10871,7 @@
tag_229
jumpi
/* "contracts/rain-protocol/contracts/trust/Trust.sol":24113:24127 successBalance */
- immutable("0xfd8d1ed1a43deb872a1a5285e0b64e33422e96d48256d4125a105cc4da5a17c6")
+ immutable("0x3e51459060e66b6570d1994a5c9cc3d07e5a057c13e5407514df21d19f596e66")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":24097:24109 finalBalance */
sload(0x01)
/* "contracts/rain-protocol/contracts/trust/Trust.sol":24097:24127 finalBalance >= successBalance */
@@ -10914,7 +10912,7 @@
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22591:22612 address balancerPool_ */
0x00
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22623:22627 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22623:22631 pool.crp */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -11076,7 +11074,7 @@
tag_241
jumpi
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22793:22797 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22793:22805 pool.reserve */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -11243,7 +11241,7 @@
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22866:22881 token.balanceOf */
0xffffffffffffffffffffffffffffffffffffffff
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22866:22871 token */
- immutable("0x35e0a5d0f5b0569d1093ec5fdf2f163fb06bd6f948370537b24e994190ee9404")
+ immutable("0x6bff3f8d49e0bf21b445c8bc0d722f5d313e5fbbc155a2a488e033dca4472618")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22866:22881 token.balanceOf */
and
swap1
@@ -11362,7 +11360,7 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23092:23096 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23092:23108 pool.phaseBlocks */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -11452,7 +11450,7 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23125:23129 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23125:23141 pool.phaseBlocks */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -11556,7 +11554,7 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23222:23226 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23222:23238 pool.reserveInit */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -11636,21 +11634,21 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23254:23273 minimumCreatorRaise */
- immutable("0x01dee97ea74b75520cf6a46629b466c311f956cbc18a95ae58c573f5867d87a8")
+ immutable("0xb866b42166d4a63f804e4438264181d0993206ec1f5b239ea7c1fff52a5ea29a")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23021:23330 DistributionProgress(... */
dup2
mstore
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23287:23296 seederFee */
- immutable("0x1d02ededae9e217eb08394d0854445ae178adbcb8308b3e681eeeee1489ca4c3")
+ immutable("0xd938a253ffb3229e922cbd95aed81798e77f7df2e8252d39967cf8d5e274639b")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23021:23330 DistributionProgress(... */
dup2
mstore
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23310:23320 redeemInit */
- immutable("0xf5f368b36bc86e66fa8ba483eecfebd009cf8821c91db5504dc0cb8a9388235a")
+ immutable("0x3e7fe5b9155be15b851844c4a8e6f0a976c2e395efb4f30f9ee97eea8f0ce20f")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":23021:23330 DistributionProgress(... */
dup2
mstore
@@ -11666,12 +11664,12 @@
jump // out
/* "contracts/rain-protocol/contracts/trust/Trust.sol":14068:14103 uint256 public immutable redeemInit */
tag_67:
- immutable("0xf5f368b36bc86e66fa8ba483eecfebd009cf8821c91db5504dc0cb8a9388235a")
+ immutable("0x3e7fe5b9155be15b851844c4a8e6f0a976c2e395efb4f30f9ee97eea8f0ce20f")
dup2
jump // out
/* "contracts/rain-protocol/contracts/trust/Trust.sol":13971:14017 uint16 public immutable seederCooldownDuration */
tag_70:
- immutable("0xc6d20a6e2d6a6b10df8604da3588d27eb010ed1234c7e3e6f35825005532e4d1")
+ immutable("0x21c6a7972b66b0c35ecba1c36de5d57657cbf000205a785e808b0b4c4ce20ef4")
dup2
jump // out
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21636:21991 function getContracts() external view returns(TrustContracts memory) {... */
@@ -11690,7 +11688,7 @@
mstore
dup1
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21758:21762 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21758:21770 pool.reserve */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -11772,7 +11770,7 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21795:21800 token */
- immutable("0x35e0a5d0f5b0569d1093ec5fdf2f163fb06bd6f948370537b24e994190ee9404")
+ immutable("0x6bff3f8d49e0bf21b445c8bc0d722f5d313e5fbbc155a2a488e033dca4472618")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21722:21984 TrustContracts(... */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -11781,7 +11779,7 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21823:21827 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21722:21984 TrustContracts(... */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -11790,7 +11788,7 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21850:21856 seeder */
- immutable("0x4082b67cb7af061bf9cf67209517a9191c7bee596624d46eb91d334287a427fb")
+ immutable("0xa2bd1eb099088b4225f808f7c576eb6591882721490cdd16be1da84d93b838dd")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21722:21984 TrustContracts(... */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -11799,7 +11797,7 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21879:21884 token */
- immutable("0x35e0a5d0f5b0569d1093ec5fdf2f163fb06bd6f948370537b24e994190ee9404")
+ immutable("0x6bff3f8d49e0bf21b445c8bc0d722f5d313e5fbbc155a2a488e033dca4472618")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21879:21897 token.tierContract */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -11881,7 +11879,7 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21922:21926 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21922:21930 pool.crp */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -11963,7 +11961,7 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21955:21959 pool */
- immutable("0x08de92283f35cf2bc11367c7da55ab10d0968f5f7c868b68eecd050570aed268")
+ immutable("0xce17d06453ffca39f5c14b408fa4e3dc04d18c7459e558943073236739d9b41e")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":21955:21963 pool.crp */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -12137,7 +12135,7 @@
mstore
dup1
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22171:22178 creator */
- immutable("0x26721cef89d6ca54ed4d654aa494650cf46e75d7e3e9eff3a266421b505fedd2")
+ immutable("0xff877c5ec8b168e137236a8f8d797c4f1a2de7afa9f80ddacc87cd23855fbaa5")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22138:22389 TrustConfig(... */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -12146,14 +12144,14 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22193:22212 minimumCreatorRaise */
- immutable("0x01dee97ea74b75520cf6a46629b466c311f956cbc18a95ae58c573f5867d87a8")
+ immutable("0xb866b42166d4a63f804e4438264181d0993206ec1f5b239ea7c1fff52a5ea29a")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22138:22389 TrustConfig(... */
dup2
mstore
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22226:22242 seedERC20Factory */
- immutable("0x72e500f04d6bf463abe0ab49ce296c197824c4038654f3d4cdb3caf862ef634e")
+ immutable("0xae672f8e0c99c611f2eb3d69db180b38f45039e362b9d24521d3f4945565eae9")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22138:22389 TrustConfig(... */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -12162,7 +12160,7 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22264:22270 seeder */
- immutable("0x4082b67cb7af061bf9cf67209517a9191c7bee596624d46eb91d334287a427fb")
+ immutable("0xa2bd1eb099088b4225f808f7c576eb6591882721490cdd16be1da84d93b838dd")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22138:22389 TrustConfig(... */
0xffffffffffffffffffffffffffffffffffffffff
and
@@ -12171,14 +12169,14 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22285:22294 seederFee */
- immutable("0x1d02ededae9e217eb08394d0854445ae178adbcb8308b3e681eeeee1489ca4c3")
+ immutable("0xd938a253ffb3229e922cbd95aed81798e77f7df2e8252d39967cf8d5e274639b")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22138:22389 TrustConfig(... */
dup2
mstore
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22308:22319 seederUnits */
- immutable("0x8a03e496e719530e08b1c00044535339c35147888b0ea9b1d391b17bb162b341")
+ immutable("0x4e26f2d16eea7e0292a24051cbc7cc5738da627cb8e164620dc5e6eb1d0e03e2")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22138:22389 TrustConfig(... */
0xffff
and
@@ -12187,7 +12185,7 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22333:22355 seederCooldownDuration */
- immutable("0xc6d20a6e2d6a6b10df8604da3588d27eb010ed1234c7e3e6f35825005532e4d1")
+ immutable("0x21c6a7972b66b0c35ecba1c36de5d57657cbf000205a785e808b0b4c4ce20ef4")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22138:22389 TrustConfig(... */
0xffff
and
@@ -12196,7 +12194,7 @@
0x20
add
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22369:22379 redeemInit */
- immutable("0xf5f368b36bc86e66fa8ba483eecfebd009cf8821c91db5504dc0cb8a9388235a")
+ immutable("0x3e7fe5b9155be15b851844c4a8e6f0a976c2e395efb4f30f9ee97eea8f0ce20f")
/* "contracts/rain-protocol/contracts/trust/Trust.sol":22138:22389 TrustConfig(... */
dup2
mstore
@@ -12209,7 +12207,7 @@
jump // out
/* "contracts/rain-protocol/contracts/trust/Trust.sol":15170:15208 RedeemableERC20 public immutable token */
tag_81:
- immutable("0x35e0a5d0f5b0569d1093ec5fdf2f163fb06bd6f948370537b24e994190ee9404")
+ immutable("0x6bff3f8d49e0bf21b445c8bc0d722f5d313e5fbbc155a2a488e033dca4472618")
dup2
jump // out
/* "@openzeppelin/contracts/math/SafeMath.sol":2677:2852 function add(uint256 a, uint256 b) internal pure returns (uint256) {... */
@@ -13201,17 +13199,13 @@
/* "--CODEGEN--":15737:15755 */
dup2
add
- /* "--CODEGEN--":25124:25125 */
- 0x06
- /* "--CODEGEN--":25114:25126 */
- dup4
- lt
- /* "--CODEGEN--":25104:25106 */
+ /* "--CODEGEN--":22824:22880 */
tag_398
- jumpi
- /* "--CODEGEN--":25130:25139 */
- invalid
- /* "--CODEGEN--":25104:25106 */
+ /* "--CODEGEN--":22874:22879 */
+ dup4
+ /* "--CODEGEN--":22824:22880 */
+ tag_399
+ jump // in
tag_398:
/* "--CODEGEN--":4962:5033 */
swap2
@@ -13257,7 +13251,7 @@
/* "--CODEGEN--":22120:22139 */
mstore
/* "--CODEGEN--":5757:5809 */
- tag_402
+ tag_403
/* "--CODEGEN--":5802:5808 */
dup2
/* "--CODEGEN--":22160:22174 */
@@ -13275,7 +13269,7 @@
/* "--CODEGEN--":5757:5809 */
tag_391
jump // in
- tag_402:
+ tag_403:
/* "--CODEGEN--":25015:25017 */
0x1f
/* "--CODEGEN--":24995:25009 */
@@ -13567,13 +13561,13 @@
add
swap1
/* "--CODEGEN--":22824:22880 */
- tag_412
+ tag_413
/* "--CODEGEN--":8981:9004 */
dup2
/* "--CODEGEN--":22824:22880 */
- tag_413
+ tag_399
jump // in
- tag_412:
+ tag_413:
/* "--CODEGEN--":24345:24392 */
dup1
/* "--CODEGEN--":4969:4972 */
@@ -13787,7 +13781,7 @@
dup5
/* "--CODEGEN--":11153:11167 */
add
- /* "--CODEGEN--":3622:3659 */
+ /* "--CODEGEN--":4253:4331 */
mstore
/* "--CODEGEN--":23056:23098 */
dup1
@@ -14128,7 +14122,7 @@
pop
jump // out
/* "--CODEGEN--":25032:25146 */
- tag_413:
+ tag_399:
/* "--CODEGEN--":25124:25125 */
0x06
/* "--CODEGEN--":25117:25122 */ + dup2
+ dup2
+ dup6
+ mload
+ swap1
+ 0x20
+ 0x60
+ 0xffffffffffffffffffffffffffffffffffffffff
+ and
+ and
+ dup1
+ dup1
+ dup7
+ dup8
+ dup8
+ dup9
+ mstore
+ mstore
- 0x06
- invalid
- jumpi
- lt
- 0x20
- dup8
- dup8
- calldataload
- calldataload
- dup2
- dup2
- dup2
- dup2
- dup3
- dup4
- dup5
- swap1
- swap1 I removed comments, tags and immutables from the above. Trimmed filesHere are the trimmed sources with a small script to rerun the comparison: trustfactory-debug-2021-11-16.zip. There's nothing noteworthy there and it's pretty messy but it will save me a lot of time in case I have to dig into it again from where I left off. |
@NanezX I'm going to close the issue since it looks like it only affects old releases and is not a critical security issue for which we'd want backport the fix. It seems to have been caused by extra files added the compilation changing AST IDs and these in turn affecting decisions made by the optimizer. This is no longer a problem with newer versions. Still, thanks for submitting it! We take these kinds of bugs seriously and always want to investigate them. Don't hesitate to reopen or submit another issue if you spot any other problems with bytecode reproducibility. |
We're gonna update the solidity version to 0.8.12 and will share here anyway to show the results. Thanks for your help! |
Hello! Yesterday we updated the solidity version to 0.8.10, and work perfectly, the whole code match. |
Great to hear that! BTW, you mean 0.8.10 of course? Looks like I found the time traveller :P |
Yeah, 0.8.10 hahaha. Thanks! |
Description
Hi everyone, i already ask on the gitter and they told me that i can share the info here. I'm facing a really weird problem with the bytecode that i get from hardhat and I/O Json Descipttion. I created Input JSON Description files with solt to use them to verify in etherscan, but the bytecode that i got from these files it is different on several points along the bytecode. These contracts are using AbiEncodeV2, but doesn't happen with all the contracts so i don't think that is the problem. I know that solt use the sources names with a "realtive name" = './contract/A.sol' whi;le hardhat use "contract/A.sol". I already handle that and it is not the problem, because i'm getting the same metadahash at the end of the bytecode. And i'm using the same compiler setting in Solt files and hardhat.config
I compile from hardhat and deploy with their artifacts (that why i didnt use the plugin), so if the Input JSON doesn't compile the same bytecode, i will not be able to verify them. The only way to verify is using the exact "Input" inside the build-info folder that hardhat made, and just with this JSON i can verify all the contracts. But this is not the exactly what i need, because contain all the test contract that we use (and will show those test contracts as source in etherscan).
In short, i'm getting different bytecode compiled from a Input JSON with the solc --standard-json and the hardhat compiler. Both are using the same solitidty version: v0.6.12+commit.27d51765.
Also,
Environment
Steps to Reproduce
I already asked about to share the source as Input JSON, so i'll share ONE with the Input JSON created by hardhat, and others "individuals" Input JSON made it with solt (but the same settings). So, you should compile with solc 0.6.12, using the flag --standard-json and target a solc-input that i shared.
All the files will be inside the ZIP, and they have the same compiler setting. Ofc, we have more contracts as you will see in the solc-input-hardhat, but i will share these file until you need test more:
Input_JSON_Files.zip
Could it really be a bug? Should be work perfectly as far i know. Or i misunderstood something?
I really appreciate your time to read and help. :)
The text was updated successfully, but these errors were encountered: