@ember-finance/sdk 2.3.0-rc.0 → 2.3.0

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.
@@ -890,6 +890,55 @@
890
890
  ],
891
891
  "stateMutability": "view",
892
892
  "type": "function"
893
+ },
894
+ {
895
+ "inputs": [
896
+ {
897
+ "internalType": "address",
898
+ "name": "account",
899
+ "type": "address"
900
+ },
901
+ {
902
+ "internalType": "bool",
903
+ "name": "status",
904
+ "type": "bool"
905
+ }
906
+ ],
907
+ "name": "setDepositAllowListStatus",
908
+ "outputs": [],
909
+ "stateMutability": "nonpayable",
910
+ "type": "function"
911
+ },
912
+ {
913
+ "anonymous": false,
914
+ "inputs": [
915
+ {
916
+ "indexed": true,
917
+ "internalType": "address",
918
+ "name": "vault",
919
+ "type": "address"
920
+ },
921
+ {
922
+ "indexed": true,
923
+ "internalType": "address",
924
+ "name": "account",
925
+ "type": "address"
926
+ },
927
+ {
928
+ "indexed": false,
929
+ "internalType": "bool",
930
+ "name": "status",
931
+ "type": "bool"
932
+ },
933
+ {
934
+ "indexed": false,
935
+ "internalType": "uint256",
936
+ "name": "count",
937
+ "type": "uint256"
938
+ }
939
+ ],
940
+ "name": "DepositAllowListUpdated",
941
+ "type": "event"
893
942
  }
894
943
  ],
895
944
  "bytecode": "0x60a080604052346100cc57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c166100bd57506001600160401b036002600160401b031982821601610078575b604051611eab90816100d2823960805181818161144301526115160152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1388080610059565b63f92ee8a960e01b8152600490fd5b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081631c481e2d1461189957508063402914f51461185f578063482c9e21146118415780634cde335c1461176e5780634e71d92d146116a15780634f1ef2861461149b57806352d1902d14611430578063570ca7351461140757806360da3e83146113e157806364ca23ef146113c35780636e553f6514610e94578063715018a614610e2a57806372fada5c14610ca15780638da5cb5b14610c6b578063ab4f0f0114610c4d578063ad3cb1cc14610ba3578063b0b1f9e91461071e578063b2016bd4146106f5578063b3ab15fb1461057c578063b54e0f69146104fd578063d1378a0d146104d3578063f2fde38b146104ad578063f5efbb4f14610484578063f8c8765e146101c4578063fabd03411461016b5763fbfa77cf1461013d57600080fd5b34610166576000366003190112610166576001546040516001600160a01b039091168152602090f35b600080fd5b346101665760203660031901126101665760043560005260066020526080604060002060018060a01b03908181541691600182015416906003600282015491015491604051938452602084015260408301526060820152f35b34610166576080366003190112610166576101dd6119de565b6101e56119f4565b6001600160a01b03916044358381169290839003610166576064359380851690818603610166577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009586549360ff8560401c1615946001600160401b0381169687158061047d575b60018099149081610473575b15908161046a575b506104585767ffffffffffffffff19821688178a55849187610439575b501693841590811561042e575b8115610425575b811561041c575b5061040a576102b883926102ab611d71565b6102b3611d71565b611ae7565b6102c0611d71565b6102c8611d71565b6102d0611d71565b85600080516020611e568339815191525560018060a01b031993846000541617600055169081838654161785556040516338d52e0f60e01b81526020968782600481875afa80156103fe5788926000916103a2575b507f5164fbb07e919fc22c6fcdb6ca7140848539c83b823fe61799f77506db05ba199382911695868160025416176002556003541617600355604051908152a361036b57005b825460ff60401b19169092556040519182527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291a1005b8381959492503d83116103f7575b6103ba8183611a25565b81010312610166578088926103ef7f5164fbb07e919fc22c6fcdb6ca7140848539c83b823fe61799f77506db05ba1995611a61565b915093610325565b503d6103b0565b6040513d6000823e3d90fd5b60405163d92e233d60e01b8152600490fd5b90501589610299565b88159150610292565b82851615915061028b565b68ffffffffffffffffff191668010000000000000001178a558a61027e565b60405163f92ee8a960e01b8152600490fd5b9050158b610261565b303b159150610259565b508661024d565b34610166576000366003190112610166576000546040516001600160a01b039091168152602090f35b34610166576020366003190112610166576104d16104c96119de565b6102b3611ba1565b005b346101665760003660031901126101665760206104f560045460055490611ada565b604051908152f35b346101665760003660031901126101665760006004546005549060019160018101809111610566575b8181111561053957602084604051908152f35b6000818152600660205260409020546001600160a01b031661055d575b8201610526565b92820192610556565b634e487b7160e01b600052601160045260246000fd5b34610166576020366003190112610166576105956119de565b600154604051630e4bd7d960e21b81526001600160a01b039182169290606081600481875afa80156103fe5783916000916106c6575b50511633036106b557811691821561040a5760246020836000541660405192838092630f1d76c160e01b82528860048301525afa9081156103fe5760009161067b575b50610669576003549182168084146106575783917f758820d0b14a01c1fa60b8d2bbef25ed1b6a5af4802e5dec3f08679255ba8bf3600080a46001600160a01b03191617600355005b60405163c23f6ccb60e01b8152600490fd5b6040516309550c7760e01b8152600490fd5b90506020813d6020116106ad575b8161069660209383611a25565b81010312610166576106a790611acd565b8461060e565b3d9150610689565b6040516282b42960e81b8152600490fd5b6106e8915060603d6060116106ee575b6106e08183611a25565b810190611a75565b856105cb565b503d6106d6565b34610166576000366003190112610166576002546040516001600160a01b039091168152602090f35b346101665760203660031901126101665760043561073a611b5b565b6003546001600160a01b031633036106b55760005460405163019db35d60e11b81528291602090829060049082906001600160a01b03165afa9081156103fe57600091610b69575b50610b58578115610b46576005549161079d83600454611ada565b809111610b3e575b506000905b8082106107ca5760058390556001600080516020611e5683398151915255005b9091600180910192019082600052600680602052604060002090604051916107f183611a0a565b80546001600160a01b039081168085526001830154909116602085015260028201546040850152600390910154606084015215610b37578460005260205261084f604060002060036000918281558260018201558260028201550155565b604081810151600780548290039055600254600154925163095ea7b360e01b60208201526001600160a01b039384166024820181905260448201939093529192166108a782606481015b03601f198101845283611a25565b60206000835182850182855af16000513d82610b1b575b505015610ae3575b50506001546040838101516020858101519251636e553f6560e01b815260048101929092526001600160a01b0392831660248301529093509183916044918391600091165af160009181610aaf575b50610a4c575060018060a01b036002541660018060a01b036001541690604051906020600081840163095ea7b360e01b81528560248601528160448601526044855261096085611a0a565b84519082855af16000513d82610a30575b5050156109ec575b5050815160408301516109969250906001600160a01b0316611c0a565b600154815160208084015160409485015185519081529182018890526001600160a01b03908116949281169316917f676a69c1213f814ebbd99afbd321247de207b8228518bb9af26a519a6db915ef91a46107aa565b610a23610a28936040519063095ea7b360e01b602083015260248201526000604482015260448152610a1d81611a0a565b82611d15565b611d15565b848080610979565b909150610a445750803b15155b8880610971565b600114610a3d565b60018060a01b03600154167f1296cfaf1497e6e2e05eae3b8ed088781c70a7f202609c61014952b5b38a53f1606060018060a01b0385511693604060018060a01b03602088015116960151906040519182526020820152886040820152a46107aa565b9091506020813d602011610adb575b81610acb60209383611a25565b8101031261016657519086610915565b3d9150610abe565b610a23610b13936040519063095ea7b360e01b6020830152602482015260446000818301528152610a1d81611a0a565b8480806108c6565b909150610b2f5750803b15155b88806108be565b600114610b28565b50506107aa565b9050826107a5565b604051631f2a200560e01b8152600490fd5b60405162332c3760e81b8152600490fd5b90506020813d602011610b9b575b81610b8460209383611a25565b8101031261016657610b9590611acd565b83610782565b3d9150610b77565b3461016657600036600319011261016657604051604081018181106001600160401b03821117610c375760405260058152602090640352e302e360dc1b60208201526040518092602082528251908160208401526000935b828510610c1e575050604092506000838284010152601f80199101168101030190f35b8481018201518686016040015293810193859350610bfb565b634e487b7160e01b600052604160045260246000fd5b34610166576000366003190112610166576020600754604051908152f35b3461016657600036600319011261016657600080516020611e16833981519152546040516001600160a01b039091168152602090f35b34610166576020806003193601126101665760043590610cbf611b5b565b816000526006906006815260406000209260405193610cdd85611a0a565b60018060a01b03908181541680875260019683888401541686820152606060036002850154946040840195865201549101523303610e185751938260005260068452610d3f604060002060036000918281558260018201558260028201550155565b8460075403600755600554868101809111610566578314610dab575b50610d668433611c0a565b845416916040519384528301527f627946b6a26beee83b76408c8e5af8b2ebb67bc0b7566767d80153797b98fd7960403393a3600080516020611e5683398151915255005b85839181600454905b610dc5575b50505060055585610d5b565b9091969594939281811080610df6575b15610deb57870196919082979394959697610db4565b929394959691610db9565b5096870196878111610566578897600052828652836040600020541615610dd5565b6040516341abc80160e01b8152600490fd5b3461016657600036600319011261016657610e43611ba1565b600080516020611e1683398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461016657604036600319011261016657600435610eb06119f4565b90610eb9611b5b565b60005460405163019db35d60e11b81526020936001600160a01b0393929091908416908581600481855afa9081156103fe5760009161138e575b50610b585760ff60035460a01c16610b5857836001541692604051926323348b6560e11b84526060938481600481895afa9081156103fe57600091611340575b50610b58578115610b4657851693841561040a573085148015611337575b801561132a575b61127157604051630e4bd7d960e21b81528481600481855afa9182156103fe57889160009361130b575b50878084511688149384156112fc575b84156112ec575b50508215611283575b505061127157604051630f1d76c160e01b8082523360048301526024939188818681865afa9081156103fe5760009161123c575b50610669578790846040518094819382528960048301525afa9081156103fe57600091611207575b50610669578460025416604051916370a0823160e01b9182845230600485015288848681845afa9384156103fe576000946111d8575b50604051916323b872dd60e01b8a840152338684015230604484015260648301526064825260a082018281106001600160401b038211176111c35760405288929161107e91611d15565b8660025416936040518095819382523060048301525afa80156103fe57600090611194575b6110ad9250611ada565b908115610b4657600160045401938460045582600754016007556110cf611b8b565b6003604051916110de83611a0a565b33835288830187815260408401908782528685019283528960005260068b5285604060002095511660018060a01b0319908187541617865586600187019251169082541617905551600284015551910155600154169060075490611140611b8b565b91604051948552878501528560408501528301527f9cc70bb6a09a5acbc601adcc20be0a54c387cf46be845b91914bafb7ac93335e60803393a46001600080516020611e5683398151915255604051908152f35b508582813d83116111bc575b6111aa8183611a25565b81010312610166576110ad91516110a3565b503d6111a0565b85634e487b7160e01b60005260416004526000fd5b9093508881813d8311611200575b6111f08183611a25565b8101031261016657519289611034565b503d6111e6565b90508681813d8311611235575b61121e8183611a25565b810103126101665761122f90611acd565b87610ffe565b503d611214565b90508881813d831161126a575b6112538183611a25565b810103126101665761126490611acd565b89610fd6565b503d611249565b604051631e4ec46b60e01b8152600490fd5b602492506040519283809263368d094360e21b82528960048301525afa9081156103fe576000916112b7575b508688610fa2565b90508681813d83116112e5575b6112ce8183611a25565b81010312610166576112df90611acd565b876112af565b503d6112c4565b604001511687149250878a610f99565b83810151821689149450610f92565b611323919350863d88116106ee576106e08183611a25565b9189610f82565b5085600254168514610f58565b50808514610f51565b90508481813d8311611387575b6113578183611a25565b8101031261016657611380604061136d83611acd565b926113798b8201611acd565b5001611acd565b5088610f33565b503d61134d565b90508581813d83116113bc575b6113a58183611a25565b81010312610166576113b690611acd565b86610ef3565b503d61139b565b34610166576000366003190112610166576020600454604051908152f35b3461016657600036600319011261016657602060ff60035460a01c166040519015158152f35b34610166576000366003190112610166576003546040516001600160a01b039091168152602090f35b34610166576000366003190112610166577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611489576020604051600080516020611e368339815191528152f35b60405163703e46dd60e11b8152600490fd5b6040366003190112610166576114af6119de565b60249081356001600160401b0381116101665736602382011215610166578060040135916114dc83611a46565b6114e96040519182611a25565b83815260209384820193368783830101116101665781600092888893018737830101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115611685575b506114895761154f611ba1565b6040516352d1902d60e01b8152908316948082600481895afa918291600093611655575b505061159157604051634c9c8ce360e01b8152600481018690528690fd5b849086600080516020611e36833981519152918281036116405750843b1561162a575080546001600160a01b03191682179055604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115611610575060006104d19381925190845af461160a611bda565b91611db2565b925050503461161b57005b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101849052fd5b60405190632a87526960e21b82526004820152fd5b9080929350813d831161167e575b61166d8183611a25565b810103126101665751908780611573565b503d611663565b905081600080516020611e368339815191525416141587611542565b34610166576000366003190112610166576116ba611b5b565b3360005260086020526040600020548015610b465733600081815260086020908152604080832092909255600254915163a9059cbb60e01b8183015260248101939093526044830184905292916001600160a01b039161172491908316610a238260648101610899565b60015416604051908282527ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd3992683843393a36001600080516020611e5683398151915255604051908152f35b34610166576020366003190112610166576000606060405161178f81611a0a565b82815282602082015282604082015201526005546004358101809111610566576001810180911161056657600454811161182f576000526006602052608060406000206040516117de81611a0a565b60018060a01b03918281541692838352806001830154166020840190815260606003600285015494604087019586520154940193845260405194855251166020840152516040830152516060820152f35b604051634e23d03560e01b8152600490fd5b34610166576000366003190112610166576020600554604051908152f35b34610166576020366003190112610166576001600160a01b036118806119de565b1660005260086020526020604060002054604051908152f35b3461016657602080600319360112610166576004359081151580920361016657600154630e4bd7d960e21b84526001600160a01b0390811693606081600481885afa80156103fe5782916000916119bf575b5051163314159081611953575b506106b5576003549160ff8360a01c16151581146106575760ff60a01b1990921660a083901b60ff60a01b16176003556040519182527f96702072881dc08bdd4e8a499d291bdcb2b3cd7cdafa21de42b6275c3c29bb8491a2005b9050600482826000541660405192838092630229549960e51b82525afa9081156103fe5760009161198a575b5016331415846118f8565b90508281813d83116119b8575b6119a18183611a25565b81010312610166576119b290611a61565b8561197f565b503d611997565b6119d8915060603d6060116106ee576106e08183611a25565b866118eb565b600435906001600160a01b038216820361016657565b602435906001600160a01b038216820361016657565b608081019081106001600160401b03821117610c3757604052565b90601f801991011681019081106001600160401b03821117610c3757604052565b6001600160401b038111610c3757601f01601f191660200190565b51906001600160a01b038216820361016657565b908160609103126101665760405190606082018281106001600160401b03821117610c3757611ac5916040918252611aac81611a61565b8452611aba60208201611a61565b602085015201611a61565b604082015290565b5190811515820361016657565b9190820391821161056657565b6001600160a01b03908116908115611b4257600080516020611e1683398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b600080516020611e568339815191526002815414611b795760029055565b604051633ee5aeb560e01b8152600490fd5b6103e88042029042820414421517156105665790565b600080516020611e16833981519152546001600160a01b03163303611bc257565b60405163118cdaa760e01b8152336004820152602490fd5b3d15611c05573d90611beb82611a46565b91611bf96040519384611a25565b82523d6000602084013e565b606090565b908015611d115760025460405163a9059cbb60e01b60208083019182526001600160a01b0386811660248501526044808501879052845293841695939092909190611c56606482611a25565b600096879283809351925af1611c6a611bda565b81611cbf575b50611cb8576040817f09217e2b0e70868e1ad68bbeca2d4df1becf381268310884e1a742e674c7a03094169586815260088452208481540190556001541692604051908152a3565b5050505050565b8051801592508215611cd4575b505038611c70565b90915083808210159182611cee575b505090503880611ccc565b8380929350010312611d0d5782611d059101611acd565b808338611ce3565b8580fd5b5050565b906000602091828151910182855af1156103fe576000513d611d6857506001600160a01b0381163b155b611d465750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b60011415611d3f565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611da057565b604051631afcd79f60e31b8152600490fd5b90611dd95750805115611dc757602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580611e0c575b611dea575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15611de256fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220c7525297e2b37a75c54f1eafe8fc4c00d5759ec75e34e6bfa74cf57c93a7872264736f6c63430008160033",
@@ -2,12 +2,10 @@ import EmberVaultABI from "./EmberVault.json";
2
2
  import EmberProtocolConfigABI from "./EmberProtocolConfig.json";
3
3
  import ERC20TokenABI from "./ERC20Token.json";
4
4
  import EmberVaultOFTAdapterABI from "./EmberVaultMintBurnOFTAdapter.json";
5
- import OpenCoverVaultABI from "./OpenCoverVault.json";
6
5
  import { Interface } from "ethers";
7
6
  declare const EmberVault: Interface;
8
7
  declare const EmberProtocolConfig: Interface;
9
8
  declare const ERC20Token: Interface;
10
9
  declare const EmberETHVault: Interface;
11
10
  declare const EmberVaultOFTAdapter: Interface;
12
- declare const OpenCoverVault: Interface;
13
- export { EmberVaultABI, EmberProtocolConfigABI, ERC20TokenABI, EmberVault, EmberProtocolConfig, ERC20Token, EmberETHVault, EmberVaultOFTAdapterABI, EmberVaultOFTAdapter, OpenCoverVaultABI, OpenCoverVault };
11
+ export { EmberVaultABI, EmberProtocolConfigABI, ERC20TokenABI, EmberVault, EmberProtocolConfig, ERC20Token, EmberETHVault, EmberVaultOFTAdapterABI, EmberVaultOFTAdapter };
@@ -3,12 +3,10 @@ import EmberProtocolConfigABI from "./EmberProtocolConfig.json" with { type: "js
3
3
  import ERC20TokenABI from "./ERC20Token.json" with { type: "json" };
4
4
  import EmberETHVaultABI from "./EmberETHVault.json" with { type: "json" };
5
5
  import EmberVaultOFTAdapterABI from "./EmberVaultMintBurnOFTAdapter.json" with { type: "json" };
6
- import OpenCoverVaultABI from "./OpenCoverVault.json" with { type: "json" };
7
6
  import { Interface } from "ethers";
8
7
  const EmberVault = new Interface(EmberVaultABI.abi);
9
8
  const EmberProtocolConfig = new Interface(EmberProtocolConfigABI.abi);
10
9
  const ERC20Token = new Interface(ERC20TokenABI.abi);
11
10
  const EmberETHVault = new Interface(EmberETHVaultABI.abi);
12
11
  const EmberVaultOFTAdapter = new Interface(EmberVaultOFTAdapterABI.abi);
13
- const OpenCoverVault = new Interface(OpenCoverVaultABI.abi);
14
- export { EmberVaultABI, EmberProtocolConfigABI, ERC20TokenABI, EmberVault, EmberProtocolConfig, ERC20Token, EmberETHVault, EmberVaultOFTAdapterABI, EmberVaultOFTAdapter, OpenCoverVaultABI, OpenCoverVault };
12
+ export { EmberVaultABI, EmberProtocolConfigABI, ERC20TokenABI, EmberVault, EmberProtocolConfig, ERC20Token, EmberETHVault, EmberVaultOFTAdapterABI, EmberVaultOFTAdapter };
@@ -90,12 +90,6 @@ export interface ChainVaultDetails {
90
90
  * @memberof ChainVaultDetails
91
91
  */
92
92
  maxDepositsAllowed: string;
93
- /**
94
- * True if this on-chain vault is insured via OpenCover (cover vault shares) — i.e. its yield-bearing shares can be wrapped into an OpenCover insured metavault to activate coverage. Currently only true for EVM vaults; false for Sui and for uninsured vaults.
95
- * @type {boolean}
96
- * @memberof ChainVaultDetails
97
- */
98
- covered: boolean;
99
93
  /**
100
94
  * True if this on-chain vault gates deposits through a parking lot (async deposits) — i.e. it has an active deposit parking lot. Only set for EVM vaults; always false/absent for Sui. Convenience flag equivalent to `parkingLot != null`.
101
95
  * @type {boolean}
@@ -1,7 +1,6 @@
1
1
  import { Signer, Provider, TransactionResponse, TransactionReceipt, Log, LogDescription } from "ethers";
2
2
  import type { EvmProtocolInfo as ApiEvmProtocolInfo } from "../../api/v2/models/evm-protocol-info.js";
3
3
  import { Chain } from "../../api/v2/index.js";
4
- import { NumStr } from "../../common/types.js";
5
4
  /**
6
5
  * Minimal chain metadata used to map LayerZero chain IDs to Ember chain identifiers.
7
6
  */
@@ -199,33 +198,6 @@ export interface IUserCallOptions extends IEvmCallOptions {
199
198
  */
200
199
  depositToParkingLot?: boolean;
201
200
  }
202
- /**
203
- * Optional parameters for OpenCover cover-vault (insured vault / cover vault
204
- * shares) calls. Cover vaults follow the ERC-7540 async lifecycle: a deposit or
205
- * redemption is first *requested*, settles after a short delay, then *claimed*.
206
- *
207
- * `controller` and `owner` default to the caller's wallet address, matching the
208
- * common self-service flow. `receiver` (from IUserCallOptions) is who ultimately
209
- * receives the cover shares (on deposit claim) or the underlying yield-vault
210
- * shares (on redeem claim); it also defaults to the caller.
211
- */
212
- export interface ICoverVaultCallOptions extends IUserCallOptions {
213
- /**
214
- * The controller that owns and aggregates the async request in the cover
215
- * vault. Defaults to the caller's wallet address.
216
- */
217
- controller?: string;
218
- /**
219
- * The owner supplying the assets (yield-vault shares) on deposit, or the
220
- * cover shares on redeem. Defaults to the caller's wallet address.
221
- */
222
- owner?: string;
223
- /**
224
- * Request id for claim/settle actions. OpenCover aggregates by controller so
225
- * this is 0 in the common case; defaults to 0 when omitted.
226
- */
227
- requestId?: NumStr;
228
- }
229
201
  /**
230
202
  * Optional parameters for high-level OFT bridge send calls.
231
203
  */
@@ -61,6 +61,18 @@ export declare class EVMOperatorCalls extends EVMOnChainCalls {
61
61
  * @returns EvmOnChainCallResponse
62
62
  */
63
63
  processParkingLotDeposits(vaultAddress: string, numRequests: NumStr, options?: IEvmCallOptions): Promise<EvmOnChainCallResponse>;
64
+ /**
65
+ * Set an account's status on a vault's parking-lot deposit allow-list.
66
+ * Operator-gated (EmberDepositParkingLot.setDepositAllowListStatus); emits
67
+ * DepositAllowListUpdated. While the lot's allow-list is non-empty only
68
+ * listed accounts may deposit — adding the first gates a previously-open lot.
69
+ * @param vaultAddress The address of the vault
70
+ * @param account The account to add to / remove from the allow-list
71
+ * @param status True to allow-list, false to remove
72
+ * @param options Optional tx execution params (incl. optional parkingLotAddress override)
73
+ * @returns EvmOnChainCallResponse
74
+ */
75
+ setParkingLotDepositAllowList(vaultAddress: string, account: string, status: boolean, options?: IEvmCallOptions): Promise<EvmOnChainCallResponse>;
64
76
  /**
65
77
  * Collect accrued platform fees from a vault
66
78
  * @param vaultAddress The address of the vault
@@ -76,6 +76,22 @@ export class EVMOperatorCalls extends EVMOnChainCalls {
76
76
  const txCall = this.txBuilder.processParkingLotDeposits(parkingLotAddress, numRequests);
77
77
  return this.execCall(txCall, options);
78
78
  }
79
+ /**
80
+ * Set an account's status on a vault's parking-lot deposit allow-list.
81
+ * Operator-gated (EmberDepositParkingLot.setDepositAllowListStatus); emits
82
+ * DepositAllowListUpdated. While the lot's allow-list is non-empty only
83
+ * listed accounts may deposit — adding the first gates a previously-open lot.
84
+ * @param vaultAddress The address of the vault
85
+ * @param account The account to add to / remove from the allow-list
86
+ * @param status True to allow-list, false to remove
87
+ * @param options Optional tx execution params (incl. optional parkingLotAddress override)
88
+ * @returns EvmOnChainCallResponse
89
+ */
90
+ async setParkingLotDepositAllowList(vaultAddress, account, status, options) {
91
+ const parkingLotAddress = this.parser.resolveParkingLotAddress(vaultAddress, options?.parkingLotAddress);
92
+ const txCall = this.txBuilder.setParkingLotDepositAllowList(parkingLotAddress, account, status);
93
+ return this.execCall(txCall, options);
94
+ }
79
95
  // ============================================
80
96
  // Fee Collection
81
97
  // ============================================
@@ -183,6 +183,7 @@ export declare class EVMTxBuilder {
183
183
  * @returns Transaction call object
184
184
  */
185
185
  setParkingLotDepositsPaused(parkingLotAddress: string, paused: boolean): ITransactionCall;
186
+ setParkingLotDepositAllowList(parkingLotAddress: string, account: string, status: boolean): ITransactionCall;
186
187
  /**
187
188
  * Updates the paused status of a vault operation (called via ProtocolConfig)
188
189
  * @param vaultAddress Address of the vault
@@ -386,77 +387,6 @@ export declare class EVMTxBuilder {
386
387
  * @returns Transaction call object
387
388
  */
388
389
  cancelPendingWithdrawalRequest(vaultAddress: string, requestSequenceNumber: NumStr, isETHVault?: boolean): ITransactionCall;
389
- /**
390
- * Requests an async deposit into an OpenCover cover vault: escrows `assets`
391
- * (yield-vault shares) and queues them for settlement, after which cover
392
- * shares can be claimed. The `owner`'s yield-vault shares must be approved to
393
- * the cover vault first.
394
- * @param coverVaultAddress Address of the OpenCover insured vault
395
- * @param assets Amount of underlying yield-vault shares to cover
396
- * @param controller Controller that owns/aggregates the request
397
- * @param owner Address supplying the yield-vault shares
398
- * @returns Transaction call object
399
- */
400
- requestCoverDeposit(coverVaultAddress: string, assets: NumStr, controller: string, owner: string): ITransactionCall;
401
- /**
402
- * Claims cover shares from a settled deposit request, by asset amount
403
- * (ERC-7540 `deposit(assets, receiver, controller)`).
404
- * @param coverVaultAddress Address of the OpenCover insured vault
405
- * @param assets Settled asset amount to claim cover shares for
406
- * @param receiver Address to receive the minted cover shares
407
- * @param controller Controller that owns the settled request
408
- * @returns Transaction call object
409
- */
410
- claimCoverDeposit(coverVaultAddress: string, assets: NumStr, receiver: string, controller: string): ITransactionCall;
411
- /**
412
- * Claims cover shares from a settled deposit request, by exact share amount
413
- * (ERC-7540 `mint(shares, receiver, controller)`).
414
- * @param coverVaultAddress Address of the OpenCover insured vault
415
- * @param shares Exact number of cover shares to claim
416
- * @param receiver Address to receive the minted cover shares
417
- * @param controller Controller that owns the settled request
418
- * @returns Transaction call object
419
- */
420
- mintCoverShares(coverVaultAddress: string, shares: NumStr, receiver: string, controller: string): ITransactionCall;
421
- /**
422
- * Requests an async redemption from an OpenCover cover vault: burns/locks
423
- * `shares` (cover shares) and queues them for settlement, after which the
424
- * underlying yield-vault shares can be claimed.
425
- * @param coverVaultAddress Address of the OpenCover insured vault
426
- * @param shares Amount of cover shares to redeem
427
- * @param controller Controller that owns/aggregates the request
428
- * @param owner Address holding the cover shares
429
- * @returns Transaction call object
430
- */
431
- requestCoverRedeem(coverVaultAddress: string, shares: NumStr, controller: string, owner: string): ITransactionCall;
432
- /**
433
- * Claims the underlying yield-vault shares from a settled redemption request,
434
- * by cover-share amount (ERC-7540 `redeem(shares, receiver, controller)`).
435
- * @param coverVaultAddress Address of the OpenCover insured vault
436
- * @param shares Amount of cover shares to redeem for underlying shares
437
- * @param receiver Address to receive the underlying yield-vault shares
438
- * @param controller Controller that owns the settled request
439
- * @returns Transaction call object
440
- */
441
- claimCoverRedeem(coverVaultAddress: string, shares: NumStr, receiver: string, controller: string): ITransactionCall;
442
- /**
443
- * Claims the underlying yield-vault shares from a settled redemption request,
444
- * by exact asset amount (ERC-7540 `withdraw(assets, receiver, controller)`).
445
- * @param coverVaultAddress Address of the OpenCover insured vault
446
- * @param assets Exact amount of underlying yield-vault shares to withdraw
447
- * @param receiver Address to receive the underlying yield-vault shares
448
- * @param controller Controller that owns the settled request
449
- * @returns Transaction call object
450
- */
451
- withdrawCoverAssets(coverVaultAddress: string, assets: NumStr, receiver: string, controller: string): ITransactionCall;
452
- /**
453
- * Permissionlessly settles a matured redemption request (callable by anyone
454
- * once the request has matured, e.g. after 24h) so the controller can claim.
455
- * @param coverVaultAddress Address of the OpenCover insured vault
456
- * @param requestId The redemption request id to settle
457
- * @returns Transaction call object
458
- */
459
- settleMaturedCoverRedemption(coverVaultAddress: string, requestId: NumStr): ITransactionCall;
460
390
  /**
461
391
  * Approves a token for spending by the vault
462
392
  * @param tokenAddress Address of the token
@@ -5,7 +5,6 @@ import EmberProtocolConfigABI from "../../abis/EmberProtocolConfig.json" with {
5
5
  import ERC20TokenABI from "../../abis/ERC20Token.json" with { type: "json" };
6
6
  import EmberVaultOFTAdapterABI from "../../abis/EmberVaultMintBurnOFTAdapter.json" with { type: "json" };
7
7
  import EmberDepositParkingLotABI from "../../abis/EmberDepositParkingLot.json" with { type: "json" };
8
- import OpenCoverVaultABI from "../../abis/OpenCoverVault.json" with { type: "json" };
9
8
  /**
10
9
  * EVM Transaction Builder for Ember Protocol (ERC-4626 Compatible)
11
10
  *
@@ -347,6 +346,16 @@ export class EVMTxBuilder {
347
346
  chainId: this.getChainId()
348
347
  };
349
348
  }
349
+ setParkingLotDepositAllowList(parkingLotAddress, account, status) {
350
+ return {
351
+ to: parkingLotAddress,
352
+ functionName: "setDepositAllowListStatus",
353
+ args: [account, status],
354
+ abi: EmberDepositParkingLotABI.abi,
355
+ value: 0n,
356
+ chainId: this.getChainId()
357
+ };
358
+ }
350
359
  /**
351
360
  * Updates the paused status of a vault operation (called via ProtocolConfig)
352
361
  * @param vaultAddress Address of the vault
@@ -801,151 +810,6 @@ export class EVMTxBuilder {
801
810
  };
802
811
  }
803
812
  // ============================================
804
- // OpenCover Cover Vault Methods (ERC-7540 async)
805
- //
806
- // A "covered" vault wraps its yield-bearing shares into an OpenCover insured
807
- // metavault to activate coverage. The cover vault's *asset* is the underlying
808
- // yield-vault share token; its *share* is the cover share (e.g. OC-eEARN).
809
- // The lifecycle is async: request -> settle -> claim.
810
- // - deposit: requestCoverDeposit -> (settles) -> claimCoverDeposit / mintCoverShares
811
- // - withdraw: requestCoverRedeem -> (settles) -> claimCoverRedeem / withdrawCoverAssets
812
- // Approval is on the underlying yield-vault share token, spender = cover vault.
813
- // ============================================
814
- /**
815
- * Requests an async deposit into an OpenCover cover vault: escrows `assets`
816
- * (yield-vault shares) and queues them for settlement, after which cover
817
- * shares can be claimed. The `owner`'s yield-vault shares must be approved to
818
- * the cover vault first.
819
- * @param coverVaultAddress Address of the OpenCover insured vault
820
- * @param assets Amount of underlying yield-vault shares to cover
821
- * @param controller Controller that owns/aggregates the request
822
- * @param owner Address supplying the yield-vault shares
823
- * @returns Transaction call object
824
- */
825
- requestCoverDeposit(coverVaultAddress, assets, controller, owner) {
826
- return {
827
- to: coverVaultAddress,
828
- functionName: "requestDeposit",
829
- args: [BigInt(assets), controller, owner],
830
- abi: OpenCoverVaultABI.abi,
831
- value: 0n,
832
- chainId: this.getChainId()
833
- };
834
- }
835
- /**
836
- * Claims cover shares from a settled deposit request, by asset amount
837
- * (ERC-7540 `deposit(assets, receiver, controller)`).
838
- * @param coverVaultAddress Address of the OpenCover insured vault
839
- * @param assets Settled asset amount to claim cover shares for
840
- * @param receiver Address to receive the minted cover shares
841
- * @param controller Controller that owns the settled request
842
- * @returns Transaction call object
843
- */
844
- claimCoverDeposit(coverVaultAddress, assets, receiver, controller) {
845
- return {
846
- to: coverVaultAddress,
847
- functionName: "deposit",
848
- args: [BigInt(assets), receiver, controller],
849
- abi: OpenCoverVaultABI.abi,
850
- value: 0n,
851
- chainId: this.getChainId()
852
- };
853
- }
854
- /**
855
- * Claims cover shares from a settled deposit request, by exact share amount
856
- * (ERC-7540 `mint(shares, receiver, controller)`).
857
- * @param coverVaultAddress Address of the OpenCover insured vault
858
- * @param shares Exact number of cover shares to claim
859
- * @param receiver Address to receive the minted cover shares
860
- * @param controller Controller that owns the settled request
861
- * @returns Transaction call object
862
- */
863
- mintCoverShares(coverVaultAddress, shares, receiver, controller) {
864
- return {
865
- to: coverVaultAddress,
866
- functionName: "mint",
867
- args: [BigInt(shares), receiver, controller],
868
- abi: OpenCoverVaultABI.abi,
869
- value: 0n,
870
- chainId: this.getChainId()
871
- };
872
- }
873
- /**
874
- * Requests an async redemption from an OpenCover cover vault: burns/locks
875
- * `shares` (cover shares) and queues them for settlement, after which the
876
- * underlying yield-vault shares can be claimed.
877
- * @param coverVaultAddress Address of the OpenCover insured vault
878
- * @param shares Amount of cover shares to redeem
879
- * @param controller Controller that owns/aggregates the request
880
- * @param owner Address holding the cover shares
881
- * @returns Transaction call object
882
- */
883
- requestCoverRedeem(coverVaultAddress, shares, controller, owner) {
884
- return {
885
- to: coverVaultAddress,
886
- functionName: "requestRedeem",
887
- args: [BigInt(shares), controller, owner],
888
- abi: OpenCoverVaultABI.abi,
889
- value: 0n,
890
- chainId: this.getChainId()
891
- };
892
- }
893
- /**
894
- * Claims the underlying yield-vault shares from a settled redemption request,
895
- * by cover-share amount (ERC-7540 `redeem(shares, receiver, controller)`).
896
- * @param coverVaultAddress Address of the OpenCover insured vault
897
- * @param shares Amount of cover shares to redeem for underlying shares
898
- * @param receiver Address to receive the underlying yield-vault shares
899
- * @param controller Controller that owns the settled request
900
- * @returns Transaction call object
901
- */
902
- claimCoverRedeem(coverVaultAddress, shares, receiver, controller) {
903
- return {
904
- to: coverVaultAddress,
905
- functionName: "redeem",
906
- args: [BigInt(shares), receiver, controller],
907
- abi: OpenCoverVaultABI.abi,
908
- value: 0n,
909
- chainId: this.getChainId()
910
- };
911
- }
912
- /**
913
- * Claims the underlying yield-vault shares from a settled redemption request,
914
- * by exact asset amount (ERC-7540 `withdraw(assets, receiver, controller)`).
915
- * @param coverVaultAddress Address of the OpenCover insured vault
916
- * @param assets Exact amount of underlying yield-vault shares to withdraw
917
- * @param receiver Address to receive the underlying yield-vault shares
918
- * @param controller Controller that owns the settled request
919
- * @returns Transaction call object
920
- */
921
- withdrawCoverAssets(coverVaultAddress, assets, receiver, controller) {
922
- return {
923
- to: coverVaultAddress,
924
- functionName: "withdraw",
925
- args: [BigInt(assets), receiver, controller],
926
- abi: OpenCoverVaultABI.abi,
927
- value: 0n,
928
- chainId: this.getChainId()
929
- };
930
- }
931
- /**
932
- * Permissionlessly settles a matured redemption request (callable by anyone
933
- * once the request has matured, e.g. after 24h) so the controller can claim.
934
- * @param coverVaultAddress Address of the OpenCover insured vault
935
- * @param requestId The redemption request id to settle
936
- * @returns Transaction call object
937
- */
938
- settleMaturedCoverRedemption(coverVaultAddress, requestId) {
939
- return {
940
- to: coverVaultAddress,
941
- functionName: "settleMaturedRedemption",
942
- args: [BigInt(requestId)],
943
- abi: OpenCoverVaultABI.abi,
944
- value: 0n,
945
- chainId: this.getChainId()
946
- };
947
- }
948
- // ============================================
949
813
  // ERC20 Helper Methods
950
814
  // ============================================
951
815
  /**
@@ -1,6 +1,6 @@
1
1
  import { Signer, Provider } from "ethers";
2
2
  import { EVMOnChainCalls } from "./onchain-calls.js";
3
- import { EvmProtocolInfo, IUserCallOptions, IEvmCallOptions, ICoverVaultCallOptions, EvmOnChainCallResponse, IPermitSignature, IETHDepositOptions, IBridgeSendOptions, IOFTFeeQuote } from "../interfaces/index.js";
3
+ import { EvmProtocolInfo, IUserCallOptions, IEvmCallOptions, EvmOnChainCallResponse, IPermitSignature, IETHDepositOptions, IBridgeSendOptions, IOFTFeeQuote } from "../interfaces/index.js";
4
4
  import { NumStr } from "../../common/types.js";
5
5
  import { Chain } from "../../api/v2/index.js";
6
6
  /**
@@ -223,174 +223,6 @@ export declare class EVMUserCalls extends EVMOnChainCalls {
223
223
  * @returns EvmOnChainCallResponse
224
224
  */
225
225
  cancelPendingWithdrawalRequest(vaultAddress: string, requestSequenceNumber: NumStr, options?: IEvmCallOptions): Promise<EvmOnChainCallResponse>;
226
- /**
227
- * Requests a deposit into an OpenCover cover vault (covered vault), escrowing
228
- * the given amount of underlying yield-vault shares so coverage can be
229
- * activated. This is the async ERC-7540 `requestDeposit`; cover shares are
230
- * claimed afterwards via {@link claimCoverVaultShares} / {@link mintCoverVaultShares}
231
- * (or delivered by a keeper).
232
- *
233
- * The `owner`'s yield-vault shares must be approved to the cover vault first
234
- * (see {@link approveCoverVaultAsset}).
235
- *
236
- * @param coverVaultAddress Address of the OpenCover insured vault
237
- * @param assets Amount of underlying yield-vault shares to cover
238
- * @param options Optional controller/owner/receiver + tx execution params
239
- * @returns EvmOnChainCallResponse
240
- */
241
- depositToCoverVault(coverVaultAddress: string, assets: NumStr, options?: ICoverVaultCallOptions): Promise<EvmOnChainCallResponse>;
242
- /**
243
- * Claims cover shares from a settled deposit request, by asset amount
244
- * (ERC-7540 `deposit`). Use after {@link depositToCoverVault} has settled and
245
- * when a keeper has not already pushed the shares.
246
- * @param coverVaultAddress Address of the OpenCover insured vault
247
- * @param assets Settled asset amount to claim cover shares for
248
- * @param options Optional controller/receiver + tx execution params
249
- * @returns EvmOnChainCallResponse
250
- */
251
- claimCoverVaultShares(coverVaultAddress: string, assets: NumStr, options?: ICoverVaultCallOptions): Promise<EvmOnChainCallResponse>;
252
- /**
253
- * Claims cover shares from a settled deposit request, by exact share amount
254
- * (ERC-7540 `mint`).
255
- * @param coverVaultAddress Address of the OpenCover insured vault
256
- * @param shares Exact number of cover shares to claim
257
- * @param options Optional controller/receiver + tx execution params
258
- * @returns EvmOnChainCallResponse
259
- */
260
- mintCoverVaultShares(coverVaultAddress: string, shares: NumStr, options?: ICoverVaultCallOptions): Promise<EvmOnChainCallResponse>;
261
- /**
262
- * Requests a withdrawal from an OpenCover cover vault (covered vault) by
263
- * redeeming cover shares. This is the async ERC-7540 `requestRedeem`; the
264
- * underlying yield-vault shares are claimed afterwards via
265
- * {@link claimCoverVaultAssets} / {@link withdrawCoverVaultAssets} (or
266
- * delivered by a keeper).
267
- * @param coverVaultAddress Address of the OpenCover insured vault
268
- * @param shares Amount of cover shares to redeem
269
- * @param options Optional controller/owner + tx execution params
270
- * @returns EvmOnChainCallResponse
271
- */
272
- withdrawFromCoverVault(coverVaultAddress: string, shares: NumStr, options?: ICoverVaultCallOptions): Promise<EvmOnChainCallResponse>;
273
- /**
274
- * Claims the underlying yield-vault shares from a settled redemption request,
275
- * by cover-share amount (ERC-7540 `redeem`). Use after
276
- * {@link withdrawFromCoverVault} has settled.
277
- * @param coverVaultAddress Address of the OpenCover insured vault
278
- * @param shares Amount of cover shares to redeem for underlying shares
279
- * @param options Optional controller/receiver + tx execution params
280
- * @returns EvmOnChainCallResponse
281
- */
282
- claimCoverVaultAssets(coverVaultAddress: string, shares: NumStr, options?: ICoverVaultCallOptions): Promise<EvmOnChainCallResponse>;
283
- /**
284
- * Claims the underlying yield-vault shares from a settled redemption request,
285
- * by exact asset amount (ERC-7540 `withdraw`).
286
- * @param coverVaultAddress Address of the OpenCover insured vault
287
- * @param assets Exact amount of underlying yield-vault shares to withdraw
288
- * @param options Optional controller/receiver + tx execution params
289
- * @returns EvmOnChainCallResponse
290
- */
291
- withdrawCoverVaultAssets(coverVaultAddress: string, assets: NumStr, options?: ICoverVaultCallOptions): Promise<EvmOnChainCallResponse>;
292
- /**
293
- * Permissionlessly settles a matured cover-vault redemption request so it
294
- * becomes claimable (callable by anyone once matured, e.g. after 24h).
295
- * @param coverVaultAddress Address of the OpenCover insured vault
296
- * @param requestId The redemption request id to settle
297
- * @param options Optional tx execution params
298
- * @returns EvmOnChainCallResponse
299
- */
300
- settleMaturedCoverRedemption(coverVaultAddress: string, requestId: NumStr, options?: IEvmCallOptions): Promise<EvmOnChainCallResponse>;
301
- /**
302
- * Approves the cover vault to spend the caller's underlying yield-vault
303
- * shares (the cover vault's `asset()`), which is required before
304
- * {@link depositToCoverVault}. Reads the asset token from the cover vault.
305
- * @param coverVaultAddress Address of the OpenCover insured vault
306
- * @param amount Amount to approve
307
- * @param options Optional tx execution params
308
- * @returns EvmOnChainCallResponse
309
- */
310
- approveCoverVaultAsset(coverVaultAddress: string, amount: NumStr, options?: IEvmCallOptions): Promise<EvmOnChainCallResponse>;
311
- /**
312
- * Gets the cover vault's underlying asset token address — i.e. the
313
- * yield-vault share token that gets wrapped into cover shares.
314
- * @param coverVaultAddress Address of the OpenCover insured vault
315
- */
316
- getCoverVaultAsset(coverVaultAddress: string): Promise<string>;
317
- /**
318
- * Gets the caller's (or a given account's) cover share balance.
319
- * @param coverVaultAddress Address of the OpenCover insured vault
320
- * @param account Optional account address (defaults to caller's wallet)
321
- */
322
- getCoverVaultShares(coverVaultAddress: string, account?: string): Promise<bigint>;
323
- /**
324
- * Gets the amount of a deposit request that has settled and is claimable as
325
- * cover shares for the given controller.
326
- * @param coverVaultAddress Address of the OpenCover insured vault
327
- * @param controller Optional controller address (defaults to caller's wallet)
328
- * @param requestId Optional request id (defaults to 0 — OpenCover aggregates by controller)
329
- */
330
- getClaimableCoverDeposit(coverVaultAddress: string, controller?: string, requestId?: NumStr): Promise<bigint>;
331
- /**
332
- * Gets the amount of a deposit request still pending settlement for the given
333
- * controller.
334
- * @param coverVaultAddress Address of the OpenCover insured vault
335
- * @param controller Optional controller address (defaults to caller's wallet)
336
- * @param requestId Optional request id (defaults to 0)
337
- */
338
- getPendingCoverDeposit(coverVaultAddress: string, controller?: string, requestId?: NumStr): Promise<bigint>;
339
- /**
340
- * Gets the amount of a redemption request that has settled and is claimable
341
- * as underlying yield-vault shares for the given controller.
342
- *
343
- * NOTE: unlike deposits (which aggregate under request id 0), OpenCover
344
- * assigns a **non-zero, unique request id** to each redemption. Pass the id
345
- * returned by `requestRedeem` (emitted in the `RedeemRequest` event) as
346
- * `requestId` — the default of 0 will read an empty request for redeems.
347
- * @param coverVaultAddress Address of the OpenCover insured vault
348
- * @param controller Optional controller address (defaults to caller's wallet)
349
- * @param requestId Redemption request id from requestRedeem (default 0 — see note)
350
- */
351
- getClaimableCoverRedeem(coverVaultAddress: string, controller?: string, requestId?: NumStr): Promise<bigint>;
352
- /**
353
- * Gets the amount of a redemption request still pending settlement for the
354
- * given controller.
355
- *
356
- * NOTE: redemptions use a **non-zero, unique request id** (unlike deposits,
357
- * which aggregate under id 0). Pass the id returned by `requestRedeem`
358
- * (emitted in the `RedeemRequest` event); the default 0 reads an empty
359
- * request for redeems.
360
- * @param coverVaultAddress Address of the OpenCover insured vault
361
- * @param controller Optional controller address (defaults to caller's wallet)
362
- * @param requestId Redemption request id from requestRedeem (default 0 — see note)
363
- */
364
- getPendingCoverRedeem(coverVaultAddress: string, controller?: string, requestId?: NumStr): Promise<bigint>;
365
- /**
366
- * Gets the total cover shares the controller can currently redeem — i.e. the
367
- * aggregate *settled/claimable* amount across all of the controller's matured
368
- * redemption requests (ERC-7540 `maxRedeem`).
369
- *
370
- * This is the **request-id-free** way to size a claim: read it, then pass the
371
- * result to {@link claimCoverVaultAssets}. A redemption request id is only
372
- * needed for the per-request {@link getClaimableCoverRedeem} read and for the
373
- * permissionless {@link settleMaturedCoverRedemption} fallback.
374
- * @param coverVaultAddress Address of the OpenCover insured vault
375
- * @param controller Optional controller address (defaults to caller's wallet)
376
- */
377
- getMaxCoverRedeem(coverVaultAddress: string, controller?: string): Promise<bigint>;
378
- /**
379
- * Gets the total underlying yield-vault shares the controller can currently
380
- * withdraw — the aggregate *settled/claimable* asset amount across the
381
- * controller's matured redemption requests (ERC-7540 `maxWithdraw`).
382
- *
383
- * Request-id-free; pair with {@link withdrawCoverVaultAssets} to claim by
384
- * asset amount without tracking a request id.
385
- * @param coverVaultAddress Address of the OpenCover insured vault
386
- * @param controller Optional controller address (defaults to caller's wallet)
387
- */
388
- getMaxCoverWithdraw(coverVaultAddress: string, controller?: string): Promise<bigint>;
389
- /**
390
- * Gets an OpenCover cover vault contract instance for read operations.
391
- * @param coverVaultAddress Address of the OpenCover insured vault
392
- */
393
- private getCoverVaultContract;
394
226
  /**
395
227
  * Approve a token for spending by a spender (typically the vault)
396
228
  * @param tokenAddress The address of the token
@@ -2,7 +2,6 @@ import { Contract, ethers } from "ethers";
2
2
  import { EVMOnChainCalls } from "./onchain-calls.js";
3
3
  import EmberVaultABI from "../../abis/EmberVault.json" with { type: "json" };
4
4
  import EmberETHVaultABI from "../../abis/EmberETHVault.json" with { type: "json" };
5
- import OpenCoverVaultABI from "../../abis/OpenCoverVault.json" with { type: "json" };
6
5
  import { addressToBytes32 } from "../index.js";
7
6
  /**
8
7
  * User Calls for Ember Protocol on EVM (ERC-4626 Compatible)
@@ -290,275 +289,6 @@ export class EVMUserCalls extends EVMOnChainCalls {
290
289
  return this.execCall(txCall, options);
291
290
  }
292
291
  // ============================================
293
- // OpenCover Cover Vault Methods (covered vaults)
294
- //
295
- // A "covered" vault is one whose yield-bearing shares can be wrapped into an
296
- // OpenCover insured metavault (cover vault shares) to activate coverage. The
297
- // cover vault is an ERC-7540 async vault whose *asset* is the underlying
298
- // yield-vault share token and whose *share* is the cover share (e.g.
299
- // OC-eEARN). Both deposit and withdraw are two-step: request -> claim.
300
- //
301
- // Typical deposit flow:
302
- // 1. approveCoverVaultAsset(coverVaultAddress, amount) // or approveToken(...)
303
- // 2. depositToCoverVault(coverVaultAddress, assets) // requestDeposit
304
- // 3. (wait for settlement, ~seconds)
305
- // 4. claimCoverVaultShares(coverVaultAddress, assets) // deposit() claim
306
- // (a keeper may push the shares instead, making step 4 unnecessary)
307
- //
308
- // Typical withdraw flow:
309
- // 1. withdrawFromCoverVault(coverVaultAddress, shares) // requestRedeem
310
- // 2. (wait for settlement)
311
- // 3. claimCoverVaultAssets(coverVaultAddress, shares) // redeem() claim
312
- //
313
- // controller / owner / receiver all default to the caller's wallet.
314
- // ============================================
315
- /**
316
- * Requests a deposit into an OpenCover cover vault (covered vault), escrowing
317
- * the given amount of underlying yield-vault shares so coverage can be
318
- * activated. This is the async ERC-7540 `requestDeposit`; cover shares are
319
- * claimed afterwards via {@link claimCoverVaultShares} / {@link mintCoverVaultShares}
320
- * (or delivered by a keeper).
321
- *
322
- * The `owner`'s yield-vault shares must be approved to the cover vault first
323
- * (see {@link approveCoverVaultAsset}).
324
- *
325
- * @param coverVaultAddress Address of the OpenCover insured vault
326
- * @param assets Amount of underlying yield-vault shares to cover
327
- * @param options Optional controller/owner/receiver + tx execution params
328
- * @returns EvmOnChainCallResponse
329
- */
330
- async depositToCoverVault(coverVaultAddress, assets, options) {
331
- const wallet = await this.getWalletAddress();
332
- const owner = options?.owner ?? wallet;
333
- const controller = options?.controller ?? wallet;
334
- const txCall = this.txBuilder.requestCoverDeposit(coverVaultAddress, assets, controller, owner);
335
- return this.execCall(txCall, options);
336
- }
337
- /**
338
- * Claims cover shares from a settled deposit request, by asset amount
339
- * (ERC-7540 `deposit`). Use after {@link depositToCoverVault} has settled and
340
- * when a keeper has not already pushed the shares.
341
- * @param coverVaultAddress Address of the OpenCover insured vault
342
- * @param assets Settled asset amount to claim cover shares for
343
- * @param options Optional controller/receiver + tx execution params
344
- * @returns EvmOnChainCallResponse
345
- */
346
- async claimCoverVaultShares(coverVaultAddress, assets, options) {
347
- const wallet = await this.getWalletAddress();
348
- const receiver = options?.receiver ?? wallet;
349
- const controller = options?.controller ?? wallet;
350
- const txCall = this.txBuilder.claimCoverDeposit(coverVaultAddress, assets, receiver, controller);
351
- return this.execCall(txCall, options);
352
- }
353
- /**
354
- * Claims cover shares from a settled deposit request, by exact share amount
355
- * (ERC-7540 `mint`).
356
- * @param coverVaultAddress Address of the OpenCover insured vault
357
- * @param shares Exact number of cover shares to claim
358
- * @param options Optional controller/receiver + tx execution params
359
- * @returns EvmOnChainCallResponse
360
- */
361
- async mintCoverVaultShares(coverVaultAddress, shares, options) {
362
- const wallet = await this.getWalletAddress();
363
- const receiver = options?.receiver ?? wallet;
364
- const controller = options?.controller ?? wallet;
365
- const txCall = this.txBuilder.mintCoverShares(coverVaultAddress, shares, receiver, controller);
366
- return this.execCall(txCall, options);
367
- }
368
- /**
369
- * Requests a withdrawal from an OpenCover cover vault (covered vault) by
370
- * redeeming cover shares. This is the async ERC-7540 `requestRedeem`; the
371
- * underlying yield-vault shares are claimed afterwards via
372
- * {@link claimCoverVaultAssets} / {@link withdrawCoverVaultAssets} (or
373
- * delivered by a keeper).
374
- * @param coverVaultAddress Address of the OpenCover insured vault
375
- * @param shares Amount of cover shares to redeem
376
- * @param options Optional controller/owner + tx execution params
377
- * @returns EvmOnChainCallResponse
378
- */
379
- async withdrawFromCoverVault(coverVaultAddress, shares, options) {
380
- const wallet = await this.getWalletAddress();
381
- const owner = options?.owner ?? wallet;
382
- const controller = options?.controller ?? wallet;
383
- const txCall = this.txBuilder.requestCoverRedeem(coverVaultAddress, shares, controller, owner);
384
- return this.execCall(txCall, options);
385
- }
386
- /**
387
- * Claims the underlying yield-vault shares from a settled redemption request,
388
- * by cover-share amount (ERC-7540 `redeem`). Use after
389
- * {@link withdrawFromCoverVault} has settled.
390
- * @param coverVaultAddress Address of the OpenCover insured vault
391
- * @param shares Amount of cover shares to redeem for underlying shares
392
- * @param options Optional controller/receiver + tx execution params
393
- * @returns EvmOnChainCallResponse
394
- */
395
- async claimCoverVaultAssets(coverVaultAddress, shares, options) {
396
- const wallet = await this.getWalletAddress();
397
- const receiver = options?.receiver ?? wallet;
398
- const controller = options?.controller ?? wallet;
399
- const txCall = this.txBuilder.claimCoverRedeem(coverVaultAddress, shares, receiver, controller);
400
- return this.execCall(txCall, options);
401
- }
402
- /**
403
- * Claims the underlying yield-vault shares from a settled redemption request,
404
- * by exact asset amount (ERC-7540 `withdraw`).
405
- * @param coverVaultAddress Address of the OpenCover insured vault
406
- * @param assets Exact amount of underlying yield-vault shares to withdraw
407
- * @param options Optional controller/receiver + tx execution params
408
- * @returns EvmOnChainCallResponse
409
- */
410
- async withdrawCoverVaultAssets(coverVaultAddress, assets, options) {
411
- const wallet = await this.getWalletAddress();
412
- const receiver = options?.receiver ?? wallet;
413
- const controller = options?.controller ?? wallet;
414
- const txCall = this.txBuilder.withdrawCoverAssets(coverVaultAddress, assets, receiver, controller);
415
- return this.execCall(txCall, options);
416
- }
417
- /**
418
- * Permissionlessly settles a matured cover-vault redemption request so it
419
- * becomes claimable (callable by anyone once matured, e.g. after 24h).
420
- * @param coverVaultAddress Address of the OpenCover insured vault
421
- * @param requestId The redemption request id to settle
422
- * @param options Optional tx execution params
423
- * @returns EvmOnChainCallResponse
424
- */
425
- async settleMaturedCoverRedemption(coverVaultAddress, requestId, options) {
426
- const txCall = this.txBuilder.settleMaturedCoverRedemption(coverVaultAddress, requestId);
427
- return this.execCall(txCall, options);
428
- }
429
- /**
430
- * Approves the cover vault to spend the caller's underlying yield-vault
431
- * shares (the cover vault's `asset()`), which is required before
432
- * {@link depositToCoverVault}. Reads the asset token from the cover vault.
433
- * @param coverVaultAddress Address of the OpenCover insured vault
434
- * @param amount Amount to approve
435
- * @param options Optional tx execution params
436
- * @returns EvmOnChainCallResponse
437
- */
438
- async approveCoverVaultAsset(coverVaultAddress, amount, options) {
439
- const assetAddress = await this.getCoverVaultAsset(coverVaultAddress);
440
- return this.approveToken(assetAddress, coverVaultAddress, amount, options);
441
- }
442
- /**
443
- * Gets the cover vault's underlying asset token address — i.e. the
444
- * yield-vault share token that gets wrapped into cover shares.
445
- * @param coverVaultAddress Address of the OpenCover insured vault
446
- */
447
- async getCoverVaultAsset(coverVaultAddress) {
448
- const coverVault = this.getCoverVaultContract(coverVaultAddress);
449
- return coverVault.asset();
450
- }
451
- /**
452
- * Gets the caller's (or a given account's) cover share balance.
453
- * @param coverVaultAddress Address of the OpenCover insured vault
454
- * @param account Optional account address (defaults to caller's wallet)
455
- */
456
- async getCoverVaultShares(coverVaultAddress, account) {
457
- const userAddress = account ?? (await this.getWalletAddress());
458
- const coverVault = this.getCoverVaultContract(coverVaultAddress);
459
- return coverVault.balanceOf(userAddress);
460
- }
461
- /**
462
- * Gets the amount of a deposit request that has settled and is claimable as
463
- * cover shares for the given controller.
464
- * @param coverVaultAddress Address of the OpenCover insured vault
465
- * @param controller Optional controller address (defaults to caller's wallet)
466
- * @param requestId Optional request id (defaults to 0 — OpenCover aggregates by controller)
467
- */
468
- async getClaimableCoverDeposit(coverVaultAddress, controller, requestId = 0) {
469
- const controllerAddress = controller ?? (await this.getWalletAddress());
470
- const coverVault = this.getCoverVaultContract(coverVaultAddress);
471
- return coverVault.claimableDepositRequest(BigInt(requestId), controllerAddress);
472
- }
473
- /**
474
- * Gets the amount of a deposit request still pending settlement for the given
475
- * controller.
476
- * @param coverVaultAddress Address of the OpenCover insured vault
477
- * @param controller Optional controller address (defaults to caller's wallet)
478
- * @param requestId Optional request id (defaults to 0)
479
- */
480
- async getPendingCoverDeposit(coverVaultAddress, controller, requestId = 0) {
481
- const controllerAddress = controller ?? (await this.getWalletAddress());
482
- const coverVault = this.getCoverVaultContract(coverVaultAddress);
483
- return coverVault.pendingDepositRequest(BigInt(requestId), controllerAddress);
484
- }
485
- /**
486
- * Gets the amount of a redemption request that has settled and is claimable
487
- * as underlying yield-vault shares for the given controller.
488
- *
489
- * NOTE: unlike deposits (which aggregate under request id 0), OpenCover
490
- * assigns a **non-zero, unique request id** to each redemption. Pass the id
491
- * returned by `requestRedeem` (emitted in the `RedeemRequest` event) as
492
- * `requestId` — the default of 0 will read an empty request for redeems.
493
- * @param coverVaultAddress Address of the OpenCover insured vault
494
- * @param controller Optional controller address (defaults to caller's wallet)
495
- * @param requestId Redemption request id from requestRedeem (default 0 — see note)
496
- */
497
- async getClaimableCoverRedeem(coverVaultAddress, controller, requestId = 0) {
498
- const controllerAddress = controller ?? (await this.getWalletAddress());
499
- const coverVault = this.getCoverVaultContract(coverVaultAddress);
500
- return coverVault.claimableRedeemRequest(BigInt(requestId), controllerAddress);
501
- }
502
- /**
503
- * Gets the amount of a redemption request still pending settlement for the
504
- * given controller.
505
- *
506
- * NOTE: redemptions use a **non-zero, unique request id** (unlike deposits,
507
- * which aggregate under id 0). Pass the id returned by `requestRedeem`
508
- * (emitted in the `RedeemRequest` event); the default 0 reads an empty
509
- * request for redeems.
510
- * @param coverVaultAddress Address of the OpenCover insured vault
511
- * @param controller Optional controller address (defaults to caller's wallet)
512
- * @param requestId Redemption request id from requestRedeem (default 0 — see note)
513
- */
514
- async getPendingCoverRedeem(coverVaultAddress, controller, requestId = 0) {
515
- const controllerAddress = controller ?? (await this.getWalletAddress());
516
- const coverVault = this.getCoverVaultContract(coverVaultAddress);
517
- return coverVault.pendingRedeemRequest(BigInt(requestId), controllerAddress);
518
- }
519
- /**
520
- * Gets the total cover shares the controller can currently redeem — i.e. the
521
- * aggregate *settled/claimable* amount across all of the controller's matured
522
- * redemption requests (ERC-7540 `maxRedeem`).
523
- *
524
- * This is the **request-id-free** way to size a claim: read it, then pass the
525
- * result to {@link claimCoverVaultAssets}. A redemption request id is only
526
- * needed for the per-request {@link getClaimableCoverRedeem} read and for the
527
- * permissionless {@link settleMaturedCoverRedemption} fallback.
528
- * @param coverVaultAddress Address of the OpenCover insured vault
529
- * @param controller Optional controller address (defaults to caller's wallet)
530
- */
531
- async getMaxCoverRedeem(coverVaultAddress, controller) {
532
- const controllerAddress = controller ?? (await this.getWalletAddress());
533
- const coverVault = this.getCoverVaultContract(coverVaultAddress);
534
- return coverVault.maxRedeem(controllerAddress);
535
- }
536
- /**
537
- * Gets the total underlying yield-vault shares the controller can currently
538
- * withdraw — the aggregate *settled/claimable* asset amount across the
539
- * controller's matured redemption requests (ERC-7540 `maxWithdraw`).
540
- *
541
- * Request-id-free; pair with {@link withdrawCoverVaultAssets} to claim by
542
- * asset amount without tracking a request id.
543
- * @param coverVaultAddress Address of the OpenCover insured vault
544
- * @param controller Optional controller address (defaults to caller's wallet)
545
- */
546
- async getMaxCoverWithdraw(coverVaultAddress, controller) {
547
- const controllerAddress = controller ?? (await this.getWalletAddress());
548
- const coverVault = this.getCoverVaultContract(coverVaultAddress);
549
- return coverVault.maxWithdraw(controllerAddress);
550
- }
551
- /**
552
- * Gets an OpenCover cover vault contract instance for read operations.
553
- * @param coverVaultAddress Address of the OpenCover insured vault
554
- */
555
- getCoverVaultContract(coverVaultAddress) {
556
- if (!this.provider) {
557
- throw new Error("Provider required for read operations");
558
- }
559
- return new Contract(coverVaultAddress, OpenCoverVaultABI.abi, this.provider);
560
- }
561
- // ============================================
562
292
  // ERC20 Token Helpers
563
293
  // ============================================
564
294
  /**
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.3.0-rc.0",
4
+ "version": "2.3.0",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
7
7
  "main": "./dist/index.js",
@@ -1,269 +0,0 @@
1
- {
2
- "contractName": "OpenCoverInsuredVault",
3
- "sourceName": "OpenCover Insured Vault (ERC-7540 cover vault shares)",
4
- "abi": [
5
- {
6
- "inputs": [
7
- { "internalType": "uint256", "name": "assets", "type": "uint256" },
8
- { "internalType": "address", "name": "controller", "type": "address" },
9
- { "internalType": "address", "name": "owner", "type": "address" }
10
- ],
11
- "name": "requestDeposit",
12
- "outputs": [
13
- { "internalType": "uint256", "name": "requestId", "type": "uint256" }
14
- ],
15
- "stateMutability": "nonpayable",
16
- "type": "function"
17
- },
18
- {
19
- "inputs": [
20
- { "internalType": "uint256", "name": "assets", "type": "uint256" },
21
- { "internalType": "address", "name": "receiver", "type": "address" },
22
- { "internalType": "address", "name": "controller", "type": "address" }
23
- ],
24
- "name": "deposit",
25
- "outputs": [
26
- { "internalType": "uint256", "name": "shares", "type": "uint256" }
27
- ],
28
- "stateMutability": "nonpayable",
29
- "type": "function"
30
- },
31
- {
32
- "inputs": [
33
- { "internalType": "uint256", "name": "shares", "type": "uint256" },
34
- { "internalType": "address", "name": "receiver", "type": "address" },
35
- { "internalType": "address", "name": "controller", "type": "address" }
36
- ],
37
- "name": "mint",
38
- "outputs": [
39
- { "internalType": "uint256", "name": "assets", "type": "uint256" }
40
- ],
41
- "stateMutability": "nonpayable",
42
- "type": "function"
43
- },
44
- {
45
- "inputs": [
46
- { "internalType": "uint256", "name": "shares", "type": "uint256" },
47
- { "internalType": "address", "name": "controller", "type": "address" },
48
- { "internalType": "address", "name": "owner", "type": "address" }
49
- ],
50
- "name": "requestRedeem",
51
- "outputs": [
52
- { "internalType": "uint256", "name": "requestId", "type": "uint256" }
53
- ],
54
- "stateMutability": "nonpayable",
55
- "type": "function"
56
- },
57
- {
58
- "inputs": [
59
- { "internalType": "uint256", "name": "shares", "type": "uint256" },
60
- { "internalType": "address", "name": "receiver", "type": "address" },
61
- { "internalType": "address", "name": "controller", "type": "address" }
62
- ],
63
- "name": "redeem",
64
- "outputs": [
65
- { "internalType": "uint256", "name": "assets", "type": "uint256" }
66
- ],
67
- "stateMutability": "nonpayable",
68
- "type": "function"
69
- },
70
- {
71
- "inputs": [
72
- { "internalType": "uint256", "name": "assets", "type": "uint256" },
73
- { "internalType": "address", "name": "receiver", "type": "address" },
74
- { "internalType": "address", "name": "controller", "type": "address" }
75
- ],
76
- "name": "withdraw",
77
- "outputs": [
78
- { "internalType": "uint256", "name": "shares", "type": "uint256" }
79
- ],
80
- "stateMutability": "nonpayable",
81
- "type": "function"
82
- },
83
- {
84
- "inputs": [
85
- { "internalType": "uint256", "name": "requestId", "type": "uint256" }
86
- ],
87
- "name": "settleMaturedRedemption",
88
- "outputs": [],
89
- "stateMutability": "nonpayable",
90
- "type": "function"
91
- },
92
- {
93
- "inputs": [
94
- { "internalType": "uint256", "name": "requestId", "type": "uint256" },
95
- { "internalType": "address", "name": "controller", "type": "address" }
96
- ],
97
- "name": "pendingDepositRequest",
98
- "outputs": [
99
- { "internalType": "uint256", "name": "assets", "type": "uint256" }
100
- ],
101
- "stateMutability": "view",
102
- "type": "function"
103
- },
104
- {
105
- "inputs": [
106
- { "internalType": "uint256", "name": "requestId", "type": "uint256" },
107
- { "internalType": "address", "name": "controller", "type": "address" }
108
- ],
109
- "name": "claimableDepositRequest",
110
- "outputs": [
111
- { "internalType": "uint256", "name": "assets", "type": "uint256" }
112
- ],
113
- "stateMutability": "view",
114
- "type": "function"
115
- },
116
- {
117
- "inputs": [
118
- { "internalType": "uint256", "name": "requestId", "type": "uint256" },
119
- { "internalType": "address", "name": "controller", "type": "address" }
120
- ],
121
- "name": "pendingRedeemRequest",
122
- "outputs": [
123
- { "internalType": "uint256", "name": "shares", "type": "uint256" }
124
- ],
125
- "stateMutability": "view",
126
- "type": "function"
127
- },
128
- {
129
- "inputs": [
130
- { "internalType": "uint256", "name": "requestId", "type": "uint256" },
131
- { "internalType": "address", "name": "controller", "type": "address" }
132
- ],
133
- "name": "claimableRedeemRequest",
134
- "outputs": [
135
- { "internalType": "uint256", "name": "shares", "type": "uint256" }
136
- ],
137
- "stateMutability": "view",
138
- "type": "function"
139
- },
140
- {
141
- "inputs": [],
142
- "name": "asset",
143
- "outputs": [
144
- {
145
- "internalType": "address",
146
- "name": "assetTokenAddress",
147
- "type": "address"
148
- }
149
- ],
150
- "stateMutability": "view",
151
- "type": "function"
152
- },
153
- {
154
- "inputs": [
155
- { "internalType": "address", "name": "account", "type": "address" }
156
- ],
157
- "name": "balanceOf",
158
- "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
159
- "stateMutability": "view",
160
- "type": "function"
161
- },
162
- {
163
- "inputs": [
164
- { "internalType": "address", "name": "controller", "type": "address" }
165
- ],
166
- "name": "maxRedeem",
167
- "outputs": [
168
- { "internalType": "uint256", "name": "maxShares", "type": "uint256" }
169
- ],
170
- "stateMutability": "view",
171
- "type": "function"
172
- },
173
- {
174
- "inputs": [
175
- { "internalType": "address", "name": "controller", "type": "address" }
176
- ],
177
- "name": "maxWithdraw",
178
- "outputs": [
179
- { "internalType": "uint256", "name": "maxAssets", "type": "uint256" }
180
- ],
181
- "stateMutability": "view",
182
- "type": "function"
183
- },
184
- {
185
- "inputs": [
186
- { "internalType": "address", "name": "spender", "type": "address" },
187
- { "internalType": "uint256", "name": "value", "type": "uint256" }
188
- ],
189
- "name": "approve",
190
- "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
191
- "stateMutability": "nonpayable",
192
- "type": "function"
193
- },
194
- {
195
- "anonymous": false,
196
- "inputs": [
197
- {
198
- "indexed": true,
199
- "internalType": "address",
200
- "name": "controller",
201
- "type": "address"
202
- },
203
- {
204
- "indexed": true,
205
- "internalType": "address",
206
- "name": "owner",
207
- "type": "address"
208
- },
209
- {
210
- "indexed": true,
211
- "internalType": "uint256",
212
- "name": "requestId",
213
- "type": "uint256"
214
- },
215
- {
216
- "indexed": false,
217
- "internalType": "address",
218
- "name": "sender",
219
- "type": "address"
220
- },
221
- {
222
- "indexed": false,
223
- "internalType": "uint256",
224
- "name": "assets",
225
- "type": "uint256"
226
- }
227
- ],
228
- "name": "DepositRequest",
229
- "type": "event"
230
- },
231
- {
232
- "anonymous": false,
233
- "inputs": [
234
- {
235
- "indexed": true,
236
- "internalType": "address",
237
- "name": "controller",
238
- "type": "address"
239
- },
240
- {
241
- "indexed": true,
242
- "internalType": "address",
243
- "name": "owner",
244
- "type": "address"
245
- },
246
- {
247
- "indexed": true,
248
- "internalType": "uint256",
249
- "name": "requestId",
250
- "type": "uint256"
251
- },
252
- {
253
- "indexed": false,
254
- "internalType": "address",
255
- "name": "sender",
256
- "type": "address"
257
- },
258
- {
259
- "indexed": false,
260
- "internalType": "uint256",
261
- "name": "shares",
262
- "type": "uint256"
263
- }
264
- ],
265
- "name": "RedeemRequest",
266
- "type": "event"
267
- }
268
- ]
269
- }