@keep-network/tbtc-v2 0.1.0 → 0.1.1-dev

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 (296) hide show
  1. package/README.adoc +12 -0
  2. package/artifacts/.chainId +1 -1
  3. package/artifacts/Bank.json +807 -0
  4. package/artifacts/Bridge.json +2300 -0
  5. package/artifacts/Deposit.json +117 -0
  6. package/artifacts/DepositSweep.json +77 -0
  7. package/artifacts/EcdsaDkgValidator.json +532 -0
  8. package/artifacts/EcdsaInactivity.json +156 -0
  9. package/artifacts/EcdsaSortitionPool.json +1004 -0
  10. package/artifacts/Fraud.json +164 -0
  11. package/artifacts/KeepRegistry.json +99 -0
  12. package/artifacts/KeepStake.json +286 -0
  13. package/artifacts/KeepToken.json +711 -0
  14. package/artifacts/KeepTokenStaking.json +483 -0
  15. package/artifacts/MovingFunds.json +249 -0
  16. package/artifacts/NuCypherStakingEscrow.json +256 -0
  17. package/artifacts/NuCypherToken.json +711 -0
  18. package/artifacts/RandomBeaconStub.json +141 -0
  19. package/artifacts/Redemption.json +174 -0
  20. package/artifacts/ReimbursementPool.json +509 -0
  21. package/artifacts/Relay.json +123 -0
  22. package/artifacts/T.json +1148 -0
  23. package/artifacts/TBTC.json +36 -35
  24. package/artifacts/TBTCToken.json +738 -0
  25. package/artifacts/TBTCVault.json +691 -0
  26. package/artifacts/TokenStaking.json +2288 -0
  27. package/artifacts/TokenholderGovernor.json +1795 -0
  28. package/artifacts/TokenholderTimelock.json +1058 -0
  29. package/artifacts/VendingMachine.json +34 -33
  30. package/artifacts/VendingMachineKeep.json +400 -0
  31. package/artifacts/VendingMachineNuCypher.json +400 -0
  32. package/artifacts/WalletRegistry.json +1843 -0
  33. package/artifacts/WalletRegistryGovernance.json +2754 -0
  34. package/artifacts/Wallets.json +186 -0
  35. package/artifacts/solcInputs/5e62cff1ead0900b07facca4b559e818.json +314 -0
  36. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  37. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.json +2 -2
  38. package/build/contracts/bank/Bank.sol/Bank.dbg.json +4 -0
  39. package/build/contracts/bank/Bank.sol/Bank.json +542 -0
  40. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +4 -0
  41. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.json +34 -0
  42. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +4 -0
  43. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +10 -0
  44. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +4 -0
  45. package/build/contracts/bridge/Bridge.sol/Bridge.json +2686 -0
  46. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +4 -0
  47. package/build/contracts/bridge/BridgeState.sol/BridgeState.json +226 -0
  48. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +4 -0
  49. package/build/contracts/bridge/Deposit.sol/Deposit.json +72 -0
  50. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +4 -0
  51. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.json +30 -0
  52. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +4 -0
  53. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.json +10 -0
  54. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +4 -0
  55. package/build/contracts/bridge/Fraud.sol/Fraud.json +86 -0
  56. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +4 -0
  57. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.json +10 -0
  58. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +4 -0
  59. package/build/contracts/bridge/IRelay.sol/IRelay.json +37 -0
  60. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +4 -0
  61. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.json +138 -0
  62. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +4 -0
  63. package/build/contracts/bridge/Redemption.sol/OutboundTx.json +10 -0
  64. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +4 -0
  65. package/build/contracts/bridge/Redemption.sol/Redemption.json +92 -0
  66. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  67. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.json +2 -2
  68. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +4 -0
  69. package/build/contracts/bridge/Wallets.sol/Wallets.json +112 -0
  70. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  71. package/build/contracts/token/TBTC.sol/TBTC.json +4 -4
  72. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +4 -0
  73. package/build/contracts/vault/DonationVault.sol/DonationVault.json +108 -0
  74. package/build/contracts/vault/IVault.sol/IVault.dbg.json +4 -0
  75. package/build/contracts/vault/IVault.sol/IVault.json +52 -0
  76. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +4 -0
  77. package/build/contracts/vault/TBTCVault.sol/TBTCVault.json +449 -0
  78. package/contracts/GovernanceUtils.sol +4 -4
  79. package/contracts/bank/Bank.sol +436 -0
  80. package/contracts/bank/IReceiveBalanceApproval.sol +45 -0
  81. package/contracts/bridge/BitcoinTx.sol +326 -0
  82. package/contracts/bridge/Bridge.sol +1793 -0
  83. package/contracts/bridge/BridgeState.sol +739 -0
  84. package/contracts/bridge/Deposit.sol +269 -0
  85. package/contracts/bridge/DepositSweep.sol +574 -0
  86. package/contracts/bridge/EcdsaLib.sol +45 -0
  87. package/contracts/bridge/Fraud.sol +579 -0
  88. package/contracts/bridge/Heartbeat.sol +112 -0
  89. package/contracts/bridge/IRelay.sol +28 -0
  90. package/contracts/bridge/MovingFunds.sol +1077 -0
  91. package/contracts/bridge/Redemption.sol +1020 -0
  92. package/contracts/bridge/VendingMachine.sol +2 -2
  93. package/contracts/bridge/Wallets.sol +719 -0
  94. package/contracts/hardhat-dependency-compiler/.hardhat-dependency-compiler +1 -0
  95. package/contracts/hardhat-dependency-compiler/@keep-network/ecdsa/contracts/WalletRegistry.sol +3 -0
  96. package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol +3 -0
  97. package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +3 -0
  98. package/contracts/token/TBTC.sol +1 -1
  99. package/contracts/vault/DonationVault.sol +125 -0
  100. package/contracts/vault/IVault.sol +44 -0
  101. package/contracts/vault/TBTCVault.sol +305 -0
  102. package/deploy/00_resolve_relay.ts +28 -0
  103. package/deploy/00_resolve_tbtc_v1_token.ts +1 -1
  104. package/deploy/01_deploy_tbtc_v2_token.ts +8 -1
  105. package/deploy/02_deploy_vending_machine.ts +7 -0
  106. package/deploy/{03_transfer_roles.ts → 03_transfer_vending_machine_roles.ts} +1 -1
  107. package/deploy/04_deploy_bank.ts +27 -0
  108. package/deploy/05_deploy_bridge.ts +80 -0
  109. package/deploy/06_deploy_tbtc_vault.ts +30 -0
  110. package/deploy/07_bank_update_bridge.ts +19 -0
  111. package/deploy/08_transfer_bank_ownership.ts +15 -0
  112. package/deploy/09_transfer_tbtc_vault_ownership.ts +15 -0
  113. package/deploy/10_transfer_bridge_governance.ts +20 -0
  114. package/deploy/11_initialize_wallet_owner.ts +18 -0
  115. package/deploy/11_transfer_proxy_admin_ownership.ts +30 -0
  116. package/deploy/12_deploy_proxy_admin_with_deputy.ts +33 -0
  117. package/export/deploy/00_resolve_relay.js +24 -0
  118. package/export/deploy/00_resolve_tbtc_v1_token.js +24 -0
  119. package/export/deploy/01_deploy_tbtc_v2_token.js +19 -0
  120. package/export/deploy/02_deploy_vending_machine.js +25 -0
  121. package/export/deploy/03_transfer_vending_machine_roles.js +19 -0
  122. package/export/deploy/04_deploy_bank.js +21 -0
  123. package/export/deploy/05_deploy_bridge.js +69 -0
  124. package/export/deploy/06_deploy_tbtc_vault.js +24 -0
  125. package/export/deploy/07_bank_update_bridge.js +13 -0
  126. package/export/deploy/08_transfer_bank_ownership.js +11 -0
  127. package/export/deploy/09_transfer_tbtc_vault_ownership.js +11 -0
  128. package/export/deploy/10_transfer_bridge_governance.js +11 -0
  129. package/export/deploy/11_initialize_wallet_owner.js +14 -0
  130. package/export/deploy/11_transfer_proxy_admin_ownership.js +23 -0
  131. package/export/deploy/12_deploy_proxy_admin_with_deputy.js +22 -0
  132. package/export/hardhat.config.js +169 -0
  133. package/export/test/bank/Bank.test.js +1012 -0
  134. package/export/test/bridge/Bridge.Deployment.test.js +76 -0
  135. package/export/test/bridge/Bridge.Deposit.test.js +1834 -0
  136. package/export/test/bridge/Bridge.Frauds.test.js +1349 -0
  137. package/export/test/bridge/Bridge.MovingFunds.test.js +2437 -0
  138. package/export/test/bridge/Bridge.Parameters.test.js +400 -0
  139. package/export/test/bridge/Bridge.Redemption.test.js +2523 -0
  140. package/export/test/bridge/Bridge.Vaults.test.js +74 -0
  141. package/export/test/bridge/Bridge.Wallets.test.js +1017 -0
  142. package/export/test/bridge/EcdsaLib.test.js +46 -0
  143. package/export/test/bridge/Heartbeat.test.js +77 -0
  144. package/export/test/bridge/VendingMachine.Upgrade.test.js +160 -0
  145. package/export/test/bridge/VendingMachine.test.js +762 -0
  146. package/export/test/data/deposit-sweep.js +655 -0
  147. package/export/test/data/ecdsa.js +18 -0
  148. package/export/test/data/fraud.js +158 -0
  149. package/export/test/data/moving-funds.js +815 -0
  150. package/export/test/data/redemption.js +1011 -0
  151. package/export/test/fixtures/bridge.js +54 -0
  152. package/export/test/fixtures/index.js +57 -0
  153. package/export/test/helpers/contract-test-helpers.js +18 -0
  154. package/export/test/integration/Slashing.test.js +279 -0
  155. package/export/test/integration/WalleCreation.test.js +66 -0
  156. package/export/test/integration/utils/ecdsa-wallet-registry.js +137 -0
  157. package/export/test/integration/utils/fixture.js +77 -0
  158. package/export/test/integration/utils/gas.js +36 -0
  159. package/export/test/integration/utils/random-beacon.js +26 -0
  160. package/export/test/integration/utils/staking.js +19 -0
  161. package/export/test/vault/DonationVault.test.js +202 -0
  162. package/export/test/vault/TBTCVault.Redemption.test.js +357 -0
  163. package/export/test/vault/TBTCVault.test.js +768 -0
  164. package/export/typechain/BTCUtils.js +2 -0
  165. package/export/typechain/Bank.js +2 -0
  166. package/export/typechain/BankStub.js +2 -0
  167. package/export/typechain/Bridge.js +2 -0
  168. package/export/typechain/BridgeState.js +2 -0
  169. package/export/typechain/BridgeStub.js +2 -0
  170. package/export/typechain/Deposit.js +2 -0
  171. package/export/typechain/DepositSweep.js +2 -0
  172. package/export/typechain/DonationVault.js +2 -0
  173. package/export/typechain/ERC165.js +2 -0
  174. package/export/typechain/ERC1967Proxy.js +2 -0
  175. package/export/typechain/ERC1967Upgrade.js +2 -0
  176. package/export/typechain/ERC20WithPermit.js +2 -0
  177. package/export/typechain/ERC721.js +2 -0
  178. package/export/typechain/EcdsaAuthorization.js +2 -0
  179. package/export/typechain/EcdsaDkg.js +2 -0
  180. package/export/typechain/EcdsaDkgValidator.js +2 -0
  181. package/export/typechain/EcdsaInactivity.js +2 -0
  182. package/export/typechain/Fraud.js +2 -0
  183. package/export/typechain/Governable.js +2 -0
  184. package/export/typechain/HeartbeatStub.js +2 -0
  185. package/export/typechain/IApplication.js +2 -0
  186. package/export/typechain/IApproveAndCall.js +2 -0
  187. package/export/typechain/IBeacon.js +2 -0
  188. package/export/typechain/IERC165.js +2 -0
  189. package/export/typechain/IERC1822Proxiable.js +2 -0
  190. package/export/typechain/IERC20.js +2 -0
  191. package/export/typechain/IERC20Metadata.js +2 -0
  192. package/export/typechain/IERC20WithPermit.js +2 -0
  193. package/export/typechain/IERC721.js +2 -0
  194. package/export/typechain/IERC721Metadata.js +2 -0
  195. package/export/typechain/IERC721Receiver.js +2 -0
  196. package/export/typechain/IRandomBeacon.js +2 -0
  197. package/export/typechain/IRandomBeaconConsumer.js +2 -0
  198. package/export/typechain/IReceiveApproval.js +2 -0
  199. package/export/typechain/IReceiveBalanceApproval.js +2 -0
  200. package/export/typechain/IRelay.js +2 -0
  201. package/export/typechain/IStaking.js +2 -0
  202. package/export/typechain/IVault.js +2 -0
  203. package/export/typechain/IWalletOwner.js +2 -0
  204. package/export/typechain/IWalletRegistry.js +2 -0
  205. package/export/typechain/Initializable.js +2 -0
  206. package/export/typechain/MisfundRecovery.js +2 -0
  207. package/export/typechain/MovingFunds.js +2 -0
  208. package/export/typechain/Ownable.js +2 -0
  209. package/export/typechain/Proxy.js +2 -0
  210. package/export/typechain/ProxyAdmin.js +2 -0
  211. package/export/typechain/ReceiveApprovalStub.js +2 -0
  212. package/export/typechain/Redemption.js +2 -0
  213. package/export/typechain/Reimbursable.js +2 -0
  214. package/export/typechain/ReimbursementPool.js +2 -0
  215. package/export/typechain/Rewards.js +2 -0
  216. package/export/typechain/SortitionPool.js +2 -0
  217. package/export/typechain/SortitionTree.js +2 -0
  218. package/export/typechain/TBTC.js +2 -0
  219. package/export/typechain/TBTCVault.js +2 -0
  220. package/export/typechain/TestERC20.js +2 -0
  221. package/export/typechain/TestERC721.js +2 -0
  222. package/export/typechain/TestEcdsaLib.js +2 -0
  223. package/export/typechain/TestRelay.js +2 -0
  224. package/export/typechain/TransparentUpgradeableProxy.js +2 -0
  225. package/export/typechain/VendingMachine.js +2 -0
  226. package/export/typechain/WalletRegistry.js +2 -0
  227. package/export/typechain/Wallets.js +2 -0
  228. package/export/typechain/common.js +2 -0
  229. package/export/typechain/factories/BTCUtils__factory.js +94 -0
  230. package/export/typechain/factories/BankStub__factory.js +586 -0
  231. package/export/typechain/factories/Bank__factory.js +573 -0
  232. package/export/typechain/factories/BridgeState__factory.js +257 -0
  233. package/export/typechain/factories/BridgeStub__factory.js +2912 -0
  234. package/export/typechain/factories/Bridge__factory.js +2526 -0
  235. package/export/typechain/factories/DepositSweep__factory.js +61 -0
  236. package/export/typechain/factories/Deposit__factory.js +103 -0
  237. package/export/typechain/factories/DonationVault__factory.js +139 -0
  238. package/export/typechain/factories/ERC165__factory.js +38 -0
  239. package/export/typechain/factories/ERC1967Proxy__factory.js +111 -0
  240. package/export/typechain/factories/ERC1967Upgrade__factory.js +64 -0
  241. package/export/typechain/factories/ERC20WithPermit__factory.js +524 -0
  242. package/export/typechain/factories/ERC721__factory.js +388 -0
  243. package/export/typechain/factories/EcdsaAuthorization__factory.js +211 -0
  244. package/export/typechain/factories/EcdsaDkgValidator__factory.js +441 -0
  245. package/export/typechain/factories/EcdsaDkg__factory.js +192 -0
  246. package/export/typechain/factories/EcdsaInactivity__factory.js +134 -0
  247. package/export/typechain/factories/Fraud__factory.js +117 -0
  248. package/export/typechain/factories/Governable__factory.js +64 -0
  249. package/export/typechain/factories/HeartbeatStub__factory.js +61 -0
  250. package/export/typechain/factories/IApplication__factory.js +152 -0
  251. package/export/typechain/factories/IApproveAndCall__factory.js +48 -0
  252. package/export/typechain/factories/IBeacon__factory.js +32 -0
  253. package/export/typechain/factories/IERC165__factory.js +38 -0
  254. package/export/typechain/factories/IERC1822Proxiable__factory.js +32 -0
  255. package/export/typechain/factories/IERC20Metadata__factory.js +241 -0
  256. package/export/typechain/factories/IERC20WithPermit__factory.js +389 -0
  257. package/export/typechain/factories/IERC20__factory.js +202 -0
  258. package/export/typechain/factories/IERC721Metadata__factory.js +349 -0
  259. package/export/typechain/factories/IERC721Receiver__factory.js +53 -0
  260. package/export/typechain/factories/IERC721__factory.js +304 -0
  261. package/export/typechain/factories/IRandomBeaconConsumer__factory.js +37 -0
  262. package/export/typechain/factories/IRandomBeacon__factory.js +32 -0
  263. package/export/typechain/factories/IReceiveApproval__factory.js +47 -0
  264. package/export/typechain/factories/IReceiveBalanceApproval__factory.js +42 -0
  265. package/export/typechain/factories/IRelay__factory.js +45 -0
  266. package/export/typechain/factories/IStaking__factory.js +722 -0
  267. package/export/typechain/factories/IVault__factory.js +60 -0
  268. package/export/typechain/factories/IWalletOwner__factory.js +65 -0
  269. package/export/typechain/factories/IWalletRegistry__factory.js +138 -0
  270. package/export/typechain/factories/Initializable__factory.js +32 -0
  271. package/export/typechain/factories/MisfundRecovery__factory.js +145 -0
  272. package/export/typechain/factories/MovingFunds__factory.js +169 -0
  273. package/export/typechain/factories/Ownable__factory.js +71 -0
  274. package/export/typechain/factories/ProxyAdmin__factory.js +191 -0
  275. package/export/typechain/factories/Proxy__factory.js +27 -0
  276. package/export/typechain/factories/ReceiveApprovalStub__factory.js +127 -0
  277. package/export/typechain/factories/Redemption__factory.js +123 -0
  278. package/export/typechain/factories/Reimbursable__factory.js +58 -0
  279. package/export/typechain/factories/ReimbursementPool__factory.js +350 -0
  280. package/export/typechain/factories/Rewards__factory.js +117 -0
  281. package/export/typechain/factories/SortitionPool__factory.js +610 -0
  282. package/export/typechain/factories/SortitionTree__factory.js +149 -0
  283. package/export/typechain/factories/TBTCVault__factory.js +480 -0
  284. package/export/typechain/factories/TBTC__factory.js +564 -0
  285. package/export/typechain/factories/TestERC20__factory.js +539 -0
  286. package/export/typechain/factories/TestERC721__factory.js +421 -0
  287. package/export/typechain/factories/TestEcdsaLib__factory.js +66 -0
  288. package/export/typechain/factories/TestRelay__factory.js +94 -0
  289. package/export/typechain/factories/TransparentUpgradeableProxy__factory.js +186 -0
  290. package/export/typechain/factories/VendingMachine__factory.js +549 -0
  291. package/export/typechain/factories/WalletRegistry__factory.js +1919 -0
  292. package/export/typechain/factories/Wallets__factory.js +143 -0
  293. package/export/typechain/index.js +132 -0
  294. package/export.json +15932 -503
  295. package/package.json +47 -26
  296. package/artifacts/solcInputs/7cc3eda3cb3ff2522d18b5e7b31ea228.json +0 -104
@@ -0,0 +1,524 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERC20WithPermit__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
7
+ const ethers_1 = require("ethers");
8
+ const _abi = [
9
+ {
10
+ inputs: [
11
+ {
12
+ internalType: "string",
13
+ name: "_name",
14
+ type: "string",
15
+ },
16
+ {
17
+ internalType: "string",
18
+ name: "_symbol",
19
+ type: "string",
20
+ },
21
+ ],
22
+ stateMutability: "nonpayable",
23
+ type: "constructor",
24
+ },
25
+ {
26
+ anonymous: false,
27
+ inputs: [
28
+ {
29
+ indexed: true,
30
+ internalType: "address",
31
+ name: "owner",
32
+ type: "address",
33
+ },
34
+ {
35
+ indexed: true,
36
+ internalType: "address",
37
+ name: "spender",
38
+ type: "address",
39
+ },
40
+ {
41
+ indexed: false,
42
+ internalType: "uint256",
43
+ name: "value",
44
+ type: "uint256",
45
+ },
46
+ ],
47
+ name: "Approval",
48
+ type: "event",
49
+ },
50
+ {
51
+ anonymous: false,
52
+ inputs: [
53
+ {
54
+ indexed: true,
55
+ internalType: "address",
56
+ name: "previousOwner",
57
+ type: "address",
58
+ },
59
+ {
60
+ indexed: true,
61
+ internalType: "address",
62
+ name: "newOwner",
63
+ type: "address",
64
+ },
65
+ ],
66
+ name: "OwnershipTransferred",
67
+ type: "event",
68
+ },
69
+ {
70
+ anonymous: false,
71
+ inputs: [
72
+ {
73
+ indexed: true,
74
+ internalType: "address",
75
+ name: "from",
76
+ type: "address",
77
+ },
78
+ {
79
+ indexed: true,
80
+ internalType: "address",
81
+ name: "to",
82
+ type: "address",
83
+ },
84
+ {
85
+ indexed: false,
86
+ internalType: "uint256",
87
+ name: "value",
88
+ type: "uint256",
89
+ },
90
+ ],
91
+ name: "Transfer",
92
+ type: "event",
93
+ },
94
+ {
95
+ inputs: [],
96
+ name: "DOMAIN_SEPARATOR",
97
+ outputs: [
98
+ {
99
+ internalType: "bytes32",
100
+ name: "",
101
+ type: "bytes32",
102
+ },
103
+ ],
104
+ stateMutability: "view",
105
+ type: "function",
106
+ },
107
+ {
108
+ inputs: [],
109
+ name: "PERMIT_TYPEHASH",
110
+ outputs: [
111
+ {
112
+ internalType: "bytes32",
113
+ name: "",
114
+ type: "bytes32",
115
+ },
116
+ ],
117
+ stateMutability: "view",
118
+ type: "function",
119
+ },
120
+ {
121
+ inputs: [
122
+ {
123
+ internalType: "address",
124
+ name: "",
125
+ type: "address",
126
+ },
127
+ {
128
+ internalType: "address",
129
+ name: "",
130
+ type: "address",
131
+ },
132
+ ],
133
+ name: "allowance",
134
+ outputs: [
135
+ {
136
+ internalType: "uint256",
137
+ name: "",
138
+ type: "uint256",
139
+ },
140
+ ],
141
+ stateMutability: "view",
142
+ type: "function",
143
+ },
144
+ {
145
+ inputs: [
146
+ {
147
+ internalType: "address",
148
+ name: "spender",
149
+ type: "address",
150
+ },
151
+ {
152
+ internalType: "uint256",
153
+ name: "amount",
154
+ type: "uint256",
155
+ },
156
+ ],
157
+ name: "approve",
158
+ outputs: [
159
+ {
160
+ internalType: "bool",
161
+ name: "",
162
+ type: "bool",
163
+ },
164
+ ],
165
+ stateMutability: "nonpayable",
166
+ type: "function",
167
+ },
168
+ {
169
+ inputs: [
170
+ {
171
+ internalType: "address",
172
+ name: "spender",
173
+ type: "address",
174
+ },
175
+ {
176
+ internalType: "uint256",
177
+ name: "amount",
178
+ type: "uint256",
179
+ },
180
+ {
181
+ internalType: "bytes",
182
+ name: "extraData",
183
+ type: "bytes",
184
+ },
185
+ ],
186
+ name: "approveAndCall",
187
+ outputs: [
188
+ {
189
+ internalType: "bool",
190
+ name: "",
191
+ type: "bool",
192
+ },
193
+ ],
194
+ stateMutability: "nonpayable",
195
+ type: "function",
196
+ },
197
+ {
198
+ inputs: [
199
+ {
200
+ internalType: "address",
201
+ name: "",
202
+ type: "address",
203
+ },
204
+ ],
205
+ name: "balanceOf",
206
+ outputs: [
207
+ {
208
+ internalType: "uint256",
209
+ name: "",
210
+ type: "uint256",
211
+ },
212
+ ],
213
+ stateMutability: "view",
214
+ type: "function",
215
+ },
216
+ {
217
+ inputs: [
218
+ {
219
+ internalType: "uint256",
220
+ name: "amount",
221
+ type: "uint256",
222
+ },
223
+ ],
224
+ name: "burn",
225
+ outputs: [],
226
+ stateMutability: "nonpayable",
227
+ type: "function",
228
+ },
229
+ {
230
+ inputs: [
231
+ {
232
+ internalType: "address",
233
+ name: "account",
234
+ type: "address",
235
+ },
236
+ {
237
+ internalType: "uint256",
238
+ name: "amount",
239
+ type: "uint256",
240
+ },
241
+ ],
242
+ name: "burnFrom",
243
+ outputs: [],
244
+ stateMutability: "nonpayable",
245
+ type: "function",
246
+ },
247
+ {
248
+ inputs: [],
249
+ name: "cachedChainId",
250
+ outputs: [
251
+ {
252
+ internalType: "uint256",
253
+ name: "",
254
+ type: "uint256",
255
+ },
256
+ ],
257
+ stateMutability: "view",
258
+ type: "function",
259
+ },
260
+ {
261
+ inputs: [],
262
+ name: "cachedDomainSeparator",
263
+ outputs: [
264
+ {
265
+ internalType: "bytes32",
266
+ name: "",
267
+ type: "bytes32",
268
+ },
269
+ ],
270
+ stateMutability: "view",
271
+ type: "function",
272
+ },
273
+ {
274
+ inputs: [],
275
+ name: "decimals",
276
+ outputs: [
277
+ {
278
+ internalType: "uint8",
279
+ name: "",
280
+ type: "uint8",
281
+ },
282
+ ],
283
+ stateMutability: "view",
284
+ type: "function",
285
+ },
286
+ {
287
+ inputs: [
288
+ {
289
+ internalType: "address",
290
+ name: "recipient",
291
+ type: "address",
292
+ },
293
+ {
294
+ internalType: "uint256",
295
+ name: "amount",
296
+ type: "uint256",
297
+ },
298
+ ],
299
+ name: "mint",
300
+ outputs: [],
301
+ stateMutability: "nonpayable",
302
+ type: "function",
303
+ },
304
+ {
305
+ inputs: [],
306
+ name: "name",
307
+ outputs: [
308
+ {
309
+ internalType: "string",
310
+ name: "",
311
+ type: "string",
312
+ },
313
+ ],
314
+ stateMutability: "view",
315
+ type: "function",
316
+ },
317
+ {
318
+ inputs: [
319
+ {
320
+ internalType: "address",
321
+ name: "",
322
+ type: "address",
323
+ },
324
+ ],
325
+ name: "nonce",
326
+ outputs: [
327
+ {
328
+ internalType: "uint256",
329
+ name: "",
330
+ type: "uint256",
331
+ },
332
+ ],
333
+ stateMutability: "view",
334
+ type: "function",
335
+ },
336
+ {
337
+ inputs: [],
338
+ name: "owner",
339
+ outputs: [
340
+ {
341
+ internalType: "address",
342
+ name: "",
343
+ type: "address",
344
+ },
345
+ ],
346
+ stateMutability: "view",
347
+ type: "function",
348
+ },
349
+ {
350
+ inputs: [
351
+ {
352
+ internalType: "address",
353
+ name: "owner",
354
+ type: "address",
355
+ },
356
+ {
357
+ internalType: "address",
358
+ name: "spender",
359
+ type: "address",
360
+ },
361
+ {
362
+ internalType: "uint256",
363
+ name: "amount",
364
+ type: "uint256",
365
+ },
366
+ {
367
+ internalType: "uint256",
368
+ name: "deadline",
369
+ type: "uint256",
370
+ },
371
+ {
372
+ internalType: "uint8",
373
+ name: "v",
374
+ type: "uint8",
375
+ },
376
+ {
377
+ internalType: "bytes32",
378
+ name: "r",
379
+ type: "bytes32",
380
+ },
381
+ {
382
+ internalType: "bytes32",
383
+ name: "s",
384
+ type: "bytes32",
385
+ },
386
+ ],
387
+ name: "permit",
388
+ outputs: [],
389
+ stateMutability: "nonpayable",
390
+ type: "function",
391
+ },
392
+ {
393
+ inputs: [],
394
+ name: "renounceOwnership",
395
+ outputs: [],
396
+ stateMutability: "nonpayable",
397
+ type: "function",
398
+ },
399
+ {
400
+ inputs: [],
401
+ name: "symbol",
402
+ outputs: [
403
+ {
404
+ internalType: "string",
405
+ name: "",
406
+ type: "string",
407
+ },
408
+ ],
409
+ stateMutability: "view",
410
+ type: "function",
411
+ },
412
+ {
413
+ inputs: [],
414
+ name: "totalSupply",
415
+ outputs: [
416
+ {
417
+ internalType: "uint256",
418
+ name: "",
419
+ type: "uint256",
420
+ },
421
+ ],
422
+ stateMutability: "view",
423
+ type: "function",
424
+ },
425
+ {
426
+ inputs: [
427
+ {
428
+ internalType: "address",
429
+ name: "recipient",
430
+ type: "address",
431
+ },
432
+ {
433
+ internalType: "uint256",
434
+ name: "amount",
435
+ type: "uint256",
436
+ },
437
+ ],
438
+ name: "transfer",
439
+ outputs: [
440
+ {
441
+ internalType: "bool",
442
+ name: "",
443
+ type: "bool",
444
+ },
445
+ ],
446
+ stateMutability: "nonpayable",
447
+ type: "function",
448
+ },
449
+ {
450
+ inputs: [
451
+ {
452
+ internalType: "address",
453
+ name: "spender",
454
+ type: "address",
455
+ },
456
+ {
457
+ internalType: "address",
458
+ name: "recipient",
459
+ type: "address",
460
+ },
461
+ {
462
+ internalType: "uint256",
463
+ name: "amount",
464
+ type: "uint256",
465
+ },
466
+ ],
467
+ name: "transferFrom",
468
+ outputs: [
469
+ {
470
+ internalType: "bool",
471
+ name: "",
472
+ type: "bool",
473
+ },
474
+ ],
475
+ stateMutability: "nonpayable",
476
+ type: "function",
477
+ },
478
+ {
479
+ inputs: [
480
+ {
481
+ internalType: "address",
482
+ name: "newOwner",
483
+ type: "address",
484
+ },
485
+ ],
486
+ name: "transferOwnership",
487
+ outputs: [],
488
+ stateMutability: "nonpayable",
489
+ type: "function",
490
+ },
491
+ ];
492
+ const _bytecode = "0x60c06040523480156200001157600080fd5b5060405162001a5638038062001a568339810160408190526200003491620002f9565b6200003f3362000085565b81516200005490600590602085019062000186565b5080516200006a90600690602084019062000186565b504660805262000079620000d5565b60a05250620004449050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6005604051620001099190620003a0565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b828054620001949062000363565b90600052602060002090601f016020900481019282620001b8576000855562000203565b82601f10620001d357805160ff191683800117855562000203565b8280016001018555821562000203579182015b8281111562000203578251825591602001919060010190620001e6565b506200021192915062000215565b5090565b5b8082111562000211576000815560010162000216565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200025457600080fd5b81516001600160401b03808211156200027157620002716200022c565b604051601f8301601f19908116603f011681019082821181831017156200029c576200029c6200022c565b81604052838152602092508683858801011115620002b957600080fd5b600091505b83821015620002dd5785820183015181830184015290820190620002be565b83821115620002ef5760008385830101525b9695505050505050565b600080604083850312156200030d57600080fd5b82516001600160401b03808211156200032557600080fd5b620003338683870162000242565b935060208501519150808211156200034a57600080fd5b50620003598582860162000242565b9150509250929050565b600181811c908216806200037857607f821691505b602082108114156200039a57634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680620003bd57607f831692505b6020808410821415620003de57634e487b7160e01b86526022600452602486fd5b818015620003f55760018114620004075762000436565b60ff1986168952848901965062000436565b60008a81526020902060005b868110156200042e5781548b82015290850190830162000413565b505084890196505b509498975050505050505050565b60805160a0516115de6200047860003960008181610320015261054b0152600081816102b0015261052201526115de6000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063715018a6116100d8578063a9059cbb1161008c578063d505accf11610066578063d505accf14610355578063dd62ed3e14610368578063f2fde38b1461039357600080fd5b8063a9059cbb14610308578063b4f94b2e1461031b578063cae9ca511461034257600080fd5b806379cc6790116100bd57806379cc6790146102d25780638da5cb5b146102e557806395d89b411461030057600080fd5b8063715018a6146102a3578063771da5c5146102ab57600080fd5b8063313ce5671161013a57806342966c681161011457806342966c681461025057806370a082311461026357806370ae92d21461028357600080fd5b8063313ce567146102195780633644e5151461023357806340c10f191461023b57600080fd5b806318160ddd1161016b57806318160ddd146101c857806323b872dd146101df57806330adf81f146101f257600080fd5b806306fdde0314610187578063095ea7b3146101a5575b600080fd5b61018f6103a6565b60405161019c91906111e5565b60405180910390f35b6101b86101b3366004611214565b610434565b604051901515815260200161019c565b6101d160045481565b60405190815260200161019c565b6101b86101ed36600461123e565b61044a565b6101d17f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b610221601281565b60405160ff909116815260200161019c565b6101d161051e565b61024e610249366004611214565b61057a565b005b61024e61025e36600461127a565b6106b3565b6101d1610271366004611293565b60016020526000908152604090205481565b6101d1610291366004611293565b60036020526000908152604090205481565b61024e6106c0565b6101d17f000000000000000000000000000000000000000000000000000000000000000081565b61024e6102e0366004611214565b610726565b6000546040516001600160a01b03909116815260200161019c565b61018f6107c1565b6101b8610316366004611214565b6107ce565b6101d17f000000000000000000000000000000000000000000000000000000000000000081565b6101b86103503660046112c4565b6107db565b61024e61036336600461138f565b61087c565b6101d1610376366004611402565b600260209081526000928352604080842090915290825290205481565b61024e6103a1366004611293565b610b8c565b600580546103b390611435565b80601f01602080910402602001604051908101604052809291908181526020018280546103df90611435565b801561042c5780601f106104015761010080835404028352916020019161042c565b820191906000526020600020905b81548152906001019060200180831161040f57829003601f168201915b505050505081565b6000610441338484610c6b565b50600192915050565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019811461050657828110156104f25760405162461bcd60e51b815260206004820152602160248201527f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61050685336105018685611486565b610c6b565b610511858585610d79565b60019150505b9392505050565b60007f000000000000000000000000000000000000000000000000000000000000000046141561056d57507f000000000000000000000000000000000000000000000000000000000000000090565b610575610f81565b905090565b6000546001600160a01b031633146105d45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e9565b6001600160a01b03821661062a5760405162461bcd60e51b815260206004820152601860248201527f4d696e7420746f20746865207a65726f2061646472657373000000000000000060448201526064016104e9565b806004600082825461063c919061149d565b90915550506001600160a01b0382166000908152600160205260408120805483929061066990849061149d565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6106bd338261104c565b50565b6000546001600160a01b0316331461071a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e9565b6107246000611130565b565b6001600160a01b038216600090815260026020908152604080832033845290915290205460001981146107b257818110156107a35760405162461bcd60e51b815260206004820152601d60248201527f4275726e20616d6f756e74206578636565647320616c6c6f77616e636500000060448201526064016104e9565b6107b283336105018585611486565b6107bc838361104c565b505050565b600680546103b390611435565b6000610441338484610d79565b60006107e78484610434565b15610872576040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081526001600160a01b03851690638f4ffcb1906108379033908790309088906004016114b5565b600060405180830381600087803b15801561085157600080fd5b505af1158015610865573d6000803e3d6000fd5b5050505060019050610517565b5060009392505050565b428410156108cc5760405162461bcd60e51b815260206004820152601260248201527f5065726d697373696f6e2065787069726564000000000000000000000000000060448201526064016104e9565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a081111561093c5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202773272076616c7565000000000060448201526064016104e9565b8260ff16601b148061095157508260ff16601c145b61099d5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202776272076616c7565000000000060448201526064016104e9565b60006109a761051e565b6001600160a01b038916600090815260036020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c929091906109f5836114f1565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001610a899291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610af4573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610b2a5750886001600160a01b0316816001600160a01b0316145b610b765760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e617475726500000000000000000000000000000060448201526064016104e9565b610b81898989610c6b565b505050505050505050565b6000546001600160a01b03163314610be65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e9565b6001600160a01b038116610c625760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104e9565b6106bd81611130565b6001600160a01b038316610cc15760405162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f206164647265737300000060448201526064016104e9565b6001600160a01b038216610d175760405162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f2061646472657373000000000060448201526064016104e9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610dcf5760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373000060448201526064016104e9565b6001600160a01b038216610e255760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f20616464726573730000000060448201526064016104e9565b6001600160a01b038216301415610e7e5760405162461bcd60e51b815260206004820152601d60248201527f5472616e7366657220746f2074686520746f6b656e206164647265737300000060448201526064016104e9565b6001600160a01b03831660009081526001602052604090205481811015610ee75760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e63650060448201526064016104e9565b610ef18282611486565b6001600160a01b038086166000908152600160205260408082209390935590851681529081208054849290610f2790849061149d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f7391815260200190565b60405180910390a350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6005604051610fb3919061150c565b604080519182900382208282018252600183527f31000000000000000000000000000000000000000000000000000000000000006020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b038216600090815260016020526040902054818110156110b55760405162461bcd60e51b815260206004820152601b60248201527f4275726e20616d6f756e7420657863656564732062616c616e6365000000000060448201526064016104e9565b6110bf8282611486565b6001600160a01b038416600090815260016020526040812091909155600480548492906110ed908490611486565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d6c565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000815180845260005b818110156111be576020818501810151868301820152016111a2565b818111156111d0576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006105176020830184611198565b80356001600160a01b038116811461120f57600080fd5b919050565b6000806040838503121561122757600080fd5b611230836111f8565b946020939093013593505050565b60008060006060848603121561125357600080fd5b61125c846111f8565b925061126a602085016111f8565b9150604084013590509250925092565b60006020828403121561128c57600080fd5b5035919050565b6000602082840312156112a557600080fd5b610517826111f8565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156112d957600080fd5b6112e2846111f8565b925060208401359150604084013567ffffffffffffffff8082111561130657600080fd5b818601915086601f83011261131a57600080fd5b81358181111561132c5761132c6112ae565b604051601f8201601f19908116603f01168101908382118183101715611354576113546112ae565b8160405282815289602084870101111561136d57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600080600080600080600060e0888a0312156113aa57600080fd5b6113b3886111f8565b96506113c1602089016111f8565b95506040880135945060608801359350608088013560ff811681146113e557600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561141557600080fd5b61141e836111f8565b915061142c602084016111f8565b90509250929050565b600181811c9082168061144957607f821691505b6020821081141561146a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561149857611498611470565b500390565b600082198211156114b0576114b0611470565b500190565b60006001600160a01b038087168352856020840152808516604084015250608060608301526114e76080830184611198565b9695505050505050565b600060001982141561150557611505611470565b5060010190565b600080835481600182811c91508083168061152857607f831692505b602080841082141561154857634e487b7160e01b86526022600452602486fd5b81801561155c576001811461156d5761159a565b60ff1986168952848901965061159a565b60008a81526020902060005b868110156115925781548b820152908501908301611579565b505084890196505b50949897505050505050505056fea2646970667358221220e755effa5fc266eba3a4cae0279d00ecf5ac1f749434eb2dd5bca191430a81fa64736f6c63430008090033";
493
+ const isSuperArgs = (xs) => xs.length > 1;
494
+ class ERC20WithPermit__factory extends ethers_1.ContractFactory {
495
+ constructor(...args) {
496
+ if (isSuperArgs(args)) {
497
+ super(...args);
498
+ }
499
+ else {
500
+ super(_abi, _bytecode, args[0]);
501
+ }
502
+ }
503
+ deploy(_name, _symbol, overrides) {
504
+ return super.deploy(_name, _symbol, overrides || {});
505
+ }
506
+ getDeployTransaction(_name, _symbol, overrides) {
507
+ return super.getDeployTransaction(_name, _symbol, overrides || {});
508
+ }
509
+ attach(address) {
510
+ return super.attach(address);
511
+ }
512
+ connect(signer) {
513
+ return super.connect(signer);
514
+ }
515
+ static createInterface() {
516
+ return new ethers_1.utils.Interface(_abi);
517
+ }
518
+ static connect(address, signerOrProvider) {
519
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
520
+ }
521
+ }
522
+ exports.ERC20WithPermit__factory = ERC20WithPermit__factory;
523
+ ERC20WithPermit__factory.bytecode = _bytecode;
524
+ ERC20WithPermit__factory.abi = _abi;