@arcblock/contracts 0.2.5
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.
- package/README.md +98 -0
- package/lib/abi/ERC20Rollup.json +569 -0
- package/lib/abi/ERC20RollupFactory.json +141 -0
- package/lib/abi/ERC20Token.json +286 -0
- package/lib/abi/MultiSigVault.json +358 -0
- package/lib/abi/MultiSigVaultFactory.json +126 -0
- package/lib/abi/SignerManager.json +362 -0
- package/lib/abi/SignerManagerFactory.json +136 -0
- package/lib/error.js +77 -0
- package/lib/index.js +35 -0
- package/package.json +53 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "SignerManagerFactory",
|
|
4
|
+
"sourceName": "src/SignerManagerFactory.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [
|
|
8
|
+
{
|
|
9
|
+
"internalType": "address",
|
|
10
|
+
"name": "_implementation",
|
|
11
|
+
"type": "address"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"stateMutability": "nonpayable",
|
|
15
|
+
"type": "constructor"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"anonymous": false,
|
|
19
|
+
"inputs": [
|
|
20
|
+
{
|
|
21
|
+
"indexed": true,
|
|
22
|
+
"internalType": "address",
|
|
23
|
+
"name": "previousOwner",
|
|
24
|
+
"type": "address"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"indexed": true,
|
|
28
|
+
"internalType": "address",
|
|
29
|
+
"name": "newOwner",
|
|
30
|
+
"type": "address"
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"name": "OwnershipTransferred",
|
|
34
|
+
"type": "event"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"anonymous": false,
|
|
38
|
+
"inputs": [
|
|
39
|
+
{
|
|
40
|
+
"indexed": false,
|
|
41
|
+
"internalType": "address",
|
|
42
|
+
"name": "managerAddress",
|
|
43
|
+
"type": "address"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"name": "SignerManagerCreated",
|
|
47
|
+
"type": "event"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"inputs": [
|
|
51
|
+
{
|
|
52
|
+
"internalType": "uint256",
|
|
53
|
+
"name": "chainId",
|
|
54
|
+
"type": "uint256"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"internalType": "uint8",
|
|
58
|
+
"name": "threshold",
|
|
59
|
+
"type": "uint8"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"internalType": "address[]",
|
|
63
|
+
"name": "seedSigners",
|
|
64
|
+
"type": "address[]"
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"name": "create",
|
|
68
|
+
"outputs": [],
|
|
69
|
+
"stateMutability": "nonpayable",
|
|
70
|
+
"type": "function"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"inputs": [],
|
|
74
|
+
"name": "implementation",
|
|
75
|
+
"outputs": [
|
|
76
|
+
{
|
|
77
|
+
"internalType": "address",
|
|
78
|
+
"name": "",
|
|
79
|
+
"type": "address"
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"stateMutability": "view",
|
|
83
|
+
"type": "function"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"inputs": [],
|
|
87
|
+
"name": "owner",
|
|
88
|
+
"outputs": [
|
|
89
|
+
{
|
|
90
|
+
"internalType": "address",
|
|
91
|
+
"name": "",
|
|
92
|
+
"type": "address"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"stateMutability": "view",
|
|
96
|
+
"type": "function"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"inputs": [],
|
|
100
|
+
"name": "renounceOwnership",
|
|
101
|
+
"outputs": [],
|
|
102
|
+
"stateMutability": "nonpayable",
|
|
103
|
+
"type": "function"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"inputs": [
|
|
107
|
+
{
|
|
108
|
+
"internalType": "address",
|
|
109
|
+
"name": "_implementation",
|
|
110
|
+
"type": "address"
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"name": "setImplementation",
|
|
114
|
+
"outputs": [],
|
|
115
|
+
"stateMutability": "nonpayable",
|
|
116
|
+
"type": "function"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"inputs": [
|
|
120
|
+
{
|
|
121
|
+
"internalType": "address",
|
|
122
|
+
"name": "newOwner",
|
|
123
|
+
"type": "address"
|
|
124
|
+
}
|
|
125
|
+
],
|
|
126
|
+
"name": "transferOwnership",
|
|
127
|
+
"outputs": [],
|
|
128
|
+
"stateMutability": "nonpayable",
|
|
129
|
+
"type": "function"
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"bytecode": "0x60806040523480156200001157600080fd5b5060405162000f4c38038062000f4c833981810160405281019062000037919062000274565b620000576200004b6200013b60201b60201c565b6200014360201b60201c565b6200008b7fc6dbd862cb0c198d80cfddb2be781cdd7a3acf113cc17986023bdae88902671260001b6200020760201b60201c565b620000bf7fe2085da19fdd4cd08b0713c5e4d4ea2ed4d91b8f465128ad2cf6ec13cb134c1660001b6200020760201b60201c565b620000f37f8e4f9bd63d7cba17321eeacda9e37c4b03bbac422df47fdb01d63190497c7a2a60001b6200020760201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620002a6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b50565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200023c826200020f565b9050919050565b6200024e816200022f565b81146200025a57600080fd5b50565b6000815190506200026e8162000243565b92915050565b6000602082840312156200028d576200028c6200020a565b5b60006200029d848285016200025d565b91505092915050565b610c9680620002b66000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80633f2a0274146100675780635c60da1b14610083578063715018a6146100a15780638da5cb5b146100ab578063d784d426146100c9578063f2fde38b146100e5575b600080fd5b610081600480360381019061007c9190610905565b610101565b005b61008b61030e565b6040516100989190610983565b60405180910390f35b6100a9610334565b005b6100b3610348565b6040516100c09190610983565b60405180910390f35b6100e360048036038101906100de919061099e565b610371565b005b6100ff60048036038101906100fa919061099e565b610441565b005b61012c7e59b7855796bc0021cccbd239ba266fd7036157bc3414d4678ce49908a9f81460001b6104c4565b6101587f4c58634a69f99ad1901e9a6c6a308802b28d1bb7536a67a8f91b2ae97626654660001b6104c4565b6101847f680852a880b7f47847c600d3aaaf5cd770e2449dda503b78f642b62ebdd23c5260001b6104c4565b60006101b1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166104c7565b90506101df7f1ee6fb4510074c95d34d751456faefb0c8ee1d49740a76dd64a369d654239e6260001b6104c4565b61020a7e5e44a0e9f8eaa9129549683700091fb8d3865d277aa214070f62a5c8fbfb9b60001b6104c4565b8073ffffffffffffffffffffffffffffffffffffffff1663843a83fd8585856040518463ffffffff1660e01b815260040161024793929190610aa7565b600060405180830381600087803b15801561026157600080fd5b505af1158015610275573d6000803e3d6000fd5b505050506102a57f25f7eb2461e4eb0da90c81870e0d28b465c5f8f3b308550caee74c0973e6512e60001b6104c4565b6102d17f7e596587cbea5e609ca39ed938c7b806bc3a4d7ac07633fb2ec2a4742256c33e60001b6104c4565b7fe0b9d117117657bf1a7a08fd398c153a22af76854c65ff0684b9558938b2c597816040516103009190610983565b60405180910390a150505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61033c610581565b61034660006105ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610379610581565b6103a57f51d2aa107272cdfdff4780006c30f55c42865ca20dbe2550176c261a69f58fd660001b6104c4565b6103d17f39305fdcec9cc7a0cdb85fd4072aa04dceddcdce8d2a5e6cbe26a84da80a692e60001b6104c4565b6103fd7f95e62f4f9eef2b2f891aec13f4ac69319b635707bf57ac33bac673b8b9458bb960001b6104c4565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610449610581565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104af90610b68565b60405180910390fd5b6104c1816105ff565b50565b50565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f09050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361057c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057390610bd4565b60405180910390fd5b919050565b6105896106c3565b73ffffffffffffffffffffffffffffffffffffffff166105a7610348565b73ffffffffffffffffffffffffffffffffffffffff16146105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490610c40565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6106f2816106df565b81146106fd57600080fd5b50565b60008135905061070f816106e9565b92915050565b600060ff82169050919050565b61072b81610715565b811461073657600080fd5b50565b60008135905061074881610722565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61079c82610753565b810181811067ffffffffffffffff821117156107bb576107ba610764565b5b80604052505050565b60006107ce6106cb565b90506107da8282610793565b919050565b600067ffffffffffffffff8211156107fa576107f9610764565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061083b82610810565b9050919050565b61084b81610830565b811461085657600080fd5b50565b60008135905061086881610842565b92915050565b600061088161087c846107df565b6107c4565b905080838252602082019050602084028301858111156108a4576108a361080b565b5b835b818110156108cd57806108b98882610859565b8452602084019350506020810190506108a6565b5050509392505050565b600082601f8301126108ec576108eb61074e565b5b81356108fc84826020860161086e565b91505092915050565b60008060006060848603121561091e5761091d6106d5565b5b600061092c86828701610700565b935050602061093d86828701610739565b925050604084013567ffffffffffffffff81111561095e5761095d6106da565b5b61096a868287016108d7565b9150509250925092565b61097d81610830565b82525050565b60006020820190506109986000830184610974565b92915050565b6000602082840312156109b4576109b36106d5565b5b60006109c284828501610859565b91505092915050565b6109d4816106df565b82525050565b6109e381610715565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610a1e81610830565b82525050565b6000610a308383610a15565b60208301905092915050565b6000602082019050919050565b6000610a54826109e9565b610a5e81856109f4565b9350610a6983610a05565b8060005b83811015610a9a578151610a818882610a24565b9750610a8c83610a3c565b925050600181019050610a6d565b5085935050505092915050565b6000606082019050610abc60008301866109cb565b610ac960208301856109da565b8181036040830152610adb8184610a49565b9050949350505050565b600082825260208201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610b52602683610ae5565b9150610b5d82610af6565b604082019050919050565b60006020820190508181036000830152610b8181610b45565b9050919050565b7f455243313136373a20637265617465206661696c656400000000000000000000600082015250565b6000610bbe601683610ae5565b9150610bc982610b88565b602082019050919050565b60006020820190508181036000830152610bed81610bb1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610c2a602083610ae5565b9150610c3582610bf4565b602082019050919050565b60006020820190508181036000830152610c5981610c1d565b905091905056fea2646970667358221220ad741c559892f95aca04cbbf300da6f0bb3c6dc992cea8e0fe41652d6b7eb3ae64736f6c63430008110033",
|
|
133
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c80633f2a0274146100675780635c60da1b14610083578063715018a6146100a15780638da5cb5b146100ab578063d784d426146100c9578063f2fde38b146100e5575b600080fd5b610081600480360381019061007c9190610905565b610101565b005b61008b61030e565b6040516100989190610983565b60405180910390f35b6100a9610334565b005b6100b3610348565b6040516100c09190610983565b60405180910390f35b6100e360048036038101906100de919061099e565b610371565b005b6100ff60048036038101906100fa919061099e565b610441565b005b61012c7e59b7855796bc0021cccbd239ba266fd7036157bc3414d4678ce49908a9f81460001b6104c4565b6101587f4c58634a69f99ad1901e9a6c6a308802b28d1bb7536a67a8f91b2ae97626654660001b6104c4565b6101847f680852a880b7f47847c600d3aaaf5cd770e2449dda503b78f642b62ebdd23c5260001b6104c4565b60006101b1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166104c7565b90506101df7f1ee6fb4510074c95d34d751456faefb0c8ee1d49740a76dd64a369d654239e6260001b6104c4565b61020a7e5e44a0e9f8eaa9129549683700091fb8d3865d277aa214070f62a5c8fbfb9b60001b6104c4565b8073ffffffffffffffffffffffffffffffffffffffff1663843a83fd8585856040518463ffffffff1660e01b815260040161024793929190610aa7565b600060405180830381600087803b15801561026157600080fd5b505af1158015610275573d6000803e3d6000fd5b505050506102a57f25f7eb2461e4eb0da90c81870e0d28b465c5f8f3b308550caee74c0973e6512e60001b6104c4565b6102d17f7e596587cbea5e609ca39ed938c7b806bc3a4d7ac07633fb2ec2a4742256c33e60001b6104c4565b7fe0b9d117117657bf1a7a08fd398c153a22af76854c65ff0684b9558938b2c597816040516103009190610983565b60405180910390a150505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61033c610581565b61034660006105ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610379610581565b6103a57f51d2aa107272cdfdff4780006c30f55c42865ca20dbe2550176c261a69f58fd660001b6104c4565b6103d17f39305fdcec9cc7a0cdb85fd4072aa04dceddcdce8d2a5e6cbe26a84da80a692e60001b6104c4565b6103fd7f95e62f4f9eef2b2f891aec13f4ac69319b635707bf57ac33bac673b8b9458bb960001b6104c4565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610449610581565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104af90610b68565b60405180910390fd5b6104c1816105ff565b50565b50565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f09050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361057c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057390610bd4565b60405180910390fd5b919050565b6105896106c3565b73ffffffffffffffffffffffffffffffffffffffff166105a7610348565b73ffffffffffffffffffffffffffffffffffffffff16146105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490610c40565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6106f2816106df565b81146106fd57600080fd5b50565b60008135905061070f816106e9565b92915050565b600060ff82169050919050565b61072b81610715565b811461073657600080fd5b50565b60008135905061074881610722565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61079c82610753565b810181811067ffffffffffffffff821117156107bb576107ba610764565b5b80604052505050565b60006107ce6106cb565b90506107da8282610793565b919050565b600067ffffffffffffffff8211156107fa576107f9610764565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061083b82610810565b9050919050565b61084b81610830565b811461085657600080fd5b50565b60008135905061086881610842565b92915050565b600061088161087c846107df565b6107c4565b905080838252602082019050602084028301858111156108a4576108a361080b565b5b835b818110156108cd57806108b98882610859565b8452602084019350506020810190506108a6565b5050509392505050565b600082601f8301126108ec576108eb61074e565b5b81356108fc84826020860161086e565b91505092915050565b60008060006060848603121561091e5761091d6106d5565b5b600061092c86828701610700565b935050602061093d86828701610739565b925050604084013567ffffffffffffffff81111561095e5761095d6106da565b5b61096a868287016108d7565b9150509250925092565b61097d81610830565b82525050565b60006020820190506109986000830184610974565b92915050565b6000602082840312156109b4576109b36106d5565b5b60006109c284828501610859565b91505092915050565b6109d4816106df565b82525050565b6109e381610715565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610a1e81610830565b82525050565b6000610a308383610a15565b60208301905092915050565b6000602082019050919050565b6000610a54826109e9565b610a5e81856109f4565b9350610a6983610a05565b8060005b83811015610a9a578151610a818882610a24565b9750610a8c83610a3c565b925050600181019050610a6d565b5085935050505092915050565b6000606082019050610abc60008301866109cb565b610ac960208301856109da565b8181036040830152610adb8184610a49565b9050949350505050565b600082825260208201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610b52602683610ae5565b9150610b5d82610af6565b604082019050919050565b60006020820190508181036000830152610b8181610b45565b9050919050565b7f455243313136373a20637265617465206661696c656400000000000000000000600082015250565b6000610bbe601683610ae5565b9150610bc982610b88565b602082019050919050565b60006020820190508181036000830152610bed81610bb1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610c2a602083610ae5565b9150610c3582610bf4565b602082019050919050565b60006020820190508181036000830152610c5981610c1d565b905091905056fea2646970667358221220ad741c559892f95aca04cbbf300da6f0bb3c6dc992cea8e0fe41652d6b7eb3ae64736f6c63430008110033",
|
|
134
|
+
"linkReferences": {},
|
|
135
|
+
"deployedLinkReferences": {}
|
|
136
|
+
}
|
package/lib/error.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
module.exports = Object.freeze({
|
|
2
|
+
E100: 'contract not initialized',
|
|
3
|
+
|
|
4
|
+
// signer-manager errors
|
|
5
|
+
E101: 'threshold must be greater than 0',
|
|
6
|
+
E102: 'seedSigners can not be empty',
|
|
7
|
+
E103: 'threshold must be greater thant seedSigners count',
|
|
8
|
+
E104: 'signer address can not be empty',
|
|
9
|
+
E105: 'signer address can not be contract',
|
|
10
|
+
E106: 'signer to be added should not sign',
|
|
11
|
+
E107: 'signer to be added already exists',
|
|
12
|
+
E108: 'signer to be removed should not sign',
|
|
13
|
+
E109: 'seed signer can not be removed',
|
|
14
|
+
E110: 'signer to be removed does not exist',
|
|
15
|
+
E111: 'nonce mismatch in multisig',
|
|
16
|
+
E112: 'signature count must be greater than threshold',
|
|
17
|
+
E113: 'signature count must equal to signer count',
|
|
18
|
+
E114: 'seed signer not signed',
|
|
19
|
+
E115: 'signer not in whitelist',
|
|
20
|
+
E116: 'signer duplicate',
|
|
21
|
+
E117: 'signature invalid',
|
|
22
|
+
E118: 'seedSigner address duplicate',
|
|
23
|
+
E119: 'chainId invalid',
|
|
24
|
+
E120: 'sender not in whitelist',
|
|
25
|
+
|
|
26
|
+
// erc20-rollup errors
|
|
27
|
+
E201: 'tokenAddr is empty',
|
|
28
|
+
E202: 'vaultAddr is empty',
|
|
29
|
+
E203: 'signerManagerAddr is not contract',
|
|
30
|
+
E204: 'previousContract is not contract',
|
|
31
|
+
E205: 'previousContract is not paused',
|
|
32
|
+
E206: 'previousContract is already migrated',
|
|
33
|
+
E207: 'previousContract has different tokenAddress',
|
|
34
|
+
E208: 'previousContract has different vaultAddress',
|
|
35
|
+
E209: 'previousContract has different signerManager',
|
|
36
|
+
E210: 'blockHeight mismatch',
|
|
37
|
+
E211: 'blockHash is empty',
|
|
38
|
+
E212: 'merkleRoot is empty',
|
|
39
|
+
E213: 'txsHash is empty',
|
|
40
|
+
E214: 'blockHash check failed: first',
|
|
41
|
+
E215: 'blockHash check failed',
|
|
42
|
+
E217: 'to is empty',
|
|
43
|
+
E218: 'to and sender mismatch',
|
|
44
|
+
E219: 'amount is empty',
|
|
45
|
+
E220: 'insufficient allowance from vault',
|
|
46
|
+
E221: 'can not migrate contract to black hole',
|
|
47
|
+
E222: 'can not migrate contract to self',
|
|
48
|
+
E223: 'can not migrate contract to previous',
|
|
49
|
+
E224: 'can not migrate to non-contract address',
|
|
50
|
+
E225: 'next contract is not paused',
|
|
51
|
+
E226: 'next contract is not linked with contract',
|
|
52
|
+
E227: 'next contract is already migrated',
|
|
53
|
+
E228: 'next contract blockHeight does not match',
|
|
54
|
+
E229: 'next contract migratedSince does not match',
|
|
55
|
+
E230: 'next contract tokenAddress does not match',
|
|
56
|
+
E231: 'next contract vaultAddress does not match',
|
|
57
|
+
E232: 'next contract signerManager does not match',
|
|
58
|
+
E233: 'can not migrate vault to black hole',
|
|
59
|
+
E234: 'can not migrate vault to self',
|
|
60
|
+
E235: 'contract is not paused',
|
|
61
|
+
E236: 'contract is paused',
|
|
62
|
+
E237: 'contract is migrated',
|
|
63
|
+
E238: 'txHash is empty',
|
|
64
|
+
E239: 'txHash is already seen',
|
|
65
|
+
E240: 'block height must be greater than 0',
|
|
66
|
+
E241: 'block height exceeds block count',
|
|
67
|
+
E242: 'merkle proof not valid',
|
|
68
|
+
E243: 'insufficient balance from vault',
|
|
69
|
+
|
|
70
|
+
// multisig-vault errors
|
|
71
|
+
E301: 'signerManager is not contract',
|
|
72
|
+
E302: 'insufficient ether to send',
|
|
73
|
+
E303: 'failed to send ether',
|
|
74
|
+
E304: 'insufficient token to send',
|
|
75
|
+
E305: 'receiver or spender can not be empty',
|
|
76
|
+
E306: 'send amount can not be empty',
|
|
77
|
+
});
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
const errors = require('./error');
|
|
2
|
+
|
|
3
|
+
const linkBytecode = (artifact, libraries) => {
|
|
4
|
+
// This list should be updated if we split more code into library
|
|
5
|
+
const dependencies = [
|
|
6
|
+
{
|
|
7
|
+
sourceName: 'src/library/MultiSig.sol',
|
|
8
|
+
libraryName: 'MultiSig',
|
|
9
|
+
},
|
|
10
|
+
];
|
|
11
|
+
|
|
12
|
+
const missingLibrary = dependencies.find((x) => !libraries[x.libraryName]);
|
|
13
|
+
if (missingLibrary) {
|
|
14
|
+
throw new Error(`Missing contract dependent library ${missingLibrary.libraryName}`);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
dependencies.forEach((x) => {
|
|
18
|
+
x.address = libraries[x.libraryName];
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
let { bytecode } = artifact;
|
|
22
|
+
for (const { sourceName, libraryName, address } of dependencies) {
|
|
23
|
+
const linkReferences = artifact.linkReferences[sourceName][libraryName];
|
|
24
|
+
for (const { start, length } of linkReferences) {
|
|
25
|
+
bytecode = bytecode.substr(0, 2 + start * 2) + address.substr(2) + bytecode.substr(2 + (start + length) * 2);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return bytecode;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = {
|
|
33
|
+
linkBytecode,
|
|
34
|
+
errors,
|
|
35
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@arcblock/contracts",
|
|
3
|
+
"publishConfig": {
|
|
4
|
+
"access": "public"
|
|
5
|
+
},
|
|
6
|
+
"version": "0.2.5",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"deploy": "hardhat deploy",
|
|
9
|
+
"prepublishOnly": "node tools/copy-abi.js",
|
|
10
|
+
"lint": "eslint tests tools lib deploy",
|
|
11
|
+
"test": "hardhat test",
|
|
12
|
+
"clean": "hardhat clean",
|
|
13
|
+
"compile": "hardhat compile",
|
|
14
|
+
"coverage": "hardhat coverage",
|
|
15
|
+
"codesize": "hardhat size-contracts"
|
|
16
|
+
},
|
|
17
|
+
"main": "lib/index.js",
|
|
18
|
+
"files": [
|
|
19
|
+
"lib"
|
|
20
|
+
],
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@arcblock/eslint-config-base": "^0.2.3",
|
|
23
|
+
"@nomiclabs/hardhat-ethers": "^2.2.2",
|
|
24
|
+
"@nomiclabs/hardhat-waffle": "^2.0.5",
|
|
25
|
+
"@ocap/mcrypto": "1.18.34",
|
|
26
|
+
"@ocap/merkle-tree": "1.18.34",
|
|
27
|
+
"@ocap/util": "1.18.34",
|
|
28
|
+
"@ocap/wallet": "1.18.34",
|
|
29
|
+
"@openzeppelin/contracts": "^4.8.0",
|
|
30
|
+
"@types/mocha": "^10.0.1",
|
|
31
|
+
"@types/node": "^18.11.17",
|
|
32
|
+
"chai": "^4.3.7",
|
|
33
|
+
"dotenv-flow": "^3.2.0",
|
|
34
|
+
"envfile": "^6.18.0",
|
|
35
|
+
"ethereum-cryptography": "^0.1.3",
|
|
36
|
+
"ethereum-waffle": "^3.4.4",
|
|
37
|
+
"ethereumjs-util": "^7.1.5",
|
|
38
|
+
"ethereumjs-wallet": "^1.0.2",
|
|
39
|
+
"ethers": "^5.7.2",
|
|
40
|
+
"hardhat": "^2.13.0",
|
|
41
|
+
"hardhat-contract-sizer": "^2.8.0",
|
|
42
|
+
"hardhat-deploy": "^0.11.25",
|
|
43
|
+
"hardhat-gas-reporter": "^1.0.9",
|
|
44
|
+
"lodash": "^4.17.21",
|
|
45
|
+
"prettier": "^2.8.1",
|
|
46
|
+
"solidity-coverage": "^0.7.22",
|
|
47
|
+
"web3": "^1.8.1",
|
|
48
|
+
"web3-utils": "^1.8.1"
|
|
49
|
+
},
|
|
50
|
+
"dependencies": {
|
|
51
|
+
"eslint": "^8.29.0"
|
|
52
|
+
}
|
|
53
|
+
}
|