@1inch/solidity-utils 4.1.0 → 4.2.1

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.
Files changed (73) hide show
  1. package/README.md +1 -1
  2. package/contracts/interfaces/IERC7597Permit.sol +13 -0
  3. package/contracts/libraries/BySigTraits.sol +37 -5
  4. package/contracts/libraries/SafeERC20.sol +1 -1
  5. package/contracts/mixins/BySig.sol +220 -0
  6. package/contracts/mixins/EthReceiver.sol +27 -0
  7. package/contracts/mixins/OnlyWethReceiver.sol +31 -0
  8. package/contracts/mixins/PermitAndCall.sol +39 -0
  9. package/contracts/mixins/SelfdestructEthSender.sol +32 -0
  10. package/contracts/mocks/SelfdestructEthSenderMock.sol +10 -0
  11. package/dist/docgen/index.d.ts +2 -0
  12. package/dist/docgen/index.js +7 -0
  13. package/dist/docgen/index.js.map +1 -0
  14. package/dist/docgen/templates.d.ts +6 -0
  15. package/dist/docgen/templates.js +15 -0
  16. package/dist/docgen/templates.js.map +1 -0
  17. package/dist/hardhat-setup/networks.d.ts +6 -1
  18. package/dist/hardhat-setup/networks.js +1 -1
  19. package/dist/hardhat-setup/networks.js.map +1 -1
  20. package/dist/src/permit.d.ts +14 -2
  21. package/dist/src/permit.js +14 -2
  22. package/dist/src/permit.js.map +1 -1
  23. package/dist/src/utils.d.ts +41 -15
  24. package/dist/src/utils.js +9 -11
  25. package/dist/src/utils.js.map +1 -1
  26. package/dist/typechain-types/factories/contracts/libraries/BySigTraits__factory.d.ts +1 -1
  27. package/dist/typechain-types/factories/contracts/libraries/BySigTraits__factory.js +1 -1
  28. package/dist/typechain-types/factories/contracts/libraries/SafeERC20__factory.d.ts +1 -1
  29. package/dist/typechain-types/factories/contracts/libraries/SafeERC20__factory.js +1 -1
  30. package/dist/typechain-types/factories/contracts/libraries/UniERC20__factory.d.ts +1 -1
  31. package/dist/typechain-types/factories/contracts/libraries/UniERC20__factory.js +1 -1
  32. package/dist/typechain-types/factories/contracts/mocks/SelfdestructEthSenderMock__factory.d.ts +1 -1
  33. package/dist/typechain-types/factories/contracts/mocks/SelfdestructEthSenderMock__factory.js +1 -1
  34. package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.d.ts +1 -1
  35. package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.js +1 -1
  36. package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.d.ts +1 -1
  37. package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.js +1 -1
  38. package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.d.ts +1 -1
  39. package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.js +1 -1
  40. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.d.ts +1 -1
  41. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.js +1 -1
  42. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.d.ts +1 -1
  43. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.js +1 -1
  44. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.d.ts +1 -1
  45. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.js +1 -1
  46. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.d.ts +1 -1
  47. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.js +1 -1
  48. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.d.ts +1 -1
  49. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.js +1 -1
  50. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.d.ts +1 -1
  51. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.js +1 -1
  52. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.d.ts +1 -1
  53. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.js +1 -1
  54. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.d.ts +1 -1
  55. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.js +1 -1
  56. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.d.ts +1 -1
  57. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.js +1 -1
  58. package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.d.ts +1 -1
  59. package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.js +1 -1
  60. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.d.ts +1 -1
  61. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.js +1 -1
  62. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.d.ts +1 -1
  63. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.js +1 -1
  64. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.d.ts +1 -1
  65. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.js +1 -1
  66. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.d.ts +1 -1
  67. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.js +1 -1
  68. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.d.ts +1 -1
  69. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.js +1 -1
  70. package/package.json +9 -6
  71. package/utils/README.md +21 -3
  72. package/utils/docify.utils.js +1 -32
  73. package/utils/contract.hbs +0 -69
@@ -14,7 +14,7 @@ export declare class ETHBadReceiver__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): ETHBadReceiver__factory;
17
- static readonly bytecode = "0x608034608357601f61022638819003918201601f19168301916001600160401b03831184841017608757808492604094855283398101031260835780516001600160a01b0391828216918290036083576020015191821680920360835760018060a01b031990815f5416175f55600154161760015560405161018a908161009c8239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610044575b50361561001a575f80fd5b60046040517fe39ffce0000000000000000000000000000000000000000000000000000000008152fd5b5f905f3560e01c63a9059cbb1461005b575061000f565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101505760043573ffffffffffffffffffffffffffffffffffffffff808216809203610150576001541690813b15610150576064835f9381937f23b872dd0000000000000000000000000000000000000000000000000000000083523060048401526024830152602435604483015234905af1801561014557610102575080f35b905067ffffffffffffffff811161011857604052005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b5f80fdfea2646970667358221220c54cdb9dad789a57a25123667f898c9dc8dde6f327a54f216a115cbb407b51b664736f6c63430008190033";
17
+ static readonly bytecode = "0x608034608357601f61022638819003918201601f19168301916001600160401b03831184841017608757808492604094855283398101031260835780516001600160a01b0391828216918290036083576020015191821680920360835760018060a01b031990815f5416175f55600154161760015560405161018a908161009c8239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610044575b50361561001a575f80fd5b60046040517fe39ffce0000000000000000000000000000000000000000000000000000000008152fd5b5f905f3560e01c63a9059cbb1461005b575061000f565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101505760043573ffffffffffffffffffffffffffffffffffffffff808216809203610150576001541690813b15610150576064835f9381937f23b872dd0000000000000000000000000000000000000000000000000000000083523060048401526024830152602435604483015234905af1801561014557610102575080f35b905067ffffffffffffffff811161011857604052005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b5f80fdfea26469706673582212209b7a6c93516d66d715560b6c24f104c891f6a1a292970094f6c287401f67458b64736f6c63430008190033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [{
20
20
  readonly internalType: "contract IERC20";
@@ -50,7 +50,7 @@ const _abi = [
50
50
  type: "receive",
51
51
  },
52
52
  ];
53
- const _bytecode = "0x608034608357601f61022638819003918201601f19168301916001600160401b03831184841017608757808492604094855283398101031260835780516001600160a01b0391828216918290036083576020015191821680920360835760018060a01b031990815f5416175f55600154161760015560405161018a908161009c8239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610044575b50361561001a575f80fd5b60046040517fe39ffce0000000000000000000000000000000000000000000000000000000008152fd5b5f905f3560e01c63a9059cbb1461005b575061000f565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101505760043573ffffffffffffffffffffffffffffffffffffffff808216809203610150576001541690813b15610150576064835f9381937f23b872dd0000000000000000000000000000000000000000000000000000000083523060048401526024830152602435604483015234905af1801561014557610102575080f35b905067ffffffffffffffff811161011857604052005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b5f80fdfea2646970667358221220c54cdb9dad789a57a25123667f898c9dc8dde6f327a54f216a115cbb407b51b664736f6c63430008190033";
53
+ const _bytecode = "0x608034608357601f61022638819003918201601f19168301916001600160401b03831184841017608757808492604094855283398101031260835780516001600160a01b0391828216918290036083576020015191821680920360835760018060a01b031990815f5416175f55600154161760015560405161018a908161009c8239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610044575b50361561001a575f80fd5b60046040517fe39ffce0000000000000000000000000000000000000000000000000000000008152fd5b5f905f3560e01c63a9059cbb1461005b575061000f565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101505760043573ffffffffffffffffffffffffffffffffffffffff808216809203610150576001541690813b15610150576064835f9381937f23b872dd0000000000000000000000000000000000000000000000000000000083523060048401526024830152602435604483015234905af1801561014557610102575080f35b905067ffffffffffffffff811161011857604052005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b5f80fdfea26469706673582212209b7a6c93516d66d715560b6c24f104c891f6a1a292970094f6c287401f67458b64736f6c63430008190033";
54
54
  const isSuperArgs = (xs) => xs.length > 1;
55
55
  class ETHBadReceiver__factory extends ethers_1.ContractFactory {
56
56
  constructor(...args) {
@@ -14,7 +14,7 @@ export declare class UniERC20Wrapper__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): UniERC20Wrapper__factory;
17
- static readonly bytecode = "0x608034606f57601f6114e338819003918201601f19168301916001600160401b03831184841017607357808492602094604052833981010312606f57516001600160a01b03811690819003606f575f80546001600160a01b03191691909117905560405161145b90816100888239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60406080815260049081361015610014575f80fd5b5f3560e01c806306fdde03146105f9578063095ea7b3146104b557806323b872dd146102f657806370a082311461029457806395d89b4114610232578063a41d3c2e146101d75763a9059cbb14610069575f80fd5b807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d35761009a610694565b60243573ffffffffffffffffffffffffffffffffffffffff805f5416826100bd57005b6100c68161084d565b1561013f5750814710610116575f9283928392839216611388f16100e8610741565b50156100f057005b517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b505050517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b926044906020935f938751927fa9059cbb0000000000000000000000000000000000000000000000000000000084521688830152602482015282855af190816101b1575b501561018b57005b517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156101cb575060015f5114601f3d11165b5f610183565b3b15156101c5565b5f80fd5b50346101d3575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d35760209061022973ffffffffffffffffffffffffffffffffffffffff5f541661084d565b90519015158152f35b50346101d3575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576102909061028573ffffffffffffffffffffffffffffffffffffffff5f5416610f61565b90519182918261064c565b0390f35b50346101d35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576020906102ef6102d2610694565b73ffffffffffffffffffffffffffffffffffffffff5f541661079e565b9051908152f35b5060607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d357610329610694565b60243573ffffffffffffffffffffffffffffffffffffffff808216928383036101d35760443592825f5416908461035c57005b6103658261084d565b156104195750508234106103f15716913383036103c85730036103a05780341161038b57005b5f8080938193340390611388f16100e8610741565b5050517f57ca390a000000000000000000000000000000000000000000000000000000008152fd5b505050517f2a9c363d000000000000000000000000000000000000000000000000000000008152fd5b8585517fe2f844a0000000000000000000000000000000000000000000000000000000008152fd5b606492919550936020945f948851937f23b872dd00000000000000000000000000000000000000000000000000000000855216898401526024830152604482015282855af19081610493575b501561046d57005b517ff4059071000000000000000000000000000000000000000000000000000000008152fd5b90503d156104ad575060015f5114601f3d11165b5f610465565b3b15156104a7565b50346101d357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576104ec610694565b60243573ffffffffffffffffffffffffffffffffffffffff5f5416916105118361084d565b6105d0576105208282856113c1565b1561052757005b60205f604486517f095ea7b3000000000000000000000000000000000000000000000000000000008152848982015282602482015282875af1806105b1575b1592831561059e575b50505061057857005b517f19be9a90000000000000000000000000000000000000000000000000000000008152fd5b6105a893506113c1565b155f808061056f565b503d156105c75760015f5114601f3d1116610566565b823b1515610566565b505050517f4ca17a99000000000000000000000000000000000000000000000000000000008152fd5b50346101d3575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576102909061028573ffffffffffffffffffffffffffffffffffffffff5f54166108c9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602060409481855280519182918282880152018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101d357565b6040810190811067ffffffffffffffff8211176106d357604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106d357604052565b3d15610799573d9067ffffffffffffffff82116106d3576040519161078e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610700565b82523d5f602084013e565b606090565b6107a78161084d565b156107b157503190565b90602090602473ffffffffffffffffffffffffffffffffffffffff918260405195869485937f70a08231000000000000000000000000000000000000000000000000000000008552166004840152165afa908115610842575f91610813575090565b90506020813d60201161083a575b8161082e60209383610700565b810103126101d3575190565b3d9150610821565b6040513d5f823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff168015908115610870575090565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee91501490565b90815181101561089c570160200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6108d28161084d565b610f275773ffffffffffffffffffffffffffffffffffffffff8116604080516020925f80858401937f06fdde030000000000000000000000000000000000000000000000000000000085526004815261092a816106b7565b51614e20948486fa9161093b610741565b92918215610ed7575b50508080610ecc575b610e55575b80610e4b575b610d64575b50918251927fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008385019260601b1682526014845261099a846106b7565b8051938381518060011b94600260228901966022818b01018752613078828b0152018852920101925b8382106109d257505050505090565b828591610d578451610b98817f3030303030303030303030303030303030303030303030303030303030303030908060401c907fffffffff000000000000000000000000000000000000000000000000000000006fffffffff0000000000000000000000006bffffffff000000000000000084167bffffffff00000000000000000000000000000000000000000000000084161760201c9316911617178060101c907fff00000000000000ff00000000000000ff00000000000000ff000000000000007bff00000000000000ff00000000000000ff00000000000000ff0000007aff00000000000000ff00000000000000ff00000000000000ff000084167eff00000000000000ff00000000000000ff00000000000000ff00000000000084161760081c9316911617177f0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f007e0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f8260081c169160041c161760077f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7f0606060606060606060606060606060606060606060606060606060606060606830160041c1602010190565b835260801b7f3030303030303030303030303030303030303030303030303030303030303030908060401c907fffffffff000000000000000000000000000000000000000000000000000000006fffffffff0000000000000000000000006bffffffff000000000000000084167bffffffff00000000000000000000000000000000000000000000000084161760201c9316911617178060101c907fff00000000000000ff00000000000000ff00000000000000ff000000000000007bff00000000000000ff00000000000000ff00000000000000ff0000007aff00000000000000ff00000000000000ff00000000000000ff000084167eff00000000000000ff00000000000000ff00000000000000ff00000000000084161760081c9316911617177f0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f007e0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f8260081c169160041c161760077f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7f0606060606060606060606060606060606060606060606060606060606060606830160041c1602010190565b83820152019101906109c3565b9291905f5b8451811080610df5575b80610d9f575b15610d8657600101610d69565b939091929380610d96575061095d565b81529392505050565b507f7e000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000610dec838861088b565b51161115610d79565b507f20000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000610e42838861088b565b51161015610d73565b5082815114610958565b8151838382810103126101d357848301518484019186835192149182610e8b575b5050610e825750610952565b94505050505090565b86019150818611610e9f5710155f80610e76565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b50828251101561094d565b5f9350839250845190868201917fa3f4df7e00000000000000000000000000000000000000000000000000000000835260048152610f14816106b7565b5192fa610f1f610741565b905f80610944565b50604051610f34816106b7565b600381527f4554480000000000000000000000000000000000000000000000000000000000602082015290565b610f6a8161084d565b610f275773ffffffffffffffffffffffffffffffffffffffff8116604080516020925f80858401937f95d89b4100000000000000000000000000000000000000000000000000000000855260048152610fc2816106b7565b51614e20948486fa91610fd3610741565b92918215611371575b50508080611366575b611325575b8061131b575b61123d575b50918251927fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008385019260601b16825260148452611032846106b7565b8051938381518060011b94600260228901966022818b01018752613078828b0152018852920101925b83821061106a57505050505090565b8285916112308451610b98817f3030303030303030303030303030303030303030303030303030303030303030908060401c907fffffffff000000000000000000000000000000000000000000000000000000006fffffffff0000000000000000000000006bffffffff000000000000000084167bffffffff00000000000000000000000000000000000000000000000084161760201c9316911617178060101c907fff00000000000000ff00000000000000ff00000000000000ff000000000000007bff00000000000000ff00000000000000ff00000000000000ff0000007aff00000000000000ff00000000000000ff00000000000000ff000084167eff00000000000000ff00000000000000ff00000000000000ff00000000000084161760081c9316911617177f0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f007e0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f8260081c169160041c161760077f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7f0606060606060606060606060606060606060606060606060606060606060606830160041c1602010190565b838201520191019061105b565b9291905f5b84518110806112c5575b8061126f575b1561125f57600101611242565b939091929380610d965750610ff5565b507f7e000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000006112bc838861088b565b51161115611252565b507f20000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000611312838861088b565b5116101561124c565b5082815114610ff0565b8151838382810103126101d357848301518484019186835192149182611352575b5050610e825750610fea565b86019150818611610e9f5710155f80611346565b508282511015610fe5565b5f9350839250845190868201917ff76f8d78000000000000000000000000000000000000000000000000000000008352600481526113ae816106b7565b5192fa6113b9610741565b905f80610fdc565b929160446020925f92604051917f095ea7b30000000000000000000000000000000000000000000000000000000083526004830152602482015282865af191826114085750565b9091503d1561141f575060015f5114601f3d111690565b3b15159056fea2646970667358221220bef08c9cc4ba5c36597736672c543702c8076c001c0654bbe0e8d0e871e1b70864736f6c63430008190033";
17
+ static readonly bytecode = "0x608034606f57601f6114e338819003918201601f19168301916001600160401b03831184841017607357808492602094604052833981010312606f57516001600160a01b03811690819003606f575f80546001600160a01b03191691909117905560405161145b90816100888239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60406080815260049081361015610014575f80fd5b5f3560e01c806306fdde03146105f9578063095ea7b3146104b557806323b872dd146102f657806370a082311461029457806395d89b4114610232578063a41d3c2e146101d75763a9059cbb14610069575f80fd5b807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d35761009a610694565b60243573ffffffffffffffffffffffffffffffffffffffff805f5416826100bd57005b6100c68161084d565b1561013f5750814710610116575f9283928392839216611388f16100e8610741565b50156100f057005b517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b505050517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b926044906020935f938751927fa9059cbb0000000000000000000000000000000000000000000000000000000084521688830152602482015282855af190816101b1575b501561018b57005b517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156101cb575060015f5114601f3d11165b5f610183565b3b15156101c5565b5f80fd5b50346101d3575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d35760209061022973ffffffffffffffffffffffffffffffffffffffff5f541661084d565b90519015158152f35b50346101d3575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576102909061028573ffffffffffffffffffffffffffffffffffffffff5f5416610f61565b90519182918261064c565b0390f35b50346101d35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576020906102ef6102d2610694565b73ffffffffffffffffffffffffffffffffffffffff5f541661079e565b9051908152f35b5060607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d357610329610694565b60243573ffffffffffffffffffffffffffffffffffffffff808216928383036101d35760443592825f5416908461035c57005b6103658261084d565b156104195750508234106103f15716913383036103c85730036103a05780341161038b57005b5f8080938193340390611388f16100e8610741565b5050517f57ca390a000000000000000000000000000000000000000000000000000000008152fd5b505050517f2a9c363d000000000000000000000000000000000000000000000000000000008152fd5b8585517fe2f844a0000000000000000000000000000000000000000000000000000000008152fd5b606492919550936020945f948851937f23b872dd00000000000000000000000000000000000000000000000000000000855216898401526024830152604482015282855af19081610493575b501561046d57005b517ff4059071000000000000000000000000000000000000000000000000000000008152fd5b90503d156104ad575060015f5114601f3d11165b5f610465565b3b15156104a7565b50346101d357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576104ec610694565b60243573ffffffffffffffffffffffffffffffffffffffff5f5416916105118361084d565b6105d0576105208282856113c1565b1561052757005b60205f604486517f095ea7b3000000000000000000000000000000000000000000000000000000008152848982015282602482015282875af1806105b1575b1592831561059e575b50505061057857005b517f19be9a90000000000000000000000000000000000000000000000000000000008152fd5b6105a893506113c1565b155f808061056f565b503d156105c75760015f5114601f3d1116610566565b823b1515610566565b505050517f4ca17a99000000000000000000000000000000000000000000000000000000008152fd5b50346101d3575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576102909061028573ffffffffffffffffffffffffffffffffffffffff5f54166108c9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602060409481855280519182918282880152018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101d357565b6040810190811067ffffffffffffffff8211176106d357604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106d357604052565b3d15610799573d9067ffffffffffffffff82116106d3576040519161078e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610700565b82523d5f602084013e565b606090565b6107a78161084d565b156107b157503190565b90602090602473ffffffffffffffffffffffffffffffffffffffff918260405195869485937f70a08231000000000000000000000000000000000000000000000000000000008552166004840152165afa908115610842575f91610813575090565b90506020813d60201161083a575b8161082e60209383610700565b810103126101d3575190565b3d9150610821565b6040513d5f823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff168015908115610870575090565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee91501490565b90815181101561089c570160200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6108d28161084d565b610f275773ffffffffffffffffffffffffffffffffffffffff8116604080516020925f80858401937f06fdde030000000000000000000000000000000000000000000000000000000085526004815261092a816106b7565b51614e20948486fa9161093b610741565b92918215610ed7575b50508080610ecc575b610e55575b80610e4b575b610d64575b50918251927fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008385019260601b1682526014845261099a846106b7565b8051938381518060011b94600260228901966022818b01018752613078828b0152018852920101925b8382106109d257505050505090565b828591610d578451610b98817f3030303030303030303030303030303030303030303030303030303030303030908060401c907fffffffff000000000000000000000000000000000000000000000000000000006fffffffff0000000000000000000000006bffffffff000000000000000084167bffffffff00000000000000000000000000000000000000000000000084161760201c9316911617178060101c907fff00000000000000ff00000000000000ff00000000000000ff000000000000007bff00000000000000ff00000000000000ff00000000000000ff0000007aff00000000000000ff00000000000000ff00000000000000ff000084167eff00000000000000ff00000000000000ff00000000000000ff00000000000084161760081c9316911617177f0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f007e0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f8260081c169160041c161760077f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7f0606060606060606060606060606060606060606060606060606060606060606830160041c1602010190565b835260801b7f3030303030303030303030303030303030303030303030303030303030303030908060401c907fffffffff000000000000000000000000000000000000000000000000000000006fffffffff0000000000000000000000006bffffffff000000000000000084167bffffffff00000000000000000000000000000000000000000000000084161760201c9316911617178060101c907fff00000000000000ff00000000000000ff00000000000000ff000000000000007bff00000000000000ff00000000000000ff00000000000000ff0000007aff00000000000000ff00000000000000ff00000000000000ff000084167eff00000000000000ff00000000000000ff00000000000000ff00000000000084161760081c9316911617177f0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f007e0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f8260081c169160041c161760077f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7f0606060606060606060606060606060606060606060606060606060606060606830160041c1602010190565b83820152019101906109c3565b9291905f5b8451811080610df5575b80610d9f575b15610d8657600101610d69565b939091929380610d96575061095d565b81529392505050565b507f7e000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000610dec838861088b565b51161115610d79565b507f20000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000610e42838861088b565b51161015610d73565b5082815114610958565b8151838382810103126101d357848301518484019186835192149182610e8b575b5050610e825750610952565b94505050505090565b86019150818611610e9f5710155f80610e76565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b50828251101561094d565b5f9350839250845190868201917fa3f4df7e00000000000000000000000000000000000000000000000000000000835260048152610f14816106b7565b5192fa610f1f610741565b905f80610944565b50604051610f34816106b7565b600381527f4554480000000000000000000000000000000000000000000000000000000000602082015290565b610f6a8161084d565b610f275773ffffffffffffffffffffffffffffffffffffffff8116604080516020925f80858401937f95d89b4100000000000000000000000000000000000000000000000000000000855260048152610fc2816106b7565b51614e20948486fa91610fd3610741565b92918215611371575b50508080611366575b611325575b8061131b575b61123d575b50918251927fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008385019260601b16825260148452611032846106b7565b8051938381518060011b94600260228901966022818b01018752613078828b0152018852920101925b83821061106a57505050505090565b8285916112308451610b98817f3030303030303030303030303030303030303030303030303030303030303030908060401c907fffffffff000000000000000000000000000000000000000000000000000000006fffffffff0000000000000000000000006bffffffff000000000000000084167bffffffff00000000000000000000000000000000000000000000000084161760201c9316911617178060101c907fff00000000000000ff00000000000000ff00000000000000ff000000000000007bff00000000000000ff00000000000000ff00000000000000ff0000007aff00000000000000ff00000000000000ff00000000000000ff000084167eff00000000000000ff00000000000000ff00000000000000ff00000000000084161760081c9316911617177f0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f007e0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f8260081c169160041c161760077f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7f0606060606060606060606060606060606060606060606060606060606060606830160041c1602010190565b838201520191019061105b565b9291905f5b84518110806112c5575b8061126f575b1561125f57600101611242565b939091929380610d965750610ff5565b507f7e000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000006112bc838861088b565b51161115611252565b507f20000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000611312838861088b565b5116101561124c565b5082815114610ff0565b8151838382810103126101d357848301518484019186835192149182611352575b5050610e825750610fea565b86019150818611610e9f5710155f80611346565b508282511015610fe5565b5f9350839250845190868201917ff76f8d78000000000000000000000000000000000000000000000000000000008352600481526113ae816106b7565b5192fa6113b9610741565b905f80610fdc565b929160446020925f92604051917f095ea7b30000000000000000000000000000000000000000000000000000000083526004830152602482015282865af191826114085750565b9091503d1561141f575060015f5114601f3d111690565b3b15159056fea2646970667358221220b3612dac1f3cc0c32d9225978f33229b145cf59f7bb5818be66ef041eacbfa7464736f6c63430008190033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [{
20
20
  readonly internalType: "contract IERC20";
@@ -180,7 +180,7 @@ const _abi = [
180
180
  type: "function",
181
181
  },
182
182
  ];
183
- const _bytecode = "0x608034606f57601f6114e338819003918201601f19168301916001600160401b03831184841017607357808492602094604052833981010312606f57516001600160a01b03811690819003606f575f80546001600160a01b03191691909117905560405161145b90816100888239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60406080815260049081361015610014575f80fd5b5f3560e01c806306fdde03146105f9578063095ea7b3146104b557806323b872dd146102f657806370a082311461029457806395d89b4114610232578063a41d3c2e146101d75763a9059cbb14610069575f80fd5b807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d35761009a610694565b60243573ffffffffffffffffffffffffffffffffffffffff805f5416826100bd57005b6100c68161084d565b1561013f5750814710610116575f9283928392839216611388f16100e8610741565b50156100f057005b517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b505050517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b926044906020935f938751927fa9059cbb0000000000000000000000000000000000000000000000000000000084521688830152602482015282855af190816101b1575b501561018b57005b517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156101cb575060015f5114601f3d11165b5f610183565b3b15156101c5565b5f80fd5b50346101d3575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d35760209061022973ffffffffffffffffffffffffffffffffffffffff5f541661084d565b90519015158152f35b50346101d3575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576102909061028573ffffffffffffffffffffffffffffffffffffffff5f5416610f61565b90519182918261064c565b0390f35b50346101d35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576020906102ef6102d2610694565b73ffffffffffffffffffffffffffffffffffffffff5f541661079e565b9051908152f35b5060607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d357610329610694565b60243573ffffffffffffffffffffffffffffffffffffffff808216928383036101d35760443592825f5416908461035c57005b6103658261084d565b156104195750508234106103f15716913383036103c85730036103a05780341161038b57005b5f8080938193340390611388f16100e8610741565b5050517f57ca390a000000000000000000000000000000000000000000000000000000008152fd5b505050517f2a9c363d000000000000000000000000000000000000000000000000000000008152fd5b8585517fe2f844a0000000000000000000000000000000000000000000000000000000008152fd5b606492919550936020945f948851937f23b872dd00000000000000000000000000000000000000000000000000000000855216898401526024830152604482015282855af19081610493575b501561046d57005b517ff4059071000000000000000000000000000000000000000000000000000000008152fd5b90503d156104ad575060015f5114601f3d11165b5f610465565b3b15156104a7565b50346101d357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576104ec610694565b60243573ffffffffffffffffffffffffffffffffffffffff5f5416916105118361084d565b6105d0576105208282856113c1565b1561052757005b60205f604486517f095ea7b3000000000000000000000000000000000000000000000000000000008152848982015282602482015282875af1806105b1575b1592831561059e575b50505061057857005b517f19be9a90000000000000000000000000000000000000000000000000000000008152fd5b6105a893506113c1565b155f808061056f565b503d156105c75760015f5114601f3d1116610566565b823b1515610566565b505050517f4ca17a99000000000000000000000000000000000000000000000000000000008152fd5b50346101d3575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576102909061028573ffffffffffffffffffffffffffffffffffffffff5f54166108c9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602060409481855280519182918282880152018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101d357565b6040810190811067ffffffffffffffff8211176106d357604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106d357604052565b3d15610799573d9067ffffffffffffffff82116106d3576040519161078e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610700565b82523d5f602084013e565b606090565b6107a78161084d565b156107b157503190565b90602090602473ffffffffffffffffffffffffffffffffffffffff918260405195869485937f70a08231000000000000000000000000000000000000000000000000000000008552166004840152165afa908115610842575f91610813575090565b90506020813d60201161083a575b8161082e60209383610700565b810103126101d3575190565b3d9150610821565b6040513d5f823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff168015908115610870575090565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee91501490565b90815181101561089c570160200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6108d28161084d565b610f275773ffffffffffffffffffffffffffffffffffffffff8116604080516020925f80858401937f06fdde030000000000000000000000000000000000000000000000000000000085526004815261092a816106b7565b51614e20948486fa9161093b610741565b92918215610ed7575b50508080610ecc575b610e55575b80610e4b575b610d64575b50918251927fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008385019260601b1682526014845261099a846106b7565b8051938381518060011b94600260228901966022818b01018752613078828b0152018852920101925b8382106109d257505050505090565b828591610d578451610b98817f3030303030303030303030303030303030303030303030303030303030303030908060401c907fffffffff000000000000000000000000000000000000000000000000000000006fffffffff0000000000000000000000006bffffffff000000000000000084167bffffffff00000000000000000000000000000000000000000000000084161760201c9316911617178060101c907fff00000000000000ff00000000000000ff00000000000000ff000000000000007bff00000000000000ff00000000000000ff00000000000000ff0000007aff00000000000000ff00000000000000ff00000000000000ff000084167eff00000000000000ff00000000000000ff00000000000000ff00000000000084161760081c9316911617177f0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f007e0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f8260081c169160041c161760077f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7f0606060606060606060606060606060606060606060606060606060606060606830160041c1602010190565b835260801b7f3030303030303030303030303030303030303030303030303030303030303030908060401c907fffffffff000000000000000000000000000000000000000000000000000000006fffffffff0000000000000000000000006bffffffff000000000000000084167bffffffff00000000000000000000000000000000000000000000000084161760201c9316911617178060101c907fff00000000000000ff00000000000000ff00000000000000ff000000000000007bff00000000000000ff00000000000000ff00000000000000ff0000007aff00000000000000ff00000000000000ff00000000000000ff000084167eff00000000000000ff00000000000000ff00000000000000ff00000000000084161760081c9316911617177f0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f007e0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f8260081c169160041c161760077f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7f0606060606060606060606060606060606060606060606060606060606060606830160041c1602010190565b83820152019101906109c3565b9291905f5b8451811080610df5575b80610d9f575b15610d8657600101610d69565b939091929380610d96575061095d565b81529392505050565b507f7e000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000610dec838861088b565b51161115610d79565b507f20000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000610e42838861088b565b51161015610d73565b5082815114610958565b8151838382810103126101d357848301518484019186835192149182610e8b575b5050610e825750610952565b94505050505090565b86019150818611610e9f5710155f80610e76565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b50828251101561094d565b5f9350839250845190868201917fa3f4df7e00000000000000000000000000000000000000000000000000000000835260048152610f14816106b7565b5192fa610f1f610741565b905f80610944565b50604051610f34816106b7565b600381527f4554480000000000000000000000000000000000000000000000000000000000602082015290565b610f6a8161084d565b610f275773ffffffffffffffffffffffffffffffffffffffff8116604080516020925f80858401937f95d89b4100000000000000000000000000000000000000000000000000000000855260048152610fc2816106b7565b51614e20948486fa91610fd3610741565b92918215611371575b50508080611366575b611325575b8061131b575b61123d575b50918251927fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008385019260601b16825260148452611032846106b7565b8051938381518060011b94600260228901966022818b01018752613078828b0152018852920101925b83821061106a57505050505090565b8285916112308451610b98817f3030303030303030303030303030303030303030303030303030303030303030908060401c907fffffffff000000000000000000000000000000000000000000000000000000006fffffffff0000000000000000000000006bffffffff000000000000000084167bffffffff00000000000000000000000000000000000000000000000084161760201c9316911617178060101c907fff00000000000000ff00000000000000ff00000000000000ff000000000000007bff00000000000000ff00000000000000ff00000000000000ff0000007aff00000000000000ff00000000000000ff00000000000000ff000084167eff00000000000000ff00000000000000ff00000000000000ff00000000000084161760081c9316911617177f0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f007e0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f8260081c169160041c161760077f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7f0606060606060606060606060606060606060606060606060606060606060606830160041c1602010190565b838201520191019061105b565b9291905f5b84518110806112c5575b8061126f575b1561125f57600101611242565b939091929380610d965750610ff5565b507f7e000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000006112bc838861088b565b51161115611252565b507f20000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000611312838861088b565b5116101561124c565b5082815114610ff0565b8151838382810103126101d357848301518484019186835192149182611352575b5050610e825750610fea565b86019150818611610e9f5710155f80611346565b508282511015610fe5565b5f9350839250845190868201917ff76f8d78000000000000000000000000000000000000000000000000000000008352600481526113ae816106b7565b5192fa6113b9610741565b905f80610fdc565b929160446020925f92604051917f095ea7b30000000000000000000000000000000000000000000000000000000083526004830152602482015282865af191826114085750565b9091503d1561141f575060015f5114601f3d111690565b3b15159056fea2646970667358221220bef08c9cc4ba5c36597736672c543702c8076c001c0654bbe0e8d0e871e1b70864736f6c63430008190033";
183
+ const _bytecode = "0x608034606f57601f6114e338819003918201601f19168301916001600160401b03831184841017607357808492602094604052833981010312606f57516001600160a01b03811690819003606f575f80546001600160a01b03191691909117905560405161145b90816100888239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60406080815260049081361015610014575f80fd5b5f3560e01c806306fdde03146105f9578063095ea7b3146104b557806323b872dd146102f657806370a082311461029457806395d89b4114610232578063a41d3c2e146101d75763a9059cbb14610069575f80fd5b807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d35761009a610694565b60243573ffffffffffffffffffffffffffffffffffffffff805f5416826100bd57005b6100c68161084d565b1561013f5750814710610116575f9283928392839216611388f16100e8610741565b50156100f057005b517fb12d13eb000000000000000000000000000000000000000000000000000000008152fd5b505050517ff4d678b8000000000000000000000000000000000000000000000000000000008152fd5b926044906020935f938751927fa9059cbb0000000000000000000000000000000000000000000000000000000084521688830152602482015282855af190816101b1575b501561018b57005b517ffb7f5079000000000000000000000000000000000000000000000000000000008152fd5b90503d156101cb575060015f5114601f3d11165b5f610183565b3b15156101c5565b5f80fd5b50346101d3575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d35760209061022973ffffffffffffffffffffffffffffffffffffffff5f541661084d565b90519015158152f35b50346101d3575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576102909061028573ffffffffffffffffffffffffffffffffffffffff5f5416610f61565b90519182918261064c565b0390f35b50346101d35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576020906102ef6102d2610694565b73ffffffffffffffffffffffffffffffffffffffff5f541661079e565b9051908152f35b5060607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d357610329610694565b60243573ffffffffffffffffffffffffffffffffffffffff808216928383036101d35760443592825f5416908461035c57005b6103658261084d565b156104195750508234106103f15716913383036103c85730036103a05780341161038b57005b5f8080938193340390611388f16100e8610741565b5050517f57ca390a000000000000000000000000000000000000000000000000000000008152fd5b505050517f2a9c363d000000000000000000000000000000000000000000000000000000008152fd5b8585517fe2f844a0000000000000000000000000000000000000000000000000000000008152fd5b606492919550936020945f948851937f23b872dd00000000000000000000000000000000000000000000000000000000855216898401526024830152604482015282855af19081610493575b501561046d57005b517ff4059071000000000000000000000000000000000000000000000000000000008152fd5b90503d156104ad575060015f5114601f3d11165b5f610465565b3b15156104a7565b50346101d357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576104ec610694565b60243573ffffffffffffffffffffffffffffffffffffffff5f5416916105118361084d565b6105d0576105208282856113c1565b1561052757005b60205f604486517f095ea7b3000000000000000000000000000000000000000000000000000000008152848982015282602482015282875af1806105b1575b1592831561059e575b50505061057857005b517f19be9a90000000000000000000000000000000000000000000000000000000008152fd5b6105a893506113c1565b155f808061056f565b503d156105c75760015f5114601f3d1116610566565b823b1515610566565b505050517f4ca17a99000000000000000000000000000000000000000000000000000000008152fd5b50346101d3575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d3576102909061028573ffffffffffffffffffffffffffffffffffffffff5f54166108c9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602060409481855280519182918282880152018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101d357565b6040810190811067ffffffffffffffff8211176106d357604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106d357604052565b3d15610799573d9067ffffffffffffffff82116106d3576040519161078e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610700565b82523d5f602084013e565b606090565b6107a78161084d565b156107b157503190565b90602090602473ffffffffffffffffffffffffffffffffffffffff918260405195869485937f70a08231000000000000000000000000000000000000000000000000000000008552166004840152165afa908115610842575f91610813575090565b90506020813d60201161083a575b8161082e60209383610700565b810103126101d3575190565b3d9150610821565b6040513d5f823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff168015908115610870575090565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee91501490565b90815181101561089c570160200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6108d28161084d565b610f275773ffffffffffffffffffffffffffffffffffffffff8116604080516020925f80858401937f06fdde030000000000000000000000000000000000000000000000000000000085526004815261092a816106b7565b51614e20948486fa9161093b610741565b92918215610ed7575b50508080610ecc575b610e55575b80610e4b575b610d64575b50918251927fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008385019260601b1682526014845261099a846106b7565b8051938381518060011b94600260228901966022818b01018752613078828b0152018852920101925b8382106109d257505050505090565b828591610d578451610b98817f3030303030303030303030303030303030303030303030303030303030303030908060401c907fffffffff000000000000000000000000000000000000000000000000000000006fffffffff0000000000000000000000006bffffffff000000000000000084167bffffffff00000000000000000000000000000000000000000000000084161760201c9316911617178060101c907fff00000000000000ff00000000000000ff00000000000000ff000000000000007bff00000000000000ff00000000000000ff00000000000000ff0000007aff00000000000000ff00000000000000ff00000000000000ff000084167eff00000000000000ff00000000000000ff00000000000000ff00000000000084161760081c9316911617177f0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f007e0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f8260081c169160041c161760077f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7f0606060606060606060606060606060606060606060606060606060606060606830160041c1602010190565b835260801b7f3030303030303030303030303030303030303030303030303030303030303030908060401c907fffffffff000000000000000000000000000000000000000000000000000000006fffffffff0000000000000000000000006bffffffff000000000000000084167bffffffff00000000000000000000000000000000000000000000000084161760201c9316911617178060101c907fff00000000000000ff00000000000000ff00000000000000ff000000000000007bff00000000000000ff00000000000000ff00000000000000ff0000007aff00000000000000ff00000000000000ff00000000000000ff000084167eff00000000000000ff00000000000000ff00000000000000ff00000000000084161760081c9316911617177f0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f007e0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f8260081c169160041c161760077f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7f0606060606060606060606060606060606060606060606060606060606060606830160041c1602010190565b83820152019101906109c3565b9291905f5b8451811080610df5575b80610d9f575b15610d8657600101610d69565b939091929380610d96575061095d565b81529392505050565b507f7e000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000610dec838861088b565b51161115610d79565b507f20000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000610e42838861088b565b51161015610d73565b5082815114610958565b8151838382810103126101d357848301518484019186835192149182610e8b575b5050610e825750610952565b94505050505090565b86019150818611610e9f5710155f80610e76565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b50828251101561094d565b5f9350839250845190868201917fa3f4df7e00000000000000000000000000000000000000000000000000000000835260048152610f14816106b7565b5192fa610f1f610741565b905f80610944565b50604051610f34816106b7565b600381527f4554480000000000000000000000000000000000000000000000000000000000602082015290565b610f6a8161084d565b610f275773ffffffffffffffffffffffffffffffffffffffff8116604080516020925f80858401937f95d89b4100000000000000000000000000000000000000000000000000000000855260048152610fc2816106b7565b51614e20948486fa91610fd3610741565b92918215611371575b50508080611366575b611325575b8061131b575b61123d575b50918251927fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008385019260601b16825260148452611032846106b7565b8051938381518060011b94600260228901966022818b01018752613078828b0152018852920101925b83821061106a57505050505090565b8285916112308451610b98817f3030303030303030303030303030303030303030303030303030303030303030908060401c907fffffffff000000000000000000000000000000000000000000000000000000006fffffffff0000000000000000000000006bffffffff000000000000000084167bffffffff00000000000000000000000000000000000000000000000084161760201c9316911617178060101c907fff00000000000000ff00000000000000ff00000000000000ff000000000000007bff00000000000000ff00000000000000ff00000000000000ff0000007aff00000000000000ff00000000000000ff00000000000000ff000084167eff00000000000000ff00000000000000ff00000000000000ff00000000000084161760081c9316911617177f0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f007e0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f8260081c169160041c161760077f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7f0606060606060606060606060606060606060606060606060606060606060606830160041c1602010190565b838201520191019061105b565b9291905f5b84518110806112c5575b8061126f575b1561125f57600101611242565b939091929380610d965750610ff5565b507f7e000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000006112bc838861088b565b51161115611252565b507f20000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000611312838861088b565b5116101561124c565b5082815114610ff0565b8151838382810103126101d357848301518484019186835192149182611352575b5050610e825750610fea565b86019150818611610e9f5710155f80611346565b508282511015610fe5565b5f9350839250845190868201917ff76f8d78000000000000000000000000000000000000000000000000000000008352600481526113ae816106b7565b5192fa6113b9610741565b905f80610fdc565b929160446020925f92604051917f095ea7b30000000000000000000000000000000000000000000000000000000083526004830152602482015282865af191826114085750565b9091503d1561141f575060015f5114601f3d111690565b3b15159056fea2646970667358221220b3612dac1f3cc0c32d9225978f33229b145cf59f7bb5818be66ef041eacbfa7464736f6c63430008190033";
184
184
  const isSuperArgs = (xs) => xs.length > 1;
185
185
  class UniERC20Wrapper__factory extends ethers_1.ContractFactory {
186
186
  constructor(...args) {
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@1inch/solidity-utils",
3
- "version": "4.1.0",
3
+ "version": "4.2.1",
4
4
  "main": "dist/src/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
6
  "exports": {
7
7
  ".": "./dist/src/index.js",
8
- "./hardhat-setup": "./dist/hardhat-setup/index.js"
8
+ "./hardhat-setup": "./dist/hardhat-setup/index.js",
9
+ "./docgen": "./dist/docgen/index.js"
9
10
  },
10
11
  "repository": {
11
12
  "type": "git",
@@ -14,10 +15,12 @@
14
15
  "license": "MIT",
15
16
  "scripts": {
16
17
  "clean": "rimraf artifacts cache coverage contracts/hardhat-dependency-compiler dist typechain-types",
17
- "build": "yarn typechain && cti src hardhat-setup -b && tsc -p tsconfig.publish.json",
18
+ "build": "yarn typechain && cti src hardhat-setup docgen -b && tsc -p tsconfig.publish.json",
18
19
  "prepack": "yarn clean && yarn build",
19
20
  "coverage": "hardhat coverage",
20
- "docify": "npx solidity-utils-docify && npx typedoc --options typedoc.json",
21
+ "docgen": "yarn docgen:sol && yarn docgen:ts",
22
+ "docgen:ts": "npx typedoc --options typedoc.json 2>&1 | grep -v \"typechain-types\"",
23
+ "docgen:sol": "yarn hardhat docgen; npx solidity-utils-docify",
21
24
  "format": "yarn format-ts && yarn format-sol",
22
25
  "format-ts": "prettier '**/*.ts' --write",
23
26
  "format-sol": "prettier '**/*.sol' --write",
@@ -61,7 +64,6 @@
61
64
  "acquit": "1.3.0",
62
65
  "commander": "12.0.0",
63
66
  "create-ts-index": "1.14.0",
64
- "cross-spawn": "7.0.3",
65
67
  "eslint": "8.57.0",
66
68
  "eslint-config-standard": "17.1.0",
67
69
  "eslint-plugin-import": "2.29.1",
@@ -74,7 +76,7 @@
74
76
  "solc": "0.8.25",
75
77
  "solhint": "4.5.2",
76
78
  "solidity-coverage": "0.8.11",
77
- "solidity-docgen": "0.5.17",
79
+ "solidity-docgen": "0.6.0-beta.36",
78
80
  "ts-node": "10.9.2",
79
81
  "typechain": "8.3.2",
80
82
  "typedoc": "0.25.12",
@@ -99,6 +101,7 @@
99
101
  "contracts/*.sol",
100
102
  "contracts/interfaces",
101
103
  "contracts/libraries",
104
+ "contracts/mixins",
102
105
  "contracts/mocks"
103
106
  ]
104
107
  }
package/utils/README.md CHANGED
@@ -5,18 +5,18 @@
5
5
  Generates documentation in markdown format from natspec docs
6
6
 
7
7
  ##### Usage
8
- Add to `package.json` file solidity compiler version (add version you use), solidity-docgen (0.5, 0.6 is unstable) util and shortcut to run command
8
+ Add to `package.json` file solidity compiler version (add version you use), solidity-docgen 0.6 util and shortcut to run command
9
9
 
10
10
  `devDependencies` section
11
11
 
12
12
  ```
13
13
  "solc": "0.8.23",
14
- "solidity-docgen": "0.5.17",
14
+ "solidity-docgen": "0.6.0-beta.36",
15
15
  ```
16
16
 
17
17
  `scripts` section
18
18
  ```
19
- "docify": "npx solidity-utils-docify"
19
+ "docify": "yarn hardhat docgen; npx solidity-utils-docify"
20
20
  ```
21
21
 
22
22
  You can set output directory with ENV variable:
@@ -24,7 +24,25 @@ You can set output directory with ENV variable:
24
24
  "docify": "DOCGEN_OUTPUT_DIR=./docs npx solidity-utils-docify"
25
25
  ```
26
26
 
27
+ Then set appopriate settings for docgen in `hardhat.config.js` file
28
+
29
+ ```JavaScript
30
+ require('solidity-docgen');
31
+
32
+ // You can use 1inch templates built-in templates
33
+ const { oneInchTemplates } = require('@1inch/solidity-utils/docgen');
34
+
35
+ module.exports = {
27
36
  ...
37
+ docgen: {
38
+ outputDir: "docs", // Can be omitted, docs used by default
39
+ templates: oneInchTemplates(), // 1inch templates
40
+ pages: 'files', // Doc output format for 1inch templates
41
+ exclude: ['mocks', 'test'], // Directories to exclude from generation
42
+ }
43
+ }
44
+
45
+ ```
28
46
 
29
47
  #### Dependencies list (imports-list)
30
48
 
@@ -1,27 +1,14 @@
1
1
  #!/usr/bin/env node
2
- const SOLC_NPM_NAME = 'solc';
3
2
  const BASE_DIR = 'docs';
4
- const SCRIPT_DIR = __dirname;
5
- const INPUT_DIR = 'contracts';
6
- const OUTPUT_DIR = process.env.DOCGEN_OUTPUT_DIR || `${BASE_DIR}/contracts`;
7
- const HELPERS_PATH = `${SCRIPT_DIR}/solidity-docgen-helpers.js`;
3
+ const OUTPUT_DIR = process.env.DOCGEN_OUTPUT_DIR || `${BASE_DIR}`;
8
4
 
9
5
  const fs = require('fs');
10
6
  const path = require('path');
11
- const spawn = require('cross-spawn');
12
7
 
13
8
  function getFileNameWithoutExtension (fileName) {
14
9
  return fileName.substr(0, fileName.lastIndexOf('.'));
15
10
  }
16
11
 
17
- function runProcess (name, args) {
18
- console.log(`running ${name} with args ${JSON.stringify(args)}`);
19
- const result = spawn.sync(name, args, { stdio: ['inherit', 'inherit', 'pipe'] });
20
- if (result.stderr.length > 0) {
21
- throw new Error(result.stderr);
22
- }
23
- }
24
-
25
12
  function getReadmes (targetPath) {
26
13
  let result = [];
27
14
  const readmePath = path.join(targetPath, 'README.md');
@@ -108,23 +95,5 @@ function removeUnwantedDocs () {
108
95
  }
109
96
  }
110
97
 
111
- const solidityDocgenArgs = [
112
- 'solidity-docgen',
113
- '-i',
114
- INPUT_DIR,
115
- '-o',
116
- OUTPUT_DIR,
117
- '--solc-module',
118
- SOLC_NPM_NAME,
119
- '--solc-settings',
120
- JSON.stringify({ optimizer: { enabled: false } }),
121
- '--templates',
122
- SCRIPT_DIR,
123
- '--helpers',
124
- HELPERS_PATH,
125
- ];
126
-
127
- fs.rmSync(OUTPUT_DIR, { force: true, recursive: true });
128
- runProcess('npx', solidityDocgenArgs);
129
98
  generateGitbookFiles();
130
99
  removeUnwantedDocs();
@@ -1,69 +0,0 @@
1
- # {{{name}}}
2
-
3
-
4
- {{{natspec.title}}}
5
- {{{natspec.userdoc}}}
6
- {{{natspec.devdoc}}}
7
-
8
- {{#if (withoutFirstElement inheritance)}}
9
- ## Derives
10
- {{/if}}
11
- {{#each (withoutFirstElement inheritance)}}
12
- {{#if (getRelativeDocPath name source.contractsDir source.solcOutput.sources)}}
13
- - [{{name}}]({{getRelativeDocPath name source.contractsDir source.solcOutput.sources}})
14
- {{else}}
15
- - {{name}}
16
- {{/if}}
17
- {{/each}}
18
-
19
- {{#if ownFunctions}}
20
- ## Functions
21
- {{/if}}
22
- {{#ownFunctions}}
23
- ### {{name}}
24
- ```solidity
25
- function {{name}}(
26
- {{#args}}
27
- {{type}} {{name}}{{#if @last}}{{else}},{{/if}}
28
- {{/args}}
29
- ) {{visibility}}{{#if outputs}} returns ({{outputs}}){{/if}}
30
- ```
31
- {{#if natspec.userdoc}}{{natspec.userdoc}}{{/if}}
32
- {{#if natspec.devdoc}}{{natspec.devdoc}}{{/if}}
33
- {{#if args}}
34
- #### Parameters:
35
- | Name | Type | Description |
36
- | :--- | :--- | :------------------------------------------------------------------- |
37
- {{#args}}
38
- |`{{name}}` | {{type}} | {{#with (lookup ../natspec.params @index)~}} {{ removeNewlines description }} {{/with}}
39
- {{/args}}{{/if}}
40
- {{#if natspec.returns}}
41
- #### Return Values:
42
- | Name | Type | Description |
43
- | :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
44
- {{#natspec.returns}}
45
- |`{{param}}`| {{#lookup ../outputs.types @index}}{{/lookup}} | {{{removeNewlines description}}}
46
- {{/natspec.returns}}{{/if}}
47
- {{/ownFunctions}}
48
- {{#if ownEvents}}
49
- ## Events
50
- {{/if}}
51
- {{#ownEvents}}
52
- ### {{name}}
53
- ```solidity
54
- event {{name}}(
55
- {{#args}}
56
- {{type}} {{name}}{{#if @last}}{{else}},{{/if}}
57
- {{/args}}
58
- )
59
- ```
60
- {{#if natspec.userdoc}}{{natspec.userdoc}}{{/if}}
61
- {{#if natspec.devdoc}}{{natspec.devdoc}}{{/if}}
62
- {{#if args}}
63
- #### Parameters:
64
- | Name | Type | Description |
65
- | :--- | :--- | :------------------------------------------------------------------- |
66
- {{#args}}
67
- |`{{name}}` | {{type}} | {{#with (lookup ../natspec.params @index)~}} {{ removeNewlines description }} {{/with}}
68
- {{/args}}{{/if}}
69
- {{/ownEvents}}