@ember-finance/sdk 2.0.5 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -734,11 +734,16 @@
734
734
  },
735
735
  {
736
736
  "internalType": "address",
737
- "name": "newAdapter",
737
+ "name": "user",
738
738
  "type": "address"
739
+ },
740
+ {
741
+ "internalType": "bool",
742
+ "name": "status",
743
+ "type": "bool"
739
744
  }
740
745
  ],
741
- "name": "setVaultBridgeAdapter",
746
+ "name": "setVaultDepositAllowList",
742
747
  "outputs": [],
743
748
  "stateMutability": "nonpayable",
744
749
  "type": "function"
@@ -751,17 +756,17 @@
751
756
  "type": "address"
752
757
  },
753
758
  {
754
- "internalType": "uint256",
755
- "name": "minAmount",
756
- "type": "uint256"
759
+ "internalType": "address",
760
+ "name": "user",
761
+ "type": "address"
757
762
  },
758
763
  {
759
- "internalType": "uint256",
760
- "name": "maxAmount",
761
- "type": "uint256"
764
+ "internalType": "bool",
765
+ "name": "status",
766
+ "type": "bool"
762
767
  }
763
768
  ],
764
- "name": "setVaultBridgeLimits",
769
+ "name": "setVaultFeeExemptionList",
765
770
  "outputs": [],
766
771
  "stateMutability": "nonpayable",
767
772
  "type": "function"
@@ -812,6 +817,24 @@
812
817
  "stateMutability": "nonpayable",
813
818
  "type": "function"
814
819
  },
820
+ {
821
+ "inputs": [
822
+ {
823
+ "internalType": "address",
824
+ "name": "vault",
825
+ "type": "address"
826
+ },
827
+ {
828
+ "internalType": "address",
829
+ "name": "validator",
830
+ "type": "address"
831
+ }
832
+ ],
833
+ "name": "setVaultValidator",
834
+ "outputs": [],
835
+ "stateMutability": "nonpayable",
836
+ "type": "function"
837
+ },
815
838
  {
816
839
  "inputs": [
817
840
  {
@@ -1042,6 +1065,24 @@
1042
1065
  "stateMutability": "nonpayable",
1043
1066
  "type": "function"
1044
1067
  },
1068
+ {
1069
+ "inputs": [
1070
+ {
1071
+ "internalType": "address",
1072
+ "name": "vault",
1073
+ "type": "address"
1074
+ },
1075
+ {
1076
+ "internalType": "uint256",
1077
+ "name": "newPercentage",
1078
+ "type": "uint256"
1079
+ }
1080
+ ],
1081
+ "name": "updateVaultPermanentFeePercentage",
1082
+ "outputs": [],
1083
+ "stateMutability": "nonpayable",
1084
+ "type": "function"
1085
+ },
1045
1086
  {
1046
1087
  "inputs": [
1047
1088
  {
@@ -1078,6 +1119,42 @@
1078
1119
  "stateMutability": "nonpayable",
1079
1120
  "type": "function"
1080
1121
  },
1122
+ {
1123
+ "inputs": [
1124
+ {
1125
+ "internalType": "address",
1126
+ "name": "vault",
1127
+ "type": "address"
1128
+ },
1129
+ {
1130
+ "internalType": "uint256",
1131
+ "name": "newPercentage",
1132
+ "type": "uint256"
1133
+ }
1134
+ ],
1135
+ "name": "updateVaultTimeBasedFeePercentage",
1136
+ "outputs": [],
1137
+ "stateMutability": "nonpayable",
1138
+ "type": "function"
1139
+ },
1140
+ {
1141
+ "inputs": [
1142
+ {
1143
+ "internalType": "address",
1144
+ "name": "vault",
1145
+ "type": "address"
1146
+ },
1147
+ {
1148
+ "internalType": "uint256",
1149
+ "name": "newThreshold",
1150
+ "type": "uint256"
1151
+ }
1152
+ ],
1153
+ "name": "updateVaultTimeBasedFeeThreshold",
1154
+ "outputs": [],
1155
+ "stateMutability": "nonpayable",
1156
+ "type": "function"
1157
+ },
1081
1158
  {
1082
1159
  "inputs": [
1083
1160
  {
@@ -1130,8 +1207,8 @@
1130
1207
  "type": "function"
1131
1208
  }
1132
1209
  ],
1133
- "bytecode": "0x60a080604052346100cc57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c166100bd57506001600160401b036002600160401b031982821601610078575b60405161248f90816100d2823960805181818161181e01526118eb0152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1388080610059565b63f92ee8a960e01b8152600490fd5b600080fdfe60806040908082526004918236101561001757600080fd5b600091823560e01c908163033b66ba1461201257508063052268b014611f7f5780630f1d76c1146107395780631779267814611f615780631edbf55114611e95578063233d91e714611db15780633ecdbce514611d935780634827d32d14611cf5578063485cc95514611ab25780634f1ef2861461187057806352d1902d1461180957806354fd4d50146117cc578063558e44d3146117aa5780635add639f146117185780635b759279146116eb578063615cd86c146116cd5780636347b4f7146116af578063715018a6146116445780637a0c2b70146115b35780637a2165f7146114735780637a7efd06146114555780637af619c0146113875780637bbc1efd146112405780637f517d71146110175780638137926414610fcf5780638920510a14610f6a5780638d097eb414610e965780638da5cb5b14610e615780639635e53d14610d80578063989332e714610c5d57806398fb50d514610bcb578063a3e860fe14610ba9578063aa12543714610b8b578063ad3cb1cc14610b4b578063bcc9397314610ab5578063bfdb1cb014610975578063c24dbebd14610953578063c67fbb9e146107d3578063d2a6e002146107b5578063d3ae9e2814610798578063d819bfef14610776578063e511069214610739578063e85ba9cc1461069b578063e9f061d414610670578063f2fde38b14610643578063f385b54514610444578063f5efbb4f146103d7578063f5fe7f71146103045763facdc09e1461024057600080fd5b3461030057602036600319011261030057823561025b6122ec565b61026361231c565b801580156102f5575b80156102ea575b6102da57600154908181146102ca577f61dbc3bb3261cc877408c2634609c45e2503c4fa4c09a3d78ca071a62123b7359394508060015582519182526020820152a1600160008051602061243a8339815191525580f35b825163c23f6ccb60e01b81528590fd5b8151636a43f8d160e01b81528490fd5b506003548111610273565b50600254811161026c565b5080fd5b5091346103005760203660031901126103005761031f612031565b906103286122ec565b61033061231c565b6001600160a01b038281169182156103c9578454918260081c168093146103bb5750610100600160a81b031916600883901b610100600160a81b0316178355925191927faf04973bb8004e313cfd09017b963bee1e6f6ffb9be88c07a0c5ce5fafe93403929182916103a391908361225e565b0390a1600160008051602061243a8339815191525580f35b855163c23f6ccb60e01b8152fd5b855163d92e233d60e01b8152fd5b508290346104405782600319360112610440576101009254916001549060025490600354905491600554936006549580519760ff81161515895260018060a01b039060081c1660208901528701526060860152608085015260a084015260c083015260e0820152f35b8280fd5b503461030057806003193601126103005761045d612031565b90610466612047565b61046e6122ec565b6001600160a01b0392818416908115610633578351630e4bd7d960e21b8152908516946060828981895afa9182156106295787926105f8575b508060208301511683146105e85780858301511683149182156105db575b505061059257825163368d094360e21b8152868101829052602081602481885afa9081156105d15786916105a2575b50610592578452600760205260ff828520541661058257938394833b1561057e576105379385928385518097819582946378f5689360e11b84523390840161225e565b03925af1908115610575575061055e575b50600160008051602061243a8339815191525580f35b61056790612099565b610572578038610548565b80fd5b513d84823e3d90fd5b8480fd5b81516309550c7760e01b81528590fd5b8251632a9ffab760e21b81528690fd5b6105c4915060203d6020116105ca575b6105bc81836120f8565b810190612246565b386104f4565b503d6105b2565b84513d88823e3d90fd5b51168214905038806104c5565b845163c23f6ccb60e01b81528890fd5b61061b91925060603d606011610622575b61061381836120f8565b810190612200565b90386104a7565b503d610609565b85513d89823e3d90fd5b835163d92e233d60e01b81528790fd5b82346105725760203660031901126105725761066d610660612031565b61066861231c565b612278565b80f35b50346103005781600319360112610300579054905160089190911c6001600160a01b03168152602090f35b5082903461044057602036600319011261044057813591821515809303610734576106c46122ec565b6106cc61231c565b83549060ff821615158414610726575060ff191660ff8316178355519081527fa639e9716593d8bac9384b64b5619d86364f2cd4bbedbae60088c058442b0c4e90602090a1600160008051602061243a8339815191525580f35b825163c23f6ccb60e01b8152fd5b600080fd5b50346103005760203660031901126103005760209160ff9082906001600160a01b03610763612031565b1681526007855220541690519015158152f35b5034610300578160031936011261030057602090516703782dace9d900008152f35b5034610300578160031936011261030057602090516236ee808152f35b50346103005781600319360112610300576020906002549051908152f35b5034610300576060366003190112610300576107ed612031565b9060243593604435926107fe6122ec565b825163c3c2247560e01b81526001600160a01b03919091169590602090818185818b5afa908115610629578791610926575b50821490816108ca575b506108bb57831515806108b2575b6108a3578585963b1561089f57859283606492865197889586946318e836ab60e21b86523390860152602485015260448401525af1908115610575575061055e5750600160008051602061243a8339815191525580f35b8580fd5b509051632a9ffab760e21b8152fd5b50838111610848565b50905163c23f6ccb60e01b8152fd5b8451631804cb2760e21b8152909150818185818b5afa9182156106295787926108f8575b505084143861083a565b90809250813d831161091f575b61090f81836120f8565b81010312610734575138806108ee565b503d610905565b90508181813d831161094c575b61093d81836120f8565b81010312610734575138610830565b503d610933565b503461030057816003193601126103005760209051674563918244f400008152f35b503461030057806003193601126103005761098e612031565b90610997612047565b61099f6122ec565b6001600160a01b0392818416908115610633578351630e4bd7d960e21b8152908516946060828981895afa918215610629578792610a94575b5080858301511683146105e857808251168314918215610a84575b505061059257825163368d094360e21b8152868101829052602081602481885afa9081156105d1578691610a65575b50610592578452600760205260ff828520541661058257938394833b1561057e57610537938592838551809781958294639707df4d60e01b84523390840161225e565b610a7e915060203d6020116105ca576105bc81836120f8565b38610a22565b60200151168214905038806109f3565b610aae91925060603d6060116106225761061381836120f8565b90386109d8565b5034610300576020366003190112610300578235610ad16122ec565b610ad961231c565b67016345785d8a00008111610b3b57600654908181146102ca577fe9bcd3aa21241bd6922e4684c950425edd128358ad7b30f11d596a889b5232c39394508060065582519182526020820152a1600160008051602061243a8339815191525580f35b815163390edff560e11b81528490fd5b50346103005781600319360112610300578051610b8791610b6b826120dd565b60058252640352e302e360dc1b60208301525191829182612134565b0390f35b50346103005781600319360112610300576020906003549051908152f35b503461030057816003193601126103005760209051670de0b6b3a76400008152f35b5034610300576020366003190112610300578235610be76122ec565b610bef61231c565b60015481108015610c52575b6102da57600354908181146102ca577ff5a71b50122870af64c64adf8404af2029395e58592f1f97fd58da4dca004a049394508060035582519182526020820152a1600160008051602061243a8339815191525580f35b506002548111610bfb565b5034610300578060031936011261030057610c76612031565b9060243591610c836122ec565b6006548311610d70578151631311951760e11b81526001600160a01b039190911692906060818781875afa908115610d66579083918691610d11575b5001518114610d0157938394833b1561057e5782516365f0098760e11b8152339281019283526020830191909152928491849190829084908290604001610537565b815163c23f6ccb60e01b81528590fd5b9150506060813d606011610d5e575b81610d2d606093836120f8565b8101031261057e57829081805191610d44836120c2565b805183526020810151602084015201518282015238610cbf565b3d9150610d20565b83513d87823e3d90fd5b815163390edff560e11b81528590fd5b5034610300578060031936011261030057610d99612031565b9060243591610da66122ec565b8215610e51578151631627391760e11b81526001600160a01b039190911692906080818781875afa908115610d6657906020918691610e22575b5001518114610d0157938394833b1561057e578251635c7a68b360e01b8152339281019283526020830191909152928491849190829084908290604001610537565b610e44915060803d608011610e4a575b610e3c81836120f8565b81019061219e565b38610de0565b503d610e32565b8151636a43f8d160e01b81528590fd5b50346103005781600319360112610300576000805160206123fa8339815191525490516001600160a01b039091168152602090f35b50829034610440578060031936011261044057610eb1612031565b906024359182151580930361073457610ec86122ec565b610ed061231c565b6001600160a01b0316928315610f5c5783855260076020528260ff8387205416151514610f4e57507f56b7e599ad39f8ce732b1f0d62c5c93895f6684714a589efff937f691978d37c916020918486526007835280862060ff1981541660ff841617905551908152a2600160008051602061243a8339815191525580f35b905163c23f6ccb60e01b8152fd5b905163d92e233d60e01b8152fd5b5091819234610fcb5780600319360112610fcb57610f86612031565b91610f8f612047565b92610f986122ec565b6001600160a01b031692833b1561057e57610537938592838551809781958294630fd8128f60e31b84523390840161225e565b5050fd5b50829034610440576020366003190112610440576001600160a01b03610ff3612031565b168352600760205260ff818420541661100a578280f35b516309550c7760e01b8152fd5b50913461030057606036600319011261030057611032612031565b9261103b612047565b9161104461208a565b9261104d6122ec565b6001600160a01b039081169081156112305784156111d957808716845163368d094360e21b81528385820152602081602481855afa9081156111cf5788916111b0575b506111a05760608491865192838092630e4bd7d960e21b82525afa908115610629578791611181575b508185818351168514928315611171575b8315611162575b50505061115257818652600760205260ff84872054166111425785965b16803b1561089f57859283606492865197889586946366a3ae2d60e11b865233908601526024850152151560448401525af1908115610575575061055e5750600160008051602061243a8339815191525580f35b83516309550c7760e01b81528390fd5b8351632a9ffab760e21b81528390fd5b015116831490508185386110d1565b60208101518316861493506110ca565b61119a915060603d6060116106225761061381836120f8565b386110b9565b845163c23f6ccb60e01b81528490fd5b6111c9915060203d6020116105ca576105bc81836120f8565b38611090565b86513d8a823e3d90fd5b835163368d094360e21b81528381018390526020816024818b86165afa908115610629578791611211575b50156111525785966110ee565b61122a915060203d6020116105ca576105bc81836120f8565b38611204565b835163d92e233d60e01b81528390fd5b5034610300578060031936011261030057611259612031565b90602435916112666122ec565b821561130957815163d2045f6d60e01b81526001600160a01b0391909116929060209081818881885afa9081156105d157869161135a575b50821461134a5782516278744560e21b815281818881885afa9182156105d157908392918792611319575b50501161130957938394833b1561057e578251632ebc39cd60e11b8152339281019283526020830191909152928491849190829084908290604001610537565b8151632a9ffab760e21b81528590fd5b8193508092503d8311611343575b61133181836120f8565b810103126107345781905138806112c9565b503d611327565b825163c23f6ccb60e01b81528690fd5b90508181813d8311611380575b61137181836120f8565b8101031261073457513861129e565b503d611367565b50346103005780600319360112610300576113a0612031565b90602435916113ad6122ec565b82156113095781516364737b0b60e01b81526001600160a01b039190911692906020818781875afa908115610d66578591611423575b508114610d0157938394833b1561057e57825163249c279d60e21b8152339281019283526020830191909152928491849190829084908290604001610537565b90506020813d60201161144d575b8161143e602093836120f8565b810103126107345751386113e3565b3d9150611431565b50346103005781600319360112610300576020906006549051908152f35b503461030057806003193601126103005761148c612031565b90611495612047565b61149d6122ec565b6001600160a01b0392818416908115610633578351630e4bd7d960e21b8152908516946060828981895afa918215610629578792611592575b508082511683146105e8578085830151168314918215611582575b505061059257825163368d094360e21b8152868101829052602081602481885afa9081156105d1578691611563575b50610592578452600760205260ff828520541661058257938394833b1561057e5761053793859283855180978195829463c55b6bb760e01b84523390840161225e565b61157c915060203d6020116105ca576105bc81836120f8565b38611520565b60200151168214905038806114f1565b6115ac91925060603d6060116106225761061381836120f8565b90386114d6565b5091346103005782600319360112610300576115cd612031565b926024356001600160401b038111611640576115ec903690840161205d565b92906115f66122ec565b83156108a35793948594906001600160a01b0316803b1561089f576105379486809486519788958694859363a2cdb40760e01b85523390850152896024850152604484019161217d565b8380fd5b823461057257806003193601126105725761165d61231c565b6000805160206123fa83398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50823461044057826003193601126104405760209250549051908152f35b50346103005781600319360112610300576020906005549051908152f35b5082903461044057826003193601126104405760ff83541661170b578280f35b51634427925560e01b8152fd5b50346103005760203660031901126103005782356117346122ec565b61173c61231c565b6001548110801561179f575b6102da57600254908181146102ca577f39787d7ea4008505c060b31a371d9d4eefc0f178ee47d39e3b647b0c266cc6219394508060025582519182526020820152a1600160008051602061243a8339815191525580f35b506003548110611748565b50346103005781600319360112610300576020905167016345785d8a00008152f35b50346103005781600319360112610300578051610b87916117ec826120dd565b6006825265076312e322e360d41b60208301525191829182612134565b509034610572578060031936011261057257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611863576020905160008051602061241a8339815191528152f35b5163703e46dd60e11b8152fd5b5080839160031936011261044057611886612031565b9060249384356001600160401b038111610300573660238201121561030057808501356118b281612119565b946118bf855196876120f8565b81865260209182870193368a838301011161089f578186928b8693018737880101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115611a96575b50611a865761192461231c565b81169585516352d1902d60e01b815283818a818b5afa869181611a53575b5061195e575050505050505191634c9c8ce360e01b8352820152fd5b9088888894938c60008051602061241a83398151915291828103611a3e5750853b15611a2a575080546001600160a01b031916821790558451889392917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2825115611a0c5750506119fe9582915190845af4913d15611a02573d6119f06119e782612119565b925192836120f8565b81528581943d92013e612396565b5080f35b5060609250612396565b955095505050505034611a1e57505080f35b63b398979f60e01b8152fd5b8651634c9c8ce360e01b8152808501849052fd5b8751632a87526960e21b815280860191909152fd5b9091508481813d8311611a7f575b611a6b81836120f8565b81010312611a7b5751908b611942565b8680fd5b503d611a61565b855163703e46dd60e11b81528890fd5b90508160008051602061241a833981519152541614158a611917565b508234610440578160031936011261044057611acc612031565b611ad4612047565b917ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009283549160ff83871c1615936001600160401b039384811680159081611ced575b6001149081611ce3575b159081611cda575b50611cca5767ffffffffffffffff1981166001178755611b5b919086611cab575b50611b53612355565b610668612355565b611b63612355565b611b6b612355565b611b73612355565b600160008051602061243a833981519152556001600160a01b0382168015611c9c57865193610100850190811185821017611c87579060e094939291885288845260208401526703782dace9d900008088850152674563918244f40000806060860152670de0b6b3a7640000918260808701526236ee80948560a08801526305265c00968760c082015267016345785d8a0000988991015260005490610100600160a81b039060081b169060ff8d1515169060018060a81b031916171760005560015560025560035555600555600655611c4b578280f35b805460ff60401b1916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a181808280f35b604183634e487b7160e01b6000525260246000fd5b50855163d92e233d60e01b8152fd5b68ffffffffffffffffff19166801000000000000000117875589611b4a565b875163f92ee8a960e01b81528390fd5b9050158a611b29565b303b159150611b21565b879150611b17565b5034610300576020366003190112610300578235611d116122ec565b611d1961231c565b61ea6081108015611d88575b611d78578354908181146102ca57807f21a40a12d0e7a76377e962e9ce90abcb030d3fc9fcee4b2566a46a7715ca683294955582519182526020820152a1600160008051602061243a8339815191525580f35b81516305fabb6160e41b81528490fd5b506005548111611d25565b5034610300578160031936011261030057602090516305265c008152f35b5034610300578060031936011261030057611dca612031565b9060243591611dd76122ec565b845483108015611e8a575b611e7a578151631627391760e11b81526001600160a01b039190911692906080818781875afa908115610d66579083918691611e5b575b5001518114610d0157938394833b1561057e57825163145f178360e31b8152339281019283526020830191909152928491849190829084908290604001610537565b611e74915060803d608011610e4a57610e3c81836120f8565b38611e19565b81516305fabb6160e41b81528590fd5b506005548311611de2565b508290346104405760603660031901126104405782611eb2612031565b6024356001600160401b03811161044057611ed0903690860161205d565b611edb92919261208a565b91611ee46122ec565b6001600160a01b031691823b1561057e57611f2496859187519889968795869463694f0aad60e11b8652339086015260606024860152606485019161217d565b901515604483015203925af19081156105755750611f525750600160008051602061243a8339815191525580f35b611f5b90612099565b81610548565b50346103005781600319360112610300576020906001549051908152f35b5034610300576020366003190112610300578235611f9b6122ec565b611fa361231c565b835481108015612005575b611d7857600554908181146102ca577fbaeeac8f8a689e49b9757e4fe1ca7f9ad3d59c82438cc1133c96a7bed80223119394508060055582519182526020820152a1600160008051602061243a8339815191525580f35b506305265c008111611fae565b83903461030057816003193601126103005760ff602092541615158152f35b600435906001600160a01b038216820361073457565b602435906001600160a01b038216820361073457565b9181601f84011215610734578235916001600160401b038311610734576020838186019501011161073457565b60443590811515820361073457565b6001600160401b0381116120ac57604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176120ac57604052565b604081019081106001600160401b038211176120ac57604052565b90601f801991011681019081106001600160401b038211176120ac57604052565b6001600160401b0381116120ac57601f01601f191660200190565b6020808252825181830181905290939260005b82811061216957505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501612147565b908060209392818452848401376000828201840152601f01601f1916010190565b90816080910312610734576040519060808201908282106001600160401b038311176120ac576060916040528051835260208101516020840152604081015160408401520151606082015290565b51906001600160a01b038216820361073457565b908160609103126107345761223e604080519261221c846120c2565b612225816121ec565b8452612233602082016121ec565b6020850152016121ec565b604082015290565b90816020910312610734575180151581036107345790565b6001600160a01b0391821681529116602082015260400190565b6001600160a01b039081169081156122d3576000805160206123fa83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b60008051602061243a833981519152600281541461230a5760029055565b604051633ee5aeb560e01b8152600490fd5b6000805160206123fa833981519152546001600160a01b0316330361233d57565b60405163118cdaa760e01b8152336004820152602490fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561238457565b604051631afcd79f60e31b8152600490fd5b906123bd57508051156123ab57602081519101fd5b60405163d6bda27560e01b8152600490fd5b815115806123f0575b6123ce575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156123c656fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220a45cc940c9d2ba231083f81e2bbb6a5d5332c446472ae1398063795b30acd38364736f6c63430008160033",
1134
- "deployedBytecode": "0x60806040908082526004918236101561001757600080fd5b600091823560e01c908163033b66ba1461201257508063052268b014611f7f5780630f1d76c1146107395780631779267814611f615780631edbf55114611e95578063233d91e714611db15780633ecdbce514611d935780634827d32d14611cf5578063485cc95514611ab25780634f1ef2861461187057806352d1902d1461180957806354fd4d50146117cc578063558e44d3146117aa5780635add639f146117185780635b759279146116eb578063615cd86c146116cd5780636347b4f7146116af578063715018a6146116445780637a0c2b70146115b35780637a2165f7146114735780637a7efd06146114555780637af619c0146113875780637bbc1efd146112405780637f517d71146110175780638137926414610fcf5780638920510a14610f6a5780638d097eb414610e965780638da5cb5b14610e615780639635e53d14610d80578063989332e714610c5d57806398fb50d514610bcb578063a3e860fe14610ba9578063aa12543714610b8b578063ad3cb1cc14610b4b578063bcc9397314610ab5578063bfdb1cb014610975578063c24dbebd14610953578063c67fbb9e146107d3578063d2a6e002146107b5578063d3ae9e2814610798578063d819bfef14610776578063e511069214610739578063e85ba9cc1461069b578063e9f061d414610670578063f2fde38b14610643578063f385b54514610444578063f5efbb4f146103d7578063f5fe7f71146103045763facdc09e1461024057600080fd5b3461030057602036600319011261030057823561025b6122ec565b61026361231c565b801580156102f5575b80156102ea575b6102da57600154908181146102ca577f61dbc3bb3261cc877408c2634609c45e2503c4fa4c09a3d78ca071a62123b7359394508060015582519182526020820152a1600160008051602061243a8339815191525580f35b825163c23f6ccb60e01b81528590fd5b8151636a43f8d160e01b81528490fd5b506003548111610273565b50600254811161026c565b5080fd5b5091346103005760203660031901126103005761031f612031565b906103286122ec565b61033061231c565b6001600160a01b038281169182156103c9578454918260081c168093146103bb5750610100600160a81b031916600883901b610100600160a81b0316178355925191927faf04973bb8004e313cfd09017b963bee1e6f6ffb9be88c07a0c5ce5fafe93403929182916103a391908361225e565b0390a1600160008051602061243a8339815191525580f35b855163c23f6ccb60e01b8152fd5b855163d92e233d60e01b8152fd5b508290346104405782600319360112610440576101009254916001549060025490600354905491600554936006549580519760ff81161515895260018060a01b039060081c1660208901528701526060860152608085015260a084015260c083015260e0820152f35b8280fd5b503461030057806003193601126103005761045d612031565b90610466612047565b61046e6122ec565b6001600160a01b0392818416908115610633578351630e4bd7d960e21b8152908516946060828981895afa9182156106295787926105f8575b508060208301511683146105e85780858301511683149182156105db575b505061059257825163368d094360e21b8152868101829052602081602481885afa9081156105d15786916105a2575b50610592578452600760205260ff828520541661058257938394833b1561057e576105379385928385518097819582946378f5689360e11b84523390840161225e565b03925af1908115610575575061055e575b50600160008051602061243a8339815191525580f35b61056790612099565b610572578038610548565b80fd5b513d84823e3d90fd5b8480fd5b81516309550c7760e01b81528590fd5b8251632a9ffab760e21b81528690fd5b6105c4915060203d6020116105ca575b6105bc81836120f8565b810190612246565b386104f4565b503d6105b2565b84513d88823e3d90fd5b51168214905038806104c5565b845163c23f6ccb60e01b81528890fd5b61061b91925060603d606011610622575b61061381836120f8565b810190612200565b90386104a7565b503d610609565b85513d89823e3d90fd5b835163d92e233d60e01b81528790fd5b82346105725760203660031901126105725761066d610660612031565b61066861231c565b612278565b80f35b50346103005781600319360112610300579054905160089190911c6001600160a01b03168152602090f35b5082903461044057602036600319011261044057813591821515809303610734576106c46122ec565b6106cc61231c565b83549060ff821615158414610726575060ff191660ff8316178355519081527fa639e9716593d8bac9384b64b5619d86364f2cd4bbedbae60088c058442b0c4e90602090a1600160008051602061243a8339815191525580f35b825163c23f6ccb60e01b8152fd5b600080fd5b50346103005760203660031901126103005760209160ff9082906001600160a01b03610763612031565b1681526007855220541690519015158152f35b5034610300578160031936011261030057602090516703782dace9d900008152f35b5034610300578160031936011261030057602090516236ee808152f35b50346103005781600319360112610300576020906002549051908152f35b5034610300576060366003190112610300576107ed612031565b9060243593604435926107fe6122ec565b825163c3c2247560e01b81526001600160a01b03919091169590602090818185818b5afa908115610629578791610926575b50821490816108ca575b506108bb57831515806108b2575b6108a3578585963b1561089f57859283606492865197889586946318e836ab60e21b86523390860152602485015260448401525af1908115610575575061055e5750600160008051602061243a8339815191525580f35b8580fd5b509051632a9ffab760e21b8152fd5b50838111610848565b50905163c23f6ccb60e01b8152fd5b8451631804cb2760e21b8152909150818185818b5afa9182156106295787926108f8575b505084143861083a565b90809250813d831161091f575b61090f81836120f8565b81010312610734575138806108ee565b503d610905565b90508181813d831161094c575b61093d81836120f8565b81010312610734575138610830565b503d610933565b503461030057816003193601126103005760209051674563918244f400008152f35b503461030057806003193601126103005761098e612031565b90610997612047565b61099f6122ec565b6001600160a01b0392818416908115610633578351630e4bd7d960e21b8152908516946060828981895afa918215610629578792610a94575b5080858301511683146105e857808251168314918215610a84575b505061059257825163368d094360e21b8152868101829052602081602481885afa9081156105d1578691610a65575b50610592578452600760205260ff828520541661058257938394833b1561057e57610537938592838551809781958294639707df4d60e01b84523390840161225e565b610a7e915060203d6020116105ca576105bc81836120f8565b38610a22565b60200151168214905038806109f3565b610aae91925060603d6060116106225761061381836120f8565b90386109d8565b5034610300576020366003190112610300578235610ad16122ec565b610ad961231c565b67016345785d8a00008111610b3b57600654908181146102ca577fe9bcd3aa21241bd6922e4684c950425edd128358ad7b30f11d596a889b5232c39394508060065582519182526020820152a1600160008051602061243a8339815191525580f35b815163390edff560e11b81528490fd5b50346103005781600319360112610300578051610b8791610b6b826120dd565b60058252640352e302e360dc1b60208301525191829182612134565b0390f35b50346103005781600319360112610300576020906003549051908152f35b503461030057816003193601126103005760209051670de0b6b3a76400008152f35b5034610300576020366003190112610300578235610be76122ec565b610bef61231c565b60015481108015610c52575b6102da57600354908181146102ca577ff5a71b50122870af64c64adf8404af2029395e58592f1f97fd58da4dca004a049394508060035582519182526020820152a1600160008051602061243a8339815191525580f35b506002548111610bfb565b5034610300578060031936011261030057610c76612031565b9060243591610c836122ec565b6006548311610d70578151631311951760e11b81526001600160a01b039190911692906060818781875afa908115610d66579083918691610d11575b5001518114610d0157938394833b1561057e5782516365f0098760e11b8152339281019283526020830191909152928491849190829084908290604001610537565b815163c23f6ccb60e01b81528590fd5b9150506060813d606011610d5e575b81610d2d606093836120f8565b8101031261057e57829081805191610d44836120c2565b805183526020810151602084015201518282015238610cbf565b3d9150610d20565b83513d87823e3d90fd5b815163390edff560e11b81528590fd5b5034610300578060031936011261030057610d99612031565b9060243591610da66122ec565b8215610e51578151631627391760e11b81526001600160a01b039190911692906080818781875afa908115610d6657906020918691610e22575b5001518114610d0157938394833b1561057e578251635c7a68b360e01b8152339281019283526020830191909152928491849190829084908290604001610537565b610e44915060803d608011610e4a575b610e3c81836120f8565b81019061219e565b38610de0565b503d610e32565b8151636a43f8d160e01b81528590fd5b50346103005781600319360112610300576000805160206123fa8339815191525490516001600160a01b039091168152602090f35b50829034610440578060031936011261044057610eb1612031565b906024359182151580930361073457610ec86122ec565b610ed061231c565b6001600160a01b0316928315610f5c5783855260076020528260ff8387205416151514610f4e57507f56b7e599ad39f8ce732b1f0d62c5c93895f6684714a589efff937f691978d37c916020918486526007835280862060ff1981541660ff841617905551908152a2600160008051602061243a8339815191525580f35b905163c23f6ccb60e01b8152fd5b905163d92e233d60e01b8152fd5b5091819234610fcb5780600319360112610fcb57610f86612031565b91610f8f612047565b92610f986122ec565b6001600160a01b031692833b1561057e57610537938592838551809781958294630fd8128f60e31b84523390840161225e565b5050fd5b50829034610440576020366003190112610440576001600160a01b03610ff3612031565b168352600760205260ff818420541661100a578280f35b516309550c7760e01b8152fd5b50913461030057606036600319011261030057611032612031565b9261103b612047565b9161104461208a565b9261104d6122ec565b6001600160a01b039081169081156112305784156111d957808716845163368d094360e21b81528385820152602081602481855afa9081156111cf5788916111b0575b506111a05760608491865192838092630e4bd7d960e21b82525afa908115610629578791611181575b508185818351168514928315611171575b8315611162575b50505061115257818652600760205260ff84872054166111425785965b16803b1561089f57859283606492865197889586946366a3ae2d60e11b865233908601526024850152151560448401525af1908115610575575061055e5750600160008051602061243a8339815191525580f35b83516309550c7760e01b81528390fd5b8351632a9ffab760e21b81528390fd5b015116831490508185386110d1565b60208101518316861493506110ca565b61119a915060603d6060116106225761061381836120f8565b386110b9565b845163c23f6ccb60e01b81528490fd5b6111c9915060203d6020116105ca576105bc81836120f8565b38611090565b86513d8a823e3d90fd5b835163368d094360e21b81528381018390526020816024818b86165afa908115610629578791611211575b50156111525785966110ee565b61122a915060203d6020116105ca576105bc81836120f8565b38611204565b835163d92e233d60e01b81528390fd5b5034610300578060031936011261030057611259612031565b90602435916112666122ec565b821561130957815163d2045f6d60e01b81526001600160a01b0391909116929060209081818881885afa9081156105d157869161135a575b50821461134a5782516278744560e21b815281818881885afa9182156105d157908392918792611319575b50501161130957938394833b1561057e578251632ebc39cd60e11b8152339281019283526020830191909152928491849190829084908290604001610537565b8151632a9ffab760e21b81528590fd5b8193508092503d8311611343575b61133181836120f8565b810103126107345781905138806112c9565b503d611327565b825163c23f6ccb60e01b81528690fd5b90508181813d8311611380575b61137181836120f8565b8101031261073457513861129e565b503d611367565b50346103005780600319360112610300576113a0612031565b90602435916113ad6122ec565b82156113095781516364737b0b60e01b81526001600160a01b039190911692906020818781875afa908115610d66578591611423575b508114610d0157938394833b1561057e57825163249c279d60e21b8152339281019283526020830191909152928491849190829084908290604001610537565b90506020813d60201161144d575b8161143e602093836120f8565b810103126107345751386113e3565b3d9150611431565b50346103005781600319360112610300576020906006549051908152f35b503461030057806003193601126103005761148c612031565b90611495612047565b61149d6122ec565b6001600160a01b0392818416908115610633578351630e4bd7d960e21b8152908516946060828981895afa918215610629578792611592575b508082511683146105e8578085830151168314918215611582575b505061059257825163368d094360e21b8152868101829052602081602481885afa9081156105d1578691611563575b50610592578452600760205260ff828520541661058257938394833b1561057e5761053793859283855180978195829463c55b6bb760e01b84523390840161225e565b61157c915060203d6020116105ca576105bc81836120f8565b38611520565b60200151168214905038806114f1565b6115ac91925060603d6060116106225761061381836120f8565b90386114d6565b5091346103005782600319360112610300576115cd612031565b926024356001600160401b038111611640576115ec903690840161205d565b92906115f66122ec565b83156108a35793948594906001600160a01b0316803b1561089f576105379486809486519788958694859363a2cdb40760e01b85523390850152896024850152604484019161217d565b8380fd5b823461057257806003193601126105725761165d61231c565b6000805160206123fa83398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50823461044057826003193601126104405760209250549051908152f35b50346103005781600319360112610300576020906005549051908152f35b5082903461044057826003193601126104405760ff83541661170b578280f35b51634427925560e01b8152fd5b50346103005760203660031901126103005782356117346122ec565b61173c61231c565b6001548110801561179f575b6102da57600254908181146102ca577f39787d7ea4008505c060b31a371d9d4eefc0f178ee47d39e3b647b0c266cc6219394508060025582519182526020820152a1600160008051602061243a8339815191525580f35b506003548110611748565b50346103005781600319360112610300576020905167016345785d8a00008152f35b50346103005781600319360112610300578051610b87916117ec826120dd565b6006825265076312e322e360d41b60208301525191829182612134565b509034610572578060031936011261057257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611863576020905160008051602061241a8339815191528152f35b5163703e46dd60e11b8152fd5b5080839160031936011261044057611886612031565b9060249384356001600160401b038111610300573660238201121561030057808501356118b281612119565b946118bf855196876120f8565b81865260209182870193368a838301011161089f578186928b8693018737880101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115611a96575b50611a865761192461231c565b81169585516352d1902d60e01b815283818a818b5afa869181611a53575b5061195e575050505050505191634c9c8ce360e01b8352820152fd5b9088888894938c60008051602061241a83398151915291828103611a3e5750853b15611a2a575080546001600160a01b031916821790558451889392917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2825115611a0c5750506119fe9582915190845af4913d15611a02573d6119f06119e782612119565b925192836120f8565b81528581943d92013e612396565b5080f35b5060609250612396565b955095505050505034611a1e57505080f35b63b398979f60e01b8152fd5b8651634c9c8ce360e01b8152808501849052fd5b8751632a87526960e21b815280860191909152fd5b9091508481813d8311611a7f575b611a6b81836120f8565b81010312611a7b5751908b611942565b8680fd5b503d611a61565b855163703e46dd60e11b81528890fd5b90508160008051602061241a833981519152541614158a611917565b508234610440578160031936011261044057611acc612031565b611ad4612047565b917ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009283549160ff83871c1615936001600160401b039384811680159081611ced575b6001149081611ce3575b159081611cda575b50611cca5767ffffffffffffffff1981166001178755611b5b919086611cab575b50611b53612355565b610668612355565b611b63612355565b611b6b612355565b611b73612355565b600160008051602061243a833981519152556001600160a01b0382168015611c9c57865193610100850190811185821017611c87579060e094939291885288845260208401526703782dace9d900008088850152674563918244f40000806060860152670de0b6b3a7640000918260808701526236ee80948560a08801526305265c00968760c082015267016345785d8a0000988991015260005490610100600160a81b039060081b169060ff8d1515169060018060a81b031916171760005560015560025560035555600555600655611c4b578280f35b805460ff60401b1916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a181808280f35b604183634e487b7160e01b6000525260246000fd5b50855163d92e233d60e01b8152fd5b68ffffffffffffffffff19166801000000000000000117875589611b4a565b875163f92ee8a960e01b81528390fd5b9050158a611b29565b303b159150611b21565b879150611b17565b5034610300576020366003190112610300578235611d116122ec565b611d1961231c565b61ea6081108015611d88575b611d78578354908181146102ca57807f21a40a12d0e7a76377e962e9ce90abcb030d3fc9fcee4b2566a46a7715ca683294955582519182526020820152a1600160008051602061243a8339815191525580f35b81516305fabb6160e41b81528490fd5b506005548111611d25565b5034610300578160031936011261030057602090516305265c008152f35b5034610300578060031936011261030057611dca612031565b9060243591611dd76122ec565b845483108015611e8a575b611e7a578151631627391760e11b81526001600160a01b039190911692906080818781875afa908115610d66579083918691611e5b575b5001518114610d0157938394833b1561057e57825163145f178360e31b8152339281019283526020830191909152928491849190829084908290604001610537565b611e74915060803d608011610e4a57610e3c81836120f8565b38611e19565b81516305fabb6160e41b81528590fd5b506005548311611de2565b508290346104405760603660031901126104405782611eb2612031565b6024356001600160401b03811161044057611ed0903690860161205d565b611edb92919261208a565b91611ee46122ec565b6001600160a01b031691823b1561057e57611f2496859187519889968795869463694f0aad60e11b8652339086015260606024860152606485019161217d565b901515604483015203925af19081156105755750611f525750600160008051602061243a8339815191525580f35b611f5b90612099565b81610548565b50346103005781600319360112610300576020906001549051908152f35b5034610300576020366003190112610300578235611f9b6122ec565b611fa361231c565b835481108015612005575b611d7857600554908181146102ca577fbaeeac8f8a689e49b9757e4fe1ca7f9ad3d59c82438cc1133c96a7bed80223119394508060055582519182526020820152a1600160008051602061243a8339815191525580f35b506305265c008111611fae565b83903461030057816003193601126103005760ff602092541615158152f35b600435906001600160a01b038216820361073457565b602435906001600160a01b038216820361073457565b9181601f84011215610734578235916001600160401b038311610734576020838186019501011161073457565b60443590811515820361073457565b6001600160401b0381116120ac57604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176120ac57604052565b604081019081106001600160401b038211176120ac57604052565b90601f801991011681019081106001600160401b038211176120ac57604052565b6001600160401b0381116120ac57601f01601f191660200190565b6020808252825181830181905290939260005b82811061216957505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501612147565b908060209392818452848401376000828201840152601f01601f1916010190565b90816080910312610734576040519060808201908282106001600160401b038311176120ac576060916040528051835260208101516020840152604081015160408401520151606082015290565b51906001600160a01b038216820361073457565b908160609103126107345761223e604080519261221c846120c2565b612225816121ec565b8452612233602082016121ec565b6020850152016121ec565b604082015290565b90816020910312610734575180151581036107345790565b6001600160a01b0391821681529116602082015260400190565b6001600160a01b039081169081156122d3576000805160206123fa83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b60008051602061243a833981519152600281541461230a5760029055565b604051633ee5aeb560e01b8152600490fd5b6000805160206123fa833981519152546001600160a01b0316330361233d57565b60405163118cdaa760e01b8152336004820152602490fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561238457565b604051631afcd79f60e31b8152600490fd5b906123bd57508051156123ab57602081519101fd5b60405163d6bda27560e01b8152600490fd5b815115806123f0575b6123ce575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156123c656fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220a45cc940c9d2ba231083f81e2bbb6a5d5332c446472ae1398063795b30acd38364736f6c63430008160033",
1210
+ "bytecode": "0x60a080604052346100cd57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c166100be57506001600160401b036002600160401b031982821601610079575b604051612b189081620000d38239608051818181611cec0152611db90152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1388080610059565b63f92ee8a960e01b8152600490fd5b600080fdfe60806040908082526004918236101561001757600080fd5b600091823560e01c908163033b66ba146125fd57508063052268b01461256a5780630f1d76c114610765578063177926781461254c5780631edbf5511461248057806322ed501f1461235f578063233d91e71461227b5780633ecdbce51461225d5780634827d32d146121bf578063485cc95514611f7c5780634f1ef28614611d3e57806352d1902d14611cd757806354fd4d5014611c9a578063558e44d314611c785780635add639f14611be65780635b75927914611bb95780635e6e638914611aa5578063615cd86c14611a8757806361a32ac31461194c5780636347b4f71461192e578063715018a6146118c357806375a9f799146117035780637a0c2b70146116635780637a2165f7146115235780637a7efd06146115055780637af619c0146114375780637bbc1efd146112f05780637f517d71146110d7578063813792641461108f5780638d097eb414610fbb5780638da5cb5b14610f8657806394614b3314610d5e5780639635e53d14610c7d578063989332e714610b6e57806398fb50d514610adc578063a3e860fe14610aba578063aa12543714610a9c578063ad3cb1cc14610a5c578063bcc93973146109c6578063bd5d576814610961578063bfdb1cb014610821578063c24dbebd146107ff578063d2a6e002146107e1578063d3ae9e28146107c4578063d819bfef146107a2578063e511069214610765578063e85ba9cc146106c7578063e9f061d41461069c578063f2fde38b1461066f578063f385b54514610470578063f5efbb4f14610403578063f5fe7f71146103305763facdc09e1461026c57600080fd5b3461032c57602036600319011261032c578235610287612975565b61028f6129a5565b80158015610321575b8015610316575b61030657600154908181146102f6577f61dbc3bb3261cc877408c2634609c45e2503c4fa4c09a3d78ca071a62123b7359394508060015582519182526020820152a16001600080516020612ac38339815191525580f35b825163c23f6ccb60e01b81528590fd5b8151636a43f8d160e01b81528490fd5b50600354811161029f565b506002548111610298565b5080fd5b50913461032c57602036600319011261032c5761034b61261c565b90610354612975565b61035c6129a5565b6001600160a01b038281169182156103f5578454918260081c168093146103e75750610100600160a81b031916600883901b610100600160a81b0316178355925191927faf04973bb8004e313cfd09017b963bee1e6f6ffb9be88c07a0c5ce5fafe93403929182916103cf919083612862565b0390a16001600080516020612ac38339815191525580f35b855163c23f6ccb60e01b8152fd5b855163d92e233d60e01b8152fd5b5082903461046c578260031936011261046c576101009254916001549060025490600354905491600554936006549580519760ff81161515895260018060a01b039060081c1660208901528701526060860152608085015260a084015260c083015260e0820152f35b8280fd5b503461032c578060031936011261032c5761048961261c565b90610492612632565b61049a612975565b6001600160a01b039281841690811561065f578351630e4bd7d960e21b8152908516946060828981895afa918215610655578792610624575b50806020830151168314610614578085830151168314918215610607575b50506105be57825163368d094360e21b8152868101829052602081602481885afa9081156105fd5786916105ce575b506105be578452600760205260ff82852054166105ae57938394833b156105aa576105639385928385518097819582946378f5689360e11b845233908401612862565b03925af19081156105a1575061058a575b506001600080516020612ac38339815191525580f35b61059390612684565b61059e578038610574565b80fd5b513d84823e3d90fd5b8480fd5b81516309550c7760e01b81528590fd5b8251632a9ffab760e21b81528690fd5b6105f0915060203d6020116105f6575b6105e881836126e3565b81019061284a565b38610520565b503d6105de565b84513d88823e3d90fd5b51168214905038806104f1565b845163c23f6ccb60e01b81528890fd5b61064791925060603d60601161064e575b61063f81836126e3565b810190612890565b90386104d3565b503d610635565b85513d89823e3d90fd5b835163d92e233d60e01b81528790fd5b823461059e57602036600319011261059e5761069961068c61261c565b6106946129a5565b612901565b80f35b503461032c578160031936011261032c579054905160089190911c6001600160a01b03168152602090f35b5082903461046c57602036600319011261046c57813591821515809303610760576106f0612975565b6106f86129a5565b83549060ff821615158414610752575060ff191660ff8316178355519081527fa639e9716593d8bac9384b64b5619d86364f2cd4bbedbae60088c058442b0c4e90602090a16001600080516020612ac38339815191525580f35b825163c23f6ccb60e01b8152fd5b600080fd5b503461032c57602036600319011261032c5760209160ff9082906001600160a01b0361078f61261c565b1681526007855220541690519015158152f35b503461032c578160031936011261032c57602090516703782dace9d900008152f35b503461032c578160031936011261032c57602090516236ee808152f35b503461032c578160031936011261032c576020906002549051908152f35b503461032c578160031936011261032c5760209051674563918244f400008152f35b503461032c578060031936011261032c5761083a61261c565b90610843612632565b61084b612975565b6001600160a01b039281841690811561065f578351630e4bd7d960e21b8152908516946060828981895afa918215610655578792610940575b50808583015116831461061457808251168314918215610930575b50506105be57825163368d094360e21b8152868101829052602081602481885afa9081156105fd578691610911575b506105be578452600760205260ff82852054166105ae57938394833b156105aa57610563938592838551809781958294639707df4d60e01b845233908401612862565b61092a915060203d6020116105f6576105e881836126e3565b386108ce565b602001511682149050388061089f565b61095a91925060603d60601161064e5761063f81836126e3565b9038610884565b50918192346109c257806003193601126109c25761097d61261c565b91610986612632565b9261098f612975565b6001600160a01b031692833b156105aa576105639385928385518097819582946317abaaed60e31b845233908401612862565b5050fd5b503461032c57602036600319011261032c5782356109e2612975565b6109ea6129a5565b67016345785d8a00008111610a4c57600654908181146102f6577fe9bcd3aa21241bd6922e4684c950425edd128358ad7b30f11d596a889b5232c39394508060065582519182526020820152a16001600080516020612ac38339815191525580f35b815163390edff560e11b81528490fd5b503461032c578160031936011261032c578051610a9891610a7c826126c8565b60058252640352e302e360dc1b6020830152519182918261271f565b0390f35b503461032c578160031936011261032c576020906003549051908152f35b503461032c578160031936011261032c5760209051670de0b6b3a76400008152f35b503461032c57602036600319011261032c578235610af8612975565b610b006129a5565b60015481108015610b63575b61030657600354908181146102f6577ff5a71b50122870af64c64adf8404af2029395e58592f1f97fd58da4dca004a049394508060035582519182526020820152a16001600080516020612ac38339815191525580f35b506002548111610b0c565b503461032c578060031936011261032c57610b8761261c565b9060243591610b94612975565b6006548311610c6d578151631311951760e11b81526001600160a01b039190911692906060818781875afa908115610c63579083918691610c22575b5001518114610c1257938394833b156105aa5782516365f0098760e11b8152339281019283526020830191909152928491849190829084908290604001610563565b815163c23f6ccb60e01b81528590fd5b91505060603d606011610c5c575b610c3a81836126e3565b810190606081830312610c58578391610c52916127a8565b38610bd0565b8580fd5b503d610c30565b83513d87823e3d90fd5b815163390edff560e11b81528590fd5b503461032c578060031936011261032c57610c9661261c565b9060243591610ca3612975565b8215610d4e578151631627391760e11b81526001600160a01b039190911692906080818781875afa908115610c6357906020918691610d1f575b5001518114610c1257938394833b156105aa578251635c7a68b360e01b8152339281019283526020830191909152928491849190829084908290604001610563565b610d41915060803d608011610d47575b610d3981836126e3565b8101906127fc565b38610cdd565b503d610d2f565b8151636a43f8d160e01b81528590fd5b50913461032c57606036600319011261032c57610d7961261c565b92610d82612632565b91610d8b612675565b92610d94612975565b6001600160a01b03818116908115610f765784516316d0402960e11b815288821692602092909183818881885afa908115610f08579082918b91610f49575b501693610df584878d8b5193849283926355aebb6d60e11b84528d8401612862565b0381895afa908115610f3f578b91610f22575b50151589151514610f125788610e4c575b505050508596813b15610e48578680946105638751988996879586946366239a1360e01b8652339086016128d6565b8680fd5b9060608792895193848092630e4bd7d960e21b82525afa918215610f08578a92610ee7575b5087818351168414928315610ed8575b8315610ec9575b505050610eb9578752600790528386205460ff16610ea95738808080610e19565b83516309550c7760e01b81528390fd5b8551632a9ffab760e21b81528590fd5b01511682149050388781610e88565b85810151831685149350610e81565b610f0191925060603d60601161064e5761063f81836126e3565b9038610e71565b88513d8c823e3d90fd5b875163c23f6ccb60e01b81528790fd5b610f399150853d87116105f6576105e881836126e3565b38610e08565b89513d8d823e3d90fd5b610f699150853d8711610f6f575b610f6181836126e3565b810190612789565b38610dd3565b503d610f57565b845163d92e233d60e01b81528490fd5b503461032c578160031936011261032c57600080516020612a838339815191525490516001600160a01b039091168152602090f35b5082903461046c578060031936011261046c57610fd661261c565b906024359182151580930361076057610fed612975565b610ff56129a5565b6001600160a01b03169283156110815783855260076020528260ff838720541615151461107357507f56b7e599ad39f8ce732b1f0d62c5c93895f6684714a589efff937f691978d37c916020918486526007835280862060ff1981541660ff841617905551908152a26001600080516020612ac38339815191525580f35b905163c23f6ccb60e01b8152fd5b905163d92e233d60e01b8152fd5b5082903461046c57602036600319011261046c576001600160a01b036110b361261c565b168352600760205260ff81842054166110ca578280f35b516309550c7760e01b8152fd5b50913461032c57606036600319011261032c576110f261261c565b926110fb612632565b91611104612675565b9261110d612975565b6001600160a01b039081169081156112e057841561128957808716845163368d094360e21b81528385820152602081602481855afa90811561127f578891611260575b506112505760608491865192838092630e4bd7d960e21b82525afa908115610655578791611231575b508185818351168514928315611221575b8315611212575b50505061120257818652600760205260ff8487205416610ea95785965b16803b15610c5857859283606492865197889586946366a3ae2d60e11b865233908601526024850152151560448401525af19081156105a1575061058a57506001600080516020612ac38339815191525580f35b8351632a9ffab760e21b81528390fd5b01511683149050818538611191565b602081015183168614935061118a565b61124a915060603d60601161064e5761063f81836126e3565b38611179565b845163c23f6ccb60e01b81528490fd5b611279915060203d6020116105f6576105e881836126e3565b38611150565b86513d8a823e3d90fd5b835163368d094360e21b81528381018390526020816024818b86165afa9081156106555787916112c1575b50156112025785966111ae565b6112da915060203d6020116105f6576105e881836126e3565b386112b4565b835163d92e233d60e01b81528390fd5b503461032c578060031936011261032c5761130961261c565b9060243591611316612975565b82156113b957815163d2045f6d60e01b81526001600160a01b0391909116929060209081818881885afa9081156105fd57869161140a575b5082146113fa5782516278744560e21b815281818881885afa9182156105fd579083929187926113c9575b5050116113b957938394833b156105aa578251632ebc39cd60e11b8152339281019283526020830191909152928491849190829084908290604001610563565b8151632a9ffab760e21b81528590fd5b8193508092503d83116113f3575b6113e181836126e3565b81010312610760578190513880611379565b503d6113d7565b825163c23f6ccb60e01b81528690fd5b90508181813d8311611430575b61142181836126e3565b8101031261076057513861134e565b503d611417565b503461032c578060031936011261032c5761145061261c565b906024359161145d612975565b82156113b95781516364737b0b60e01b81526001600160a01b039190911692906020818781875afa908115610c635785916114d3575b508114610c1257938394833b156105aa57825163249c279d60e21b8152339281019283526020830191909152928491849190829084908290604001610563565b90506020813d6020116114fd575b816114ee602093836126e3565b81010312610760575138611493565b3d91506114e1565b503461032c578160031936011261032c576020906006549051908152f35b503461032c578060031936011261032c5761153c61261c565b90611545612632565b61154d612975565b6001600160a01b039281841690811561065f578351630e4bd7d960e21b8152908516946060828981895afa918215610655578792611642575b50808251168314610614578085830151168314918215611632575b50506105be57825163368d094360e21b8152868101829052602081602481885afa9081156105fd578691611613575b506105be578452600760205260ff82852054166105ae57938394833b156105aa5761056393859283855180978195829463c55b6bb760e01b845233908401612862565b61162c915060203d6020116105f6576105e881836126e3565b386115d0565b60200151168214905038806115a1565b61165c91925060603d60601161064e5761063f81836126e3565b9038611586565b50913461032c578260031936011261032c5761167d61261c565b926024356001600160401b0381116116ff5761169c9036908401612648565b92906116a6612975565b83156116f05793948594906001600160a01b0316803b15610c58576105639486809486519788958694859363a2cdb40760e01b855233908501528960248501526044840191612768565b509051632a9ffab760e21b8152fd5b8380fd5b50913461032c57606036600319011261032c5761171e61261c565b92611727612632565b91611730612675565b92611739612975565b6001600160a01b03818116908115610f765784516316d0402960e11b815288821692602092909183818881885afa908115610f08579082918b916118a6575b50169361179a84878d8b519384928392630b25a48960e01b84528d8401612862565b0381895afa908115610f3f578b91611889575b50151589151514610f1257886117ed575b505050508596813b15610e4857868094610563875198899687958694637fd0d99760e11b8652339086016128d6565b9060608792895193848092630e4bd7d960e21b82525afa918215610f08578a92611868575b5087818351168414928315611859575b831561184a575b505050610eb9578752600790528386205460ff16610ea957388080806117be565b01511682149050388781611829565b85810151831685149350611822565b61188291925060603d60601161064e5761063f81836126e3565b9038611812565b6118a09150853d87116105f6576105e881836126e3565b386117ad565b6118bd9150853d8711610f6f57610f6181836126e3565b38611778565b823461059e578060031936011261059e576118dc6129a5565b600080516020612a8383398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50823461046c578260031936011261046c5760209250549051908152f35b503461032c578060031936011261032c5761196561261c565b9060243593611972612975565b670de0b6b3a7640000851015611a795781516316d0402960e11b81526001600160a01b03848116969160208185818b5afa908115610655578791611a5a575b50169583519063baa29ceb60e01b8252838201526060816024818a5afa9081156105fd578691611a1f575b50518114611a10578585963b15610c5857610563948680948651978895869485936354c461a560e11b8552339085016127da565b50905163c23f6ccb60e01b8152fd5b905060603d606011611a53575b611a3681836126e3565b810190606081830312610e485790611a4d916127a8565b386119dc565b503d611a2c565b611a73915060203d602011610f6f57610f6181836126e3565b386119b1565b9051632a9ffab760e21b8152fd5b503461032c578160031936011261032c576020906005549051908152f35b503461032c578060031936011261032c57611abe61261c565b9060243593611acb612975565b81516316d0402960e11b81526001600160a01b03848116969160208185818b5afa908115610655578791611b9a575b50169583519063baa29ceb60e01b8252838201526060816024818a5afa9081156105fd579084918791611b5d575b5001518114611a10578585963b15610c585761056394868094865197889586948593633577818160e01b8552339085016127da565b91505060603d606011611b93575b611b7581836126e3565b810190606081830312610e48578491611b8d916127a8565b38611b28565b503d611b6b565b611bb3915060203d602011610f6f57610f6181836126e3565b38611afa565b5082903461046c578260031936011261046c5760ff835416611bd9578280f35b51634427925560e01b8152fd5b503461032c57602036600319011261032c578235611c02612975565b611c0a6129a5565b60015481108015611c6d575b61030657600254908181146102f6577f39787d7ea4008505c060b31a371d9d4eefc0f178ee47d39e3b647b0c266cc6219394508060025582519182526020820152a16001600080516020612ac38339815191525580f35b506003548110611c16565b503461032c578160031936011261032c576020905167016345785d8a00008152f35b503461032c578160031936011261032c578051610a9891611cba826126c8565b6006825265076322e302e360d41b6020830152519182918261271f565b50903461059e578060031936011261059e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611d315760209051600080516020612aa38339815191528152f35b5163703e46dd60e11b8152fd5b5080839160031936011261046c57611d5461261c565b9060249384356001600160401b03811161032c573660238201121561032c5780850135611d8081612704565b94611d8d855196876126e3565b81865260209182870193368a8383010111610c58578186928b8693018737880101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115611f60575b50611f5057611df26129a5565b81169585516352d1902d60e01b815283818a818b5afa869181611f21575b50611e2c575050505050505191634c9c8ce360e01b8352820152fd5b9088888894938c600080516020612aa383398151915291828103611f0c5750853b15611ef8575080546001600160a01b031916821790558451889392917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2825115611eda575050611ecc9582915190845af4913d15611ed0573d611ebe611eb582612704565b925192836126e3565b81528581943d92013e612a1f565b5080f35b5060609250612a1f565b955095505050505034611eec57505080f35b63b398979f60e01b8152fd5b8651634c9c8ce360e01b8152808501849052fd5b8751632a87526960e21b815280860191909152fd5b9091508481813d8311611f49575b611f3981836126e3565b81010312610e485751908b611e10565b503d611f2f565b855163703e46dd60e11b81528890fd5b905081600080516020612aa3833981519152541614158a611de5565b50823461046c578160031936011261046c57611f9661261c565b611f9e612632565b917ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009283549160ff83871c1615936001600160401b0393848116801590816121b7575b60011490816121ad575b1590816121a4575b506121945767ffffffffffffffff1981166001178755612025919086612175575b5061201d6129de565b6106946129de565b61202d6129de565b6120356129de565b61203d6129de565b6001600080516020612ac3833981519152556001600160a01b038216801561216657865193610100850190811185821017612151579060e094939291885288845260208401526703782dace9d900008088850152674563918244f40000806060860152670de0b6b3a7640000918260808701526236ee80948560a08801526305265c00968760c082015267016345785d8a0000988991015260005490610100600160a81b039060081b169060ff8d1515169060018060a81b031916171760005560015560025560035555600555600655612115578280f35b805460ff60401b1916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a181808280f35b604183634e487b7160e01b6000525260246000fd5b50855163d92e233d60e01b8152fd5b68ffffffffffffffffff19166801000000000000000117875589612014565b875163f92ee8a960e01b81528390fd5b9050158a611ff3565b303b159150611feb565b879150611fe1565b503461032c57602036600319011261032c5782356121db612975565b6121e36129a5565b61ea6081108015612252575b612242578354908181146102f657807f21a40a12d0e7a76377e962e9ce90abcb030d3fc9fcee4b2566a46a7715ca683294955582519182526020820152a16001600080516020612ac38339815191525580f35b81516305fabb6160e41b81528490fd5b5060055481116121ef565b503461032c578160031936011261032c57602090516305265c008152f35b503461032c578060031936011261032c5761229461261c565b90602435916122a1612975565b845483108015612354575b612344578151631627391760e11b81526001600160a01b039190911692906080818781875afa908115610c63579083918691612325575b5001518114610c1257938394833b156105aa57825163145f178360e31b8152339281019283526020830191909152928491849190829084908290604001610563565b61233e915060803d608011610d4757610d3981836126e3565b386122e3565b81516305fabb6160e41b81528590fd5b5060055483116122ac565b503461032c578060031936011261032c5761237861261c565b9060243593612385612975565b670de0b6b3a7640000851015611a795781516316d0402960e11b81526001600160a01b03848116969160208185818b5afa908115610655578791612461575b50169583519063baa29ceb60e01b8252838201526060816024818a5afa80156105fd578690612426575b6020915001518114611a10578585963b15610c5857610563948680948651978895869485936311db933960e11b8552339085016127da565b5060603d60601161245a575b61243c81836126e3565b810190606081830312610e4857602091612455916127a8565b6123ee565b503d612432565b61247a915060203d602011610f6f57610f6181836126e3565b386123c4565b5082903461046c57606036600319011261046c578261249d61261c565b6024356001600160401b03811161046c576124bb9036908601612648565b6124c6929192612675565b916124cf612975565b6001600160a01b031691823b156105aa5761250f96859187519889968795869463694f0aad60e11b86523390860152606060248601526064850191612768565b901515604483015203925af19081156105a1575061253d57506001600080516020612ac38339815191525580f35b61254690612684565b81610574565b503461032c578160031936011261032c576020906001549051908152f35b503461032c57602036600319011261032c578235612586612975565b61258e6129a5565b8354811080156125f0575b61224257600554908181146102f6577fbaeeac8f8a689e49b9757e4fe1ca7f9ad3d59c82438cc1133c96a7bed80223119394508060055582519182526020820152a16001600080516020612ac38339815191525580f35b506305265c008111612599565b83903461032c578160031936011261032c5760ff602092541615158152f35b600435906001600160a01b038216820361076057565b602435906001600160a01b038216820361076057565b9181601f84011215610760578235916001600160401b038311610760576020838186019501011161076057565b60443590811515820361076057565b6001600160401b03811161269757604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761269757604052565b604081019081106001600160401b0382111761269757604052565b90601f801991011681019081106001600160401b0382111761269757604052565b6001600160401b03811161269757601f01601f191660200190565b6020808252825181830181905290939260005b82811061275457505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501612732565b908060209392818452848401376000828201840152601f01601f1916010190565b9081602091031261076057516001600160a01b03811681036107605790565b9190826060910312610760576040516127c0816126ad565b604080829480518452602081015160208501520151910152565b6001600160a01b03918216815291166020820152604081019190915260600190565b90816080910312610760576040519060808201908282106001600160401b03831117612697576060916040528051835260208101516020840152604081015160408401520151606082015290565b90816020910312610760575180151581036107605790565b6001600160a01b0391821681529116602082015260400190565b51906001600160a01b038216820361076057565b90816060910312610760576128ce60408051926128ac846126ad565b6128b58161287c565b84526128c36020820161287c565b60208501520161287c565b604082015290565b6001600160a01b03918216815291811660208301529091166040820152901515606082015260800190565b6001600160a01b0390811690811561295c57600080516020612a8383398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b600080516020612ac383398151915260028154146129935760029055565b604051633ee5aeb560e01b8152600490fd5b600080516020612a83833981519152546001600160a01b031633036129c657565b60405163118cdaa760e01b8152336004820152602490fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615612a0d57565b604051631afcd79f60e31b8152600490fd5b90612a465750805115612a3457602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580612a79575b612a57575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15612a4f56fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220e92868c22ac6ea96e2d85898b6afc8a046529d8f177a16ed1e10b0c1a62177f264736f6c63430008160033",
1211
+ "deployedBytecode": "0x60806040908082526004918236101561001757600080fd5b600091823560e01c908163033b66ba146125fd57508063052268b01461256a5780630f1d76c114610765578063177926781461254c5780631edbf5511461248057806322ed501f1461235f578063233d91e71461227b5780633ecdbce51461225d5780634827d32d146121bf578063485cc95514611f7c5780634f1ef28614611d3e57806352d1902d14611cd757806354fd4d5014611c9a578063558e44d314611c785780635add639f14611be65780635b75927914611bb95780635e6e638914611aa5578063615cd86c14611a8757806361a32ac31461194c5780636347b4f71461192e578063715018a6146118c357806375a9f799146117035780637a0c2b70146116635780637a2165f7146115235780637a7efd06146115055780637af619c0146114375780637bbc1efd146112f05780637f517d71146110d7578063813792641461108f5780638d097eb414610fbb5780638da5cb5b14610f8657806394614b3314610d5e5780639635e53d14610c7d578063989332e714610b6e57806398fb50d514610adc578063a3e860fe14610aba578063aa12543714610a9c578063ad3cb1cc14610a5c578063bcc93973146109c6578063bd5d576814610961578063bfdb1cb014610821578063c24dbebd146107ff578063d2a6e002146107e1578063d3ae9e28146107c4578063d819bfef146107a2578063e511069214610765578063e85ba9cc146106c7578063e9f061d41461069c578063f2fde38b1461066f578063f385b54514610470578063f5efbb4f14610403578063f5fe7f71146103305763facdc09e1461026c57600080fd5b3461032c57602036600319011261032c578235610287612975565b61028f6129a5565b80158015610321575b8015610316575b61030657600154908181146102f6577f61dbc3bb3261cc877408c2634609c45e2503c4fa4c09a3d78ca071a62123b7359394508060015582519182526020820152a16001600080516020612ac38339815191525580f35b825163c23f6ccb60e01b81528590fd5b8151636a43f8d160e01b81528490fd5b50600354811161029f565b506002548111610298565b5080fd5b50913461032c57602036600319011261032c5761034b61261c565b90610354612975565b61035c6129a5565b6001600160a01b038281169182156103f5578454918260081c168093146103e75750610100600160a81b031916600883901b610100600160a81b0316178355925191927faf04973bb8004e313cfd09017b963bee1e6f6ffb9be88c07a0c5ce5fafe93403929182916103cf919083612862565b0390a16001600080516020612ac38339815191525580f35b855163c23f6ccb60e01b8152fd5b855163d92e233d60e01b8152fd5b5082903461046c578260031936011261046c576101009254916001549060025490600354905491600554936006549580519760ff81161515895260018060a01b039060081c1660208901528701526060860152608085015260a084015260c083015260e0820152f35b8280fd5b503461032c578060031936011261032c5761048961261c565b90610492612632565b61049a612975565b6001600160a01b039281841690811561065f578351630e4bd7d960e21b8152908516946060828981895afa918215610655578792610624575b50806020830151168314610614578085830151168314918215610607575b50506105be57825163368d094360e21b8152868101829052602081602481885afa9081156105fd5786916105ce575b506105be578452600760205260ff82852054166105ae57938394833b156105aa576105639385928385518097819582946378f5689360e11b845233908401612862565b03925af19081156105a1575061058a575b506001600080516020612ac38339815191525580f35b61059390612684565b61059e578038610574565b80fd5b513d84823e3d90fd5b8480fd5b81516309550c7760e01b81528590fd5b8251632a9ffab760e21b81528690fd5b6105f0915060203d6020116105f6575b6105e881836126e3565b81019061284a565b38610520565b503d6105de565b84513d88823e3d90fd5b51168214905038806104f1565b845163c23f6ccb60e01b81528890fd5b61064791925060603d60601161064e575b61063f81836126e3565b810190612890565b90386104d3565b503d610635565b85513d89823e3d90fd5b835163d92e233d60e01b81528790fd5b823461059e57602036600319011261059e5761069961068c61261c565b6106946129a5565b612901565b80f35b503461032c578160031936011261032c579054905160089190911c6001600160a01b03168152602090f35b5082903461046c57602036600319011261046c57813591821515809303610760576106f0612975565b6106f86129a5565b83549060ff821615158414610752575060ff191660ff8316178355519081527fa639e9716593d8bac9384b64b5619d86364f2cd4bbedbae60088c058442b0c4e90602090a16001600080516020612ac38339815191525580f35b825163c23f6ccb60e01b8152fd5b600080fd5b503461032c57602036600319011261032c5760209160ff9082906001600160a01b0361078f61261c565b1681526007855220541690519015158152f35b503461032c578160031936011261032c57602090516703782dace9d900008152f35b503461032c578160031936011261032c57602090516236ee808152f35b503461032c578160031936011261032c576020906002549051908152f35b503461032c578160031936011261032c5760209051674563918244f400008152f35b503461032c578060031936011261032c5761083a61261c565b90610843612632565b61084b612975565b6001600160a01b039281841690811561065f578351630e4bd7d960e21b8152908516946060828981895afa918215610655578792610940575b50808583015116831461061457808251168314918215610930575b50506105be57825163368d094360e21b8152868101829052602081602481885afa9081156105fd578691610911575b506105be578452600760205260ff82852054166105ae57938394833b156105aa57610563938592838551809781958294639707df4d60e01b845233908401612862565b61092a915060203d6020116105f6576105e881836126e3565b386108ce565b602001511682149050388061089f565b61095a91925060603d60601161064e5761063f81836126e3565b9038610884565b50918192346109c257806003193601126109c25761097d61261c565b91610986612632565b9261098f612975565b6001600160a01b031692833b156105aa576105639385928385518097819582946317abaaed60e31b845233908401612862565b5050fd5b503461032c57602036600319011261032c5782356109e2612975565b6109ea6129a5565b67016345785d8a00008111610a4c57600654908181146102f6577fe9bcd3aa21241bd6922e4684c950425edd128358ad7b30f11d596a889b5232c39394508060065582519182526020820152a16001600080516020612ac38339815191525580f35b815163390edff560e11b81528490fd5b503461032c578160031936011261032c578051610a9891610a7c826126c8565b60058252640352e302e360dc1b6020830152519182918261271f565b0390f35b503461032c578160031936011261032c576020906003549051908152f35b503461032c578160031936011261032c5760209051670de0b6b3a76400008152f35b503461032c57602036600319011261032c578235610af8612975565b610b006129a5565b60015481108015610b63575b61030657600354908181146102f6577ff5a71b50122870af64c64adf8404af2029395e58592f1f97fd58da4dca004a049394508060035582519182526020820152a16001600080516020612ac38339815191525580f35b506002548111610b0c565b503461032c578060031936011261032c57610b8761261c565b9060243591610b94612975565b6006548311610c6d578151631311951760e11b81526001600160a01b039190911692906060818781875afa908115610c63579083918691610c22575b5001518114610c1257938394833b156105aa5782516365f0098760e11b8152339281019283526020830191909152928491849190829084908290604001610563565b815163c23f6ccb60e01b81528590fd5b91505060603d606011610c5c575b610c3a81836126e3565b810190606081830312610c58578391610c52916127a8565b38610bd0565b8580fd5b503d610c30565b83513d87823e3d90fd5b815163390edff560e11b81528590fd5b503461032c578060031936011261032c57610c9661261c565b9060243591610ca3612975565b8215610d4e578151631627391760e11b81526001600160a01b039190911692906080818781875afa908115610c6357906020918691610d1f575b5001518114610c1257938394833b156105aa578251635c7a68b360e01b8152339281019283526020830191909152928491849190829084908290604001610563565b610d41915060803d608011610d47575b610d3981836126e3565b8101906127fc565b38610cdd565b503d610d2f565b8151636a43f8d160e01b81528590fd5b50913461032c57606036600319011261032c57610d7961261c565b92610d82612632565b91610d8b612675565b92610d94612975565b6001600160a01b03818116908115610f765784516316d0402960e11b815288821692602092909183818881885afa908115610f08579082918b91610f49575b501693610df584878d8b5193849283926355aebb6d60e11b84528d8401612862565b0381895afa908115610f3f578b91610f22575b50151589151514610f125788610e4c575b505050508596813b15610e48578680946105638751988996879586946366239a1360e01b8652339086016128d6565b8680fd5b9060608792895193848092630e4bd7d960e21b82525afa918215610f08578a92610ee7575b5087818351168414928315610ed8575b8315610ec9575b505050610eb9578752600790528386205460ff16610ea95738808080610e19565b83516309550c7760e01b81528390fd5b8551632a9ffab760e21b81528590fd5b01511682149050388781610e88565b85810151831685149350610e81565b610f0191925060603d60601161064e5761063f81836126e3565b9038610e71565b88513d8c823e3d90fd5b875163c23f6ccb60e01b81528790fd5b610f399150853d87116105f6576105e881836126e3565b38610e08565b89513d8d823e3d90fd5b610f699150853d8711610f6f575b610f6181836126e3565b810190612789565b38610dd3565b503d610f57565b845163d92e233d60e01b81528490fd5b503461032c578160031936011261032c57600080516020612a838339815191525490516001600160a01b039091168152602090f35b5082903461046c578060031936011261046c57610fd661261c565b906024359182151580930361076057610fed612975565b610ff56129a5565b6001600160a01b03169283156110815783855260076020528260ff838720541615151461107357507f56b7e599ad39f8ce732b1f0d62c5c93895f6684714a589efff937f691978d37c916020918486526007835280862060ff1981541660ff841617905551908152a26001600080516020612ac38339815191525580f35b905163c23f6ccb60e01b8152fd5b905163d92e233d60e01b8152fd5b5082903461046c57602036600319011261046c576001600160a01b036110b361261c565b168352600760205260ff81842054166110ca578280f35b516309550c7760e01b8152fd5b50913461032c57606036600319011261032c576110f261261c565b926110fb612632565b91611104612675565b9261110d612975565b6001600160a01b039081169081156112e057841561128957808716845163368d094360e21b81528385820152602081602481855afa90811561127f578891611260575b506112505760608491865192838092630e4bd7d960e21b82525afa908115610655578791611231575b508185818351168514928315611221575b8315611212575b50505061120257818652600760205260ff8487205416610ea95785965b16803b15610c5857859283606492865197889586946366a3ae2d60e11b865233908601526024850152151560448401525af19081156105a1575061058a57506001600080516020612ac38339815191525580f35b8351632a9ffab760e21b81528390fd5b01511683149050818538611191565b602081015183168614935061118a565b61124a915060603d60601161064e5761063f81836126e3565b38611179565b845163c23f6ccb60e01b81528490fd5b611279915060203d6020116105f6576105e881836126e3565b38611150565b86513d8a823e3d90fd5b835163368d094360e21b81528381018390526020816024818b86165afa9081156106555787916112c1575b50156112025785966111ae565b6112da915060203d6020116105f6576105e881836126e3565b386112b4565b835163d92e233d60e01b81528390fd5b503461032c578060031936011261032c5761130961261c565b9060243591611316612975565b82156113b957815163d2045f6d60e01b81526001600160a01b0391909116929060209081818881885afa9081156105fd57869161140a575b5082146113fa5782516278744560e21b815281818881885afa9182156105fd579083929187926113c9575b5050116113b957938394833b156105aa578251632ebc39cd60e11b8152339281019283526020830191909152928491849190829084908290604001610563565b8151632a9ffab760e21b81528590fd5b8193508092503d83116113f3575b6113e181836126e3565b81010312610760578190513880611379565b503d6113d7565b825163c23f6ccb60e01b81528690fd5b90508181813d8311611430575b61142181836126e3565b8101031261076057513861134e565b503d611417565b503461032c578060031936011261032c5761145061261c565b906024359161145d612975565b82156113b95781516364737b0b60e01b81526001600160a01b039190911692906020818781875afa908115610c635785916114d3575b508114610c1257938394833b156105aa57825163249c279d60e21b8152339281019283526020830191909152928491849190829084908290604001610563565b90506020813d6020116114fd575b816114ee602093836126e3565b81010312610760575138611493565b3d91506114e1565b503461032c578160031936011261032c576020906006549051908152f35b503461032c578060031936011261032c5761153c61261c565b90611545612632565b61154d612975565b6001600160a01b039281841690811561065f578351630e4bd7d960e21b8152908516946060828981895afa918215610655578792611642575b50808251168314610614578085830151168314918215611632575b50506105be57825163368d094360e21b8152868101829052602081602481885afa9081156105fd578691611613575b506105be578452600760205260ff82852054166105ae57938394833b156105aa5761056393859283855180978195829463c55b6bb760e01b845233908401612862565b61162c915060203d6020116105f6576105e881836126e3565b386115d0565b60200151168214905038806115a1565b61165c91925060603d60601161064e5761063f81836126e3565b9038611586565b50913461032c578260031936011261032c5761167d61261c565b926024356001600160401b0381116116ff5761169c9036908401612648565b92906116a6612975565b83156116f05793948594906001600160a01b0316803b15610c58576105639486809486519788958694859363a2cdb40760e01b855233908501528960248501526044840191612768565b509051632a9ffab760e21b8152fd5b8380fd5b50913461032c57606036600319011261032c5761171e61261c565b92611727612632565b91611730612675565b92611739612975565b6001600160a01b03818116908115610f765784516316d0402960e11b815288821692602092909183818881885afa908115610f08579082918b916118a6575b50169361179a84878d8b519384928392630b25a48960e01b84528d8401612862565b0381895afa908115610f3f578b91611889575b50151589151514610f1257886117ed575b505050508596813b15610e4857868094610563875198899687958694637fd0d99760e11b8652339086016128d6565b9060608792895193848092630e4bd7d960e21b82525afa918215610f08578a92611868575b5087818351168414928315611859575b831561184a575b505050610eb9578752600790528386205460ff16610ea957388080806117be565b01511682149050388781611829565b85810151831685149350611822565b61188291925060603d60601161064e5761063f81836126e3565b9038611812565b6118a09150853d87116105f6576105e881836126e3565b386117ad565b6118bd9150853d8711610f6f57610f6181836126e3565b38611778565b823461059e578060031936011261059e576118dc6129a5565b600080516020612a8383398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50823461046c578260031936011261046c5760209250549051908152f35b503461032c578060031936011261032c5761196561261c565b9060243593611972612975565b670de0b6b3a7640000851015611a795781516316d0402960e11b81526001600160a01b03848116969160208185818b5afa908115610655578791611a5a575b50169583519063baa29ceb60e01b8252838201526060816024818a5afa9081156105fd578691611a1f575b50518114611a10578585963b15610c5857610563948680948651978895869485936354c461a560e11b8552339085016127da565b50905163c23f6ccb60e01b8152fd5b905060603d606011611a53575b611a3681836126e3565b810190606081830312610e485790611a4d916127a8565b386119dc565b503d611a2c565b611a73915060203d602011610f6f57610f6181836126e3565b386119b1565b9051632a9ffab760e21b8152fd5b503461032c578160031936011261032c576020906005549051908152f35b503461032c578060031936011261032c57611abe61261c565b9060243593611acb612975565b81516316d0402960e11b81526001600160a01b03848116969160208185818b5afa908115610655578791611b9a575b50169583519063baa29ceb60e01b8252838201526060816024818a5afa9081156105fd579084918791611b5d575b5001518114611a10578585963b15610c585761056394868094865197889586948593633577818160e01b8552339085016127da565b91505060603d606011611b93575b611b7581836126e3565b810190606081830312610e48578491611b8d916127a8565b38611b28565b503d611b6b565b611bb3915060203d602011610f6f57610f6181836126e3565b38611afa565b5082903461046c578260031936011261046c5760ff835416611bd9578280f35b51634427925560e01b8152fd5b503461032c57602036600319011261032c578235611c02612975565b611c0a6129a5565b60015481108015611c6d575b61030657600254908181146102f6577f39787d7ea4008505c060b31a371d9d4eefc0f178ee47d39e3b647b0c266cc6219394508060025582519182526020820152a16001600080516020612ac38339815191525580f35b506003548110611c16565b503461032c578160031936011261032c576020905167016345785d8a00008152f35b503461032c578160031936011261032c578051610a9891611cba826126c8565b6006825265076322e302e360d41b6020830152519182918261271f565b50903461059e578060031936011261059e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611d315760209051600080516020612aa38339815191528152f35b5163703e46dd60e11b8152fd5b5080839160031936011261046c57611d5461261c565b9060249384356001600160401b03811161032c573660238201121561032c5780850135611d8081612704565b94611d8d855196876126e3565b81865260209182870193368a8383010111610c58578186928b8693018737880101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115611f60575b50611f5057611df26129a5565b81169585516352d1902d60e01b815283818a818b5afa869181611f21575b50611e2c575050505050505191634c9c8ce360e01b8352820152fd5b9088888894938c600080516020612aa383398151915291828103611f0c5750853b15611ef8575080546001600160a01b031916821790558451889392917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2825115611eda575050611ecc9582915190845af4913d15611ed0573d611ebe611eb582612704565b925192836126e3565b81528581943d92013e612a1f565b5080f35b5060609250612a1f565b955095505050505034611eec57505080f35b63b398979f60e01b8152fd5b8651634c9c8ce360e01b8152808501849052fd5b8751632a87526960e21b815280860191909152fd5b9091508481813d8311611f49575b611f3981836126e3565b81010312610e485751908b611e10565b503d611f2f565b855163703e46dd60e11b81528890fd5b905081600080516020612aa3833981519152541614158a611de5565b50823461046c578160031936011261046c57611f9661261c565b611f9e612632565b917ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009283549160ff83871c1615936001600160401b0393848116801590816121b7575b60011490816121ad575b1590816121a4575b506121945767ffffffffffffffff1981166001178755612025919086612175575b5061201d6129de565b6106946129de565b61202d6129de565b6120356129de565b61203d6129de565b6001600080516020612ac3833981519152556001600160a01b038216801561216657865193610100850190811185821017612151579060e094939291885288845260208401526703782dace9d900008088850152674563918244f40000806060860152670de0b6b3a7640000918260808701526236ee80948560a08801526305265c00968760c082015267016345785d8a0000988991015260005490610100600160a81b039060081b169060ff8d1515169060018060a81b031916171760005560015560025560035555600555600655612115578280f35b805460ff60401b1916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a181808280f35b604183634e487b7160e01b6000525260246000fd5b50855163d92e233d60e01b8152fd5b68ffffffffffffffffff19166801000000000000000117875589612014565b875163f92ee8a960e01b81528390fd5b9050158a611ff3565b303b159150611feb565b879150611fe1565b503461032c57602036600319011261032c5782356121db612975565b6121e36129a5565b61ea6081108015612252575b612242578354908181146102f657807f21a40a12d0e7a76377e962e9ce90abcb030d3fc9fcee4b2566a46a7715ca683294955582519182526020820152a16001600080516020612ac38339815191525580f35b81516305fabb6160e41b81528490fd5b5060055481116121ef565b503461032c578160031936011261032c57602090516305265c008152f35b503461032c578060031936011261032c5761229461261c565b90602435916122a1612975565b845483108015612354575b612344578151631627391760e11b81526001600160a01b039190911692906080818781875afa908115610c63579083918691612325575b5001518114610c1257938394833b156105aa57825163145f178360e31b8152339281019283526020830191909152928491849190829084908290604001610563565b61233e915060803d608011610d4757610d3981836126e3565b386122e3565b81516305fabb6160e41b81528590fd5b5060055483116122ac565b503461032c578060031936011261032c5761237861261c565b9060243593612385612975565b670de0b6b3a7640000851015611a795781516316d0402960e11b81526001600160a01b03848116969160208185818b5afa908115610655578791612461575b50169583519063baa29ceb60e01b8252838201526060816024818a5afa80156105fd578690612426575b6020915001518114611a10578585963b15610c5857610563948680948651978895869485936311db933960e11b8552339085016127da565b5060603d60601161245a575b61243c81836126e3565b810190606081830312610e4857602091612455916127a8565b6123ee565b503d612432565b61247a915060203d602011610f6f57610f6181836126e3565b386123c4565b5082903461046c57606036600319011261046c578261249d61261c565b6024356001600160401b03811161046c576124bb9036908601612648565b6124c6929192612675565b916124cf612975565b6001600160a01b031691823b156105aa5761250f96859187519889968795869463694f0aad60e11b86523390860152606060248601526064850191612768565b901515604483015203925af19081156105a1575061253d57506001600080516020612ac38339815191525580f35b61254690612684565b81610574565b503461032c578160031936011261032c576020906001549051908152f35b503461032c57602036600319011261032c578235612586612975565b61258e6129a5565b8354811080156125f0575b61224257600554908181146102f6577fbaeeac8f8a689e49b9757e4fe1ca7f9ad3d59c82438cc1133c96a7bed80223119394508060055582519182526020820152a16001600080516020612ac38339815191525580f35b506305265c008111612599565b83903461032c578160031936011261032c5760ff602092541615158152f35b600435906001600160a01b038216820361076057565b602435906001600160a01b038216820361076057565b9181601f84011215610760578235916001600160401b038311610760576020838186019501011161076057565b60443590811515820361076057565b6001600160401b03811161269757604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761269757604052565b604081019081106001600160401b0382111761269757604052565b90601f801991011681019081106001600160401b0382111761269757604052565b6001600160401b03811161269757601f01601f191660200190565b6020808252825181830181905290939260005b82811061275457505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501612732565b908060209392818452848401376000828201840152601f01601f1916010190565b9081602091031261076057516001600160a01b03811681036107605790565b9190826060910312610760576040516127c0816126ad565b604080829480518452602081015160208501520151910152565b6001600160a01b03918216815291166020820152604081019190915260600190565b90816080910312610760576040519060808201908282106001600160401b03831117612697576060916040528051835260208101516020840152604081015160408401520151606082015290565b90816020910312610760575180151581036107605790565b6001600160a01b0391821681529116602082015260400190565b51906001600160a01b038216820361076057565b90816060910312610760576128ce60408051926128ac846126ad565b6128b58161287c565b84526128c36020820161287c565b60208501520161287c565b604082015290565b6001600160a01b03918216815291811660208301529091166040820152901515606082015260800190565b6001600160a01b0390811690811561295c57600080516020612a8383398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b600080516020612ac383398151915260028154146129935760029055565b604051633ee5aeb560e01b8152600490fd5b600080516020612a83833981519152546001600160a01b031633036129c657565b60405163118cdaa760e01b8152336004820152602490fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615612a0d57565b604051631afcd79f60e31b8152600490fd5b90612a465750805115612a3457602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580612a79575b612a57575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15612a4f56fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220e92868c22ac6ea96e2d85898b6afc8a046529d8f177a16ed1e10b0c1a62177f264736f6c63430008160033",
1135
1212
  "linkReferences": {},
1136
1213
  "deployedLinkReferences": {}
1137
1214
  }
@@ -1,5 +1,6 @@
1
1
  export * from "./interfaces/index.js";
2
2
  export * from "./on-chain-calls/index.js";
3
+ export * from "./signers/index.js";
3
4
  export * from "./utils/index.js";
4
5
  /**
5
6
  * Converts an EVM address to bytes32 format
@@ -1,5 +1,6 @@
1
1
  export * from "./interfaces/index.js";
2
2
  export * from "./on-chain-calls/index.js";
3
+ export * from "./signers/index.js";
3
4
  export * from "./utils/index.js";
4
5
  /**
5
6
  * Converts an EVM address to bytes32 format
@@ -69,4 +69,13 @@ export declare class EVMOperatorCalls extends EVMOnChainCalls {
69
69
  * @returns EvmOnChainCallResponse
70
70
  */
71
71
  withdrawFromVaultWithoutRedeemingShares(vaultAddress: string, subAccount: string, amount: NumStr, options?: IEvmCallOptions): Promise<EvmOnChainCallResponse>;
72
+ /**
73
+ * Set/unset a user in the vault deposit allow list
74
+ * @param vaultAddress The address of the vault
75
+ * @param user The user address to set in the list
76
+ * @param status Whether the user should be in the allow list
77
+ * @param options Optional tx execution params
78
+ * @returns EvmOnChainCallResponse
79
+ */
80
+ setDepositAllowList(vaultAddress: string, user: string, status: boolean, options?: IEvmCallOptions): Promise<EvmOnChainCallResponse>;
72
81
  }
@@ -92,4 +92,19 @@ export class EVMOperatorCalls extends EVMOnChainCalls {
92
92
  const txCall = this.txBuilder.withdrawFromVaultWithoutRedeemingShares(vaultAddress, subAccount, amount, options?.isETHVault);
93
93
  return this.execCall(txCall, options);
94
94
  }
95
+ // ============================================
96
+ // Deposit Allow List Management
97
+ // ============================================
98
+ /**
99
+ * Set/unset a user in the vault deposit allow list
100
+ * @param vaultAddress The address of the vault
101
+ * @param user The user address to set in the list
102
+ * @param status Whether the user should be in the allow list
103
+ * @param options Optional tx execution params
104
+ * @returns EvmOnChainCallResponse
105
+ */
106
+ async setDepositAllowList(vaultAddress, user, status, options) {
107
+ const txCall = this.txBuilder.setVaultDepositAllowList(vaultAddress, user, status);
108
+ return this.execCall(txCall, options);
109
+ }
95
110
  }
@@ -153,6 +153,14 @@ export declare class EVMTxBuilder {
153
153
  * @returns Transaction call object
154
154
  */
155
155
  setVaultSubAccount(vaultAddress: string, account: string, isSubAccount: boolean): ITransactionCall;
156
+ /**
157
+ * Sets deposit allow list status for a user on a vault (called via ProtocolConfig)
158
+ * @param vaultAddress Address of the vault
159
+ * @param user User address to update
160
+ * @param status Whether the user should be in the allow list
161
+ * @returns Transaction call object
162
+ */
163
+ setVaultDepositAllowList(vaultAddress: string, user: string, status: boolean): ITransactionCall;
156
164
  /**
157
165
  * Updates the maximum TVL of a vault (called via ProtocolConfig)
158
166
  * @param vaultAddress Address of the vault
@@ -306,6 +306,23 @@ export class EVMTxBuilder {
306
306
  chainId: this.getChainId()
307
307
  };
308
308
  }
309
+ /**
310
+ * Sets deposit allow list status for a user on a vault (called via ProtocolConfig)
311
+ * @param vaultAddress Address of the vault
312
+ * @param user User address to update
313
+ * @param status Whether the user should be in the allow list
314
+ * @returns Transaction call object
315
+ */
316
+ setVaultDepositAllowList(vaultAddress, user, status) {
317
+ return {
318
+ to: this.parser.getProtocolConfigAddress(),
319
+ functionName: "setVaultDepositAllowList",
320
+ args: [vaultAddress, user, status],
321
+ abi: EmberProtocolConfigABI.abi,
322
+ value: 0n,
323
+ chainId: this.getChainId()
324
+ };
325
+ }
309
326
  /**
310
327
  * Updates the maximum TVL of a vault (called via ProtocolConfig)
311
328
  * @param vaultAddress Address of the vault
@@ -0,0 +1,42 @@
1
+ import { KMSClient } from "@aws-sdk/client-kms";
2
+ import { AbstractSigner, Provider, TransactionRequest, TypedDataDomain, TypedDataField } from "ethers";
3
+ export interface EvmKmsSignerOptions {
4
+ /** KMS key ID, ARN, or alias (e.g. "alias/ember-vaults-ops-evm-manager-wallet"). */
5
+ keyId: string;
6
+ /** AWS region. Defaults to AWS_REGION env or the SDK default. */
7
+ region?: string;
8
+ /** Pre-built KMSClient. If supplied, `region` is ignored. */
9
+ kmsClient?: KMSClient;
10
+ }
11
+ /**
12
+ * EvmKmsSigner is an ethers v6 Signer backed by an AWS KMS asymmetric key
13
+ * with usage `SIGN_VERIFY` and key spec `ECC_SECG_P256K1` (secp256k1). The
14
+ * private material never leaves KMS; every signing operation is one
15
+ * `kms:Sign` call.
16
+ *
17
+ * Caches the public key after first use so subsequent signs do not re-hit
18
+ * KMS for the address.
19
+ *
20
+ * Compatible with ethers v6. Pair with a Provider via `connect(provider)`
21
+ * before submitting transactions.
22
+ */
23
+ export declare class EvmKmsSigner extends AbstractSigner {
24
+ private readonly kms;
25
+ private readonly keyId;
26
+ private addressCache;
27
+ private uncompressedPubKeyCache;
28
+ constructor(opts: EvmKmsSignerOptions, provider?: Provider | null);
29
+ connect(provider: Provider | null): EvmKmsSigner;
30
+ getAddress(): Promise<string>;
31
+ signMessage(message: string | Uint8Array): Promise<string>;
32
+ signTypedData(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, unknown>): Promise<string>;
33
+ signTransaction(tx: TransactionRequest): Promise<string>;
34
+ /** Returns a 65-byte compact signature as a 0x-prefixed hex string. */
35
+ private signDigest;
36
+ /**
37
+ * Sends the digest to KMS, decodes the DER signature, normalises s,
38
+ * and recovers the y-parity by matching against our address.
39
+ */
40
+ private signDigestRaw;
41
+ private getUncompressedPublicKey;
42
+ }
@@ -0,0 +1,143 @@
1
+ import { GetPublicKeyCommand, KMSClient, MessageType, SignCommand, SigningAlgorithmSpec } from "@aws-sdk/client-kms";
2
+ import { secp256k1 } from "@noble/curves/secp256k1.js";
3
+ import asn1 from "asn1.js";
4
+ import { AbstractSigner, computeAddress, getBytes, hashMessage, resolveAddress, Signature, SigningKey, Transaction, TypedDataEncoder } from "ethers";
5
+ // ASN.1 schemas for the DER blobs AWS KMS returns.
6
+ //
7
+ // GetPublicKey returns SubjectPublicKeyInfo (RFC 5480 §2):
8
+ // SEQUENCE { algo: AlgorithmIdentifier, pubKey: BIT STRING }
9
+ // The bit string contains the SEC1 uncompressed point (0x04 || X || Y).
10
+ //
11
+ // Sign returns DER ECDSA signature (RFC 3279 §2.2.3):
12
+ // SEQUENCE { r: INTEGER, s: INTEGER }
13
+ const EcdsaPubKeyAsn = asn1.define("EcdsaPubKey", function () {
14
+ this.seq().obj(this.key("algo")
15
+ .seq()
16
+ .obj(this.key("algorithm").objid(), this.key("parameters").objid()), this.key("pubKey").bitstr());
17
+ });
18
+ const EcdsaSigAsn = asn1.define("EcdsaSig", function () {
19
+ this.seq().obj(this.key("r").int(), this.key("s").int());
20
+ });
21
+ /**
22
+ * EvmKmsSigner is an ethers v6 Signer backed by an AWS KMS asymmetric key
23
+ * with usage `SIGN_VERIFY` and key spec `ECC_SECG_P256K1` (secp256k1). The
24
+ * private material never leaves KMS; every signing operation is one
25
+ * `kms:Sign` call.
26
+ *
27
+ * Caches the public key after first use so subsequent signs do not re-hit
28
+ * KMS for the address.
29
+ *
30
+ * Compatible with ethers v6. Pair with a Provider via `connect(provider)`
31
+ * before submitting transactions.
32
+ */
33
+ export class EvmKmsSigner extends AbstractSigner {
34
+ constructor(opts, provider = null) {
35
+ super(provider);
36
+ this.keyId = opts.keyId;
37
+ this.kms = opts.kmsClient ?? new KMSClient({ region: opts.region });
38
+ }
39
+ connect(provider) {
40
+ const next = new EvmKmsSigner({ keyId: this.keyId, kmsClient: this.kms }, provider);
41
+ // Carry caches over so reconnecting doesn't force a re-fetch.
42
+ next.uncompressedPubKeyCache = this.uncompressedPubKeyCache;
43
+ next.addressCache = this.addressCache;
44
+ return next;
45
+ }
46
+ async getAddress() {
47
+ if (this.addressCache)
48
+ return this.addressCache;
49
+ const pub = await this.getUncompressedPublicKey();
50
+ // ethers' computeAddress accepts a 0x04-prefixed uncompressed key
51
+ // and returns a checksummed address.
52
+ this.addressCache = computeAddress("0x" + Buffer.from(pub).toString("hex"));
53
+ return this.addressCache;
54
+ }
55
+ async signMessage(message) {
56
+ return this.signDigest(hashMessage(message));
57
+ }
58
+ async signTypedData(domain, types, value) {
59
+ // Resolve any ENS-style names that EIP-712 allows in the domain/types.
60
+ const populated = await TypedDataEncoder.resolveNames(domain, types, value, async (name) => {
61
+ if (!this.provider) {
62
+ throw new Error("EvmKmsSigner.signTypedData: name resolution requires a provider");
63
+ }
64
+ const addr = await this.provider.resolveName(name);
65
+ if (!addr)
66
+ throw new Error(`unable to resolve name: ${name}`);
67
+ return addr;
68
+ });
69
+ return this.signDigest(TypedDataEncoder.hash(populated.domain, types, populated.value));
70
+ }
71
+ async signTransaction(tx) {
72
+ // ethers requires `from` to be absent on a serialized signed tx —
73
+ // it gets recovered from the signature. Validate it matches us.
74
+ if (tx.from != null) {
75
+ const expected = await this.getAddress();
76
+ const from = await resolveAddress(tx.from, this.provider);
77
+ if (from.toLowerCase() !== expected.toLowerCase()) {
78
+ throw new Error(`EvmKmsSigner.signTransaction: from=${from} does not match signer=${expected}`);
79
+ }
80
+ tx = { ...tx, from: undefined };
81
+ }
82
+ // ethers' TransactionRequest and TransactionLike overlap structurally
83
+ // but aren't unifiable in the type system; Transaction.from accepts
84
+ // the looser shape at runtime.
85
+ const txObj = Transaction.from(tx);
86
+ const sig = await this.signDigestRaw(txObj.unsignedHash);
87
+ txObj.signature = sig;
88
+ return txObj.serialized;
89
+ }
90
+ /** Returns a 65-byte compact signature as a 0x-prefixed hex string. */
91
+ async signDigest(digest) {
92
+ const sig = await this.signDigestRaw(digest);
93
+ return sig.serialized;
94
+ }
95
+ /**
96
+ * Sends the digest to KMS, decodes the DER signature, normalises s,
97
+ * and recovers the y-parity by matching against our address.
98
+ */
99
+ async signDigestRaw(digest) {
100
+ const digestBytes = getBytes(digest);
101
+ const res = await this.kms.send(new SignCommand({
102
+ KeyId: this.keyId,
103
+ Message: digestBytes,
104
+ MessageType: MessageType.DIGEST,
105
+ SigningAlgorithm: SigningAlgorithmSpec.ECDSA_SHA_256
106
+ }));
107
+ if (!res.Signature) {
108
+ throw new Error("EvmKmsSigner: KMS Sign returned no Signature");
109
+ }
110
+ const decoded = EcdsaSigAsn.decode(Buffer.from(res.Signature), "der");
111
+ const r = BigInt("0x" + decoded.r.toString(16).padStart(64, "0"));
112
+ let s = BigInt("0x" + decoded.s.toString(16).padStart(64, "0"));
113
+ // EIP-2: only accept low-s signatures. KMS happily returns either side.
114
+ const N = secp256k1.Point.Fn.ORDER;
115
+ if (s > N / 2n)
116
+ s = N - s;
117
+ const rHex = "0x" + r.toString(16).padStart(64, "0");
118
+ const sHex = "0x" + s.toString(16).padStart(64, "0");
119
+ // Recover the right y-parity by trying both candidates and matching
120
+ // against the address we know belongs to this KMS key.
121
+ const expectedAddr = (await this.getAddress()).toLowerCase();
122
+ for (const yParity of [0, 1]) {
123
+ const candidate = Signature.from({ r: rHex, s: sHex, yParity });
124
+ const recoveredPubKey = SigningKey.recoverPublicKey(digestBytes, candidate);
125
+ if (computeAddress(recoveredPubKey).toLowerCase() === expectedAddr) {
126
+ return candidate;
127
+ }
128
+ }
129
+ throw new Error("EvmKmsSigner: recovered address does not match KMS key — signature integrity failure");
130
+ }
131
+ async getUncompressedPublicKey() {
132
+ if (this.uncompressedPubKeyCache)
133
+ return this.uncompressedPubKeyCache;
134
+ const res = await this.kms.send(new GetPublicKeyCommand({ KeyId: this.keyId }));
135
+ if (!res.PublicKey) {
136
+ throw new Error("EvmKmsSigner: KMS GetPublicKey returned no PublicKey");
137
+ }
138
+ const decoded = EcdsaPubKeyAsn.decode(Buffer.from(res.PublicKey), "der");
139
+ // pubKey.data is the SEC1 uncompressed point (0x04 || X || Y), 65 bytes.
140
+ this.uncompressedPubKeyCache = new Uint8Array(decoded.pubKey.data);
141
+ return this.uncompressedPubKeyCache;
142
+ }
143
+ }
@@ -0,0 +1 @@
1
+ export * from "./evm-kms-signer.js";
@@ -0,0 +1 @@
1
+ export * from "./evm-kms-signer.js";
@@ -1,3 +1,4 @@
1
1
  export * from "./api/index.js";
2
2
  export * from "./sui-vaults/index.js";
3
3
  export * from "./ember-vaults.js";
4
+ export type { PlatformEnv } from "./common/constants.js";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ember-finance/sdk",
3
3
  "description": "Ember Protocol SDK",
4
- "version": "2.0.5",
4
+ "version": "2.0.7",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
7
7
  "main": "./dist/index.js",
@@ -79,9 +79,11 @@
79
79
  "test": "tests"
80
80
  },
81
81
  "dependencies": {
82
+ "@aws-sdk/client-kms": "^3.1044.0",
82
83
  "@firefly-exchange/library-sui": "^3.0.0",
84
+ "@noble/curves": "^2.2.0",
85
+ "asn1.js": "^5.4.1",
83
86
  "axios": "1.13.6",
84
- "ethers": "^6.13.4",
85
87
  "yarn": "^1.22.19"
86
88
  },
87
89
  "devDependencies": {
@@ -101,6 +103,7 @@
101
103
  "eslint-plugin-import": "^2.25.2",
102
104
  "eslint-plugin-n": "^15.0.0",
103
105
  "eslint-plugin-promise": "^6.0.0",
106
+ "ethers": "6.13.4",
104
107
  "git-format-staged": "^3.0.0",
105
108
  "husky": "^8.0.0",
106
109
  "mocha": "^10.1.0",
@@ -113,7 +116,8 @@
113
116
  },
114
117
  "peerDependencies": {
115
118
  "@mysten/bcs": "^2.0.3",
116
- "@mysten/sui": "^2.0.0"
119
+ "@mysten/sui": "^2.0.0",
120
+ "ethers": "^6.13.4"
117
121
  },
118
122
  "repository": {
119
123
  "type": "git",