Skip to content

Commit 0016a6c

Browse files
committed
docs(multisig): the previous wallet is gone from the page entirely
The page now documents one contract. Every trace of the earlier `UpdateCustodianMultisigWallet` is removed rather than contrasted with the current one: the paragraph telling readers the two differ, the 0.79.3 links, and the artifact names in all eleven commands, which still read `UpdateCustodianMultisigWallet.abi.json` / `.tvc` / `.keys.json` while the files a reader downloads are named `_v2`. Two names for two contracts on one page is how someone ends up signing with the wrong artifact and reading the resulting error as a network problem. Keeping a warning about the old wallet has the same cost as keeping the old wallet: it is one more thing to hold in mind while spending money. One of the removed links was also broken in the same way as the download links: raw.githubusercontent.com with `/blob/`, measured 404. docs(multisig): the download links point at v2, and they resolve Both artifact links on this page were 404. They were raw.githubusercontent.com URLs carrying `/blob/`, which is a github.com path segment the raw host does not serve -- measured: the documented URL returns 404, the same path without `/blob/` returns 200. So a reader following this page could not obtain the contract at all. They also pointed at `0.79.3_compiled/updatecustodianmultisigwallet`, the earlier wallet. The current one is `UpdateCustodianMultisigWallet_v2` in `0.81.0_compiled`, and it is not a newer build of the same thing: its constructor takes different arguments, so a deploy command written for one fails on the other. That is now said explicitly rather than left for the reader to discover from an error. Added a verification step before any money moves: `tvm-cli decode stateinit` prints the code hash, and the expected value is stated (`cfcaac10...c1f1`, 10943 bytes). The address a reader is about to fund is a function of this exact code, so checking it is cheap and the failure it prevents is not. Downloaded and compared: the upstream .tvc is byte-identical to the artifact shipped in a production client that deploys this wallet.
1 parent 48ad83d commit 0016a6c

1 file changed

Lines changed: 31 additions & 14 deletions

File tree

docs/how-to-deploy-a-multisig-wallet.md

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,27 @@ mkdir wallet
1818
cd wallet
1919
```
2020

21-
Download the [UpdateCustodianMultisigWallet.abi.json](https://raw.githubusercontent.com/ackinacki/ackinacki/blob/main/contracts/0.79.3_compiled/updatecustodianmultisigwallet/UpdateCustodianMultisigWallet.abi.json) and [UpdateCustodianMultisigWallet.tvc](https://raw.githubusercontent.com/ackinacki/ackinacki/blob/main/contracts/0.79.3_compiled/updatecustodianmultisigwallet/UpdateCustodianMultisigWallet.tvc) files for your wallet from the `updatecustodianmultisigwallet` [repository](https://github.com/ackinacki/ackinacki/tree/main/contracts/0.79.3_compiled/updatecustodianmultisigwallet) and place them in this folder.
21+
Download the two files of the current wallet, `UpdateCustodianMultisigWallet_v2`, from the
22+
[`0.81.0_compiled/updatecustodianmultisigwallet_v2`](https://github.com/ackinacki/ackinacki/tree/main/contracts/0.81.0_compiled/updatecustodianmultisigwallet_v2) directory and place them in this folder:
23+
24+
```
25+
curl -O https://raw.githubusercontent.com/ackinacki/ackinacki/main/contracts/0.81.0_compiled/updatecustodianmultisigwallet_v2/UpdateCustodianMultisigWallet_v2.abi.json
26+
curl -O https://raw.githubusercontent.com/ackinacki/ackinacki/main/contracts/0.81.0_compiled/updatecustodianmultisigwallet_v2/UpdateCustodianMultisigWallet_v2.tvc
27+
```
28+
29+
Check what you downloaded before you send anything to it — the address you are about to compute is a
30+
function of this exact code:
31+
32+
```
33+
tvm-cli decode stateinit --tvc UpdateCustodianMultisigWallet_v2.tvc
34+
```
35+
36+
The `code_hash` field must read `cfcaac10d43c8dc062298cb48df097be67cddec52b9cfd558309a7549f01c1f1`,
37+
and the file must be 10943 bytes.
2238

2339
{% hint style="info" %}
24-
The contract code can be downloaded from [here](https://github.com/ackinacki/ackinacki/blob/main/contracts/updatecustodianmultisigwallet/UpdateCustodianMultisigWallet.sol)
40+
The Solidity source of this contract is [here](https://github.com/ackinacki/ackinacki/blob/main/contracts/updatecustodianmultisigwallet_v2/UpdateCustodianMultisigWallet_v2.sol).
41+
2542
{% endhint %}
2643

2744
## Configure CLI tool
@@ -41,7 +58,7 @@ You can generate everything with one command:
4158

4259
```
4360
44-
tvm-cli genaddr UpdateCustodianMultisigWallet.tvc --save --genkey UpdateCustodianMultisigWallet.keys.json
61+
tvm-cli genaddr UpdateCustodianMultisigWallet_v2.tvc --save --genkey UpdateCustodianMultisigWallet_v2.keys.json
4562
```
4663

4764
{% hint style="danger" %}
@@ -54,7 +71,7 @@ tvm-cli genaddr UpdateCustodianMultisigWallet.tvc --save --genkey UpdateCustodia
5471
After this step, the `.tvc` file will be overwritten with the specified keys.
5572
{% endhint %}
5673

57-
The `Raw address` is the future Multisig wallet address. Keys are saved to `updateCustodianMultisigWallet.keys.`
74+
The `Raw address` is the future Multisig wallet address. Keys are saved to `UpdateCustodianMultisigWallet_v2.keys.json`
5875

5976
Be sure to copy your seed phrase if you need it.
6077

@@ -92,7 +109,7 @@ Now you are ready to deploy your Multisig wallet using the following command:
92109

93110
```
94111
95-
tvm-cli deploy --abi UpdateCustodianMultisigWallet.abi.json --sign UpdateCustodianMultisigWallet.keys.json UpdateCustodianMultisigWallet.tvc '{"owners_pubkey":[<PubKeyList>], "owners_address": [], "reqConfirms":<ConfirmsNum>, "reqConfirmsData": <NumConfirms>, "value":<NumTokens>}'
112+
tvm-cli deploy --abi UpdateCustodianMultisigWallet_v2.abi.json --sign UpdateCustodianMultisigWallet_v2.keys.json UpdateCustodianMultisigWallet_v2.tvc '{"owners_pubkey":[<PubKeyList>], "owners_address": [], "reqConfirms":<ConfirmsNum>, "reqConfirmsData": <NumConfirms>, "value":<NumTokens>}'
96113
```
97114

98115
The arguments for the constructor must be enclosed in curly brackets: `{<constructor arguments>}`
@@ -108,7 +125,7 @@ In our example, the command will be as follows:
108125

109126
```
110127
111-
tvm-cli deploy --abi UpdateCustodianMultisigWallet.abi.json --sign UpdateCustodianMultisigWallet.keys.json UpdateCustodianMultisigWallet.tvc '{"owners_pubkey":["0x92658a2dee35923cc628b7f5f09e014eeeb7f492dd4dfd2f65cd304a73d2d2f4"], "owners_address": [], "reqConfirms":1, "reqConfirmsData": 1, "value":10000000000}'
128+
tvm-cli deploy --abi UpdateCustodianMultisigWallet_v2.abi.json --sign UpdateCustodianMultisigWallet_v2.keys.json UpdateCustodianMultisigWallet_v2.tvc '{"owners_pubkey":["0x92658a2dee35923cc628b7f5f09e014eeeb7f492dd4dfd2f65cd304a73d2d2f4"], "owners_address": [], "reqConfirms":1, "reqConfirmsData": 1, "value":10000000000}'
112129
```
113130

114131
<figure><img src=".gitbook/assets/deploy.jpg" alt=""><figcaption></figcaption></figure>
@@ -130,8 +147,8 @@ During contract deployment, **10** **SHELL** tokens were converted into **10** *
130147
In the examples below:
131148

132149
* `<MSIG_ADDR>` — Multisig Wallet address (e.g. `0:7a55...dd45`)
133-
* ABI file: [`UpdateCustodianMultisigWallet.abi.json`](https://raw.githubusercontent.com/ackinacki/ackinacki/blob/main/contracts/0.79.3_compiled/updatecustodianmultisigwallet/UpdateCustodianMultisigWallet.abi.json)
134-
* Signer keys (one of the custodians): `UpdateCustodianMultisigWallet.keys.json` , generated in the [previous step](how-to-deploy-a-multisig-wallet.md#generate-seed-phrase-keys-and-address)
150+
* ABI file: [`UpdateCustodianMultisigWallet_v2.abi.json`](https://raw.githubusercontent.com/ackinacki/ackinacki/main/contracts/0.81.0_compiled/updatecustodianmultisigwallet_v2/UpdateCustodianMultisigWallet_v2.abi.json)
151+
* Signer keys (one of the custodians): `UpdateCustodianMultisigWallet_v2.keys.json` , generated in the [previous step](how-to-deploy-a-multisig-wallet.md#generate-seed-phrase-keys-and-address)
135152

136153
{% hint style="info" %}
137154
The transaction **expiration time** is **1 hour**.
@@ -181,7 +198,7 @@ tvm-cli call <MSIG_ADDR> sendTransaction '{
181198
"bounce":false,
182199
"flags":1,
183200
"payload":""
184-
}' --abi UpdateCustodianMultisigWallet.abi.json --sign UpdateCustodianMultisigWallet.keys.json
201+
}' --abi UpdateCustodianMultisigWallet_v2.abi.json --sign UpdateCustodianMultisigWallet_v2.keys.json
185202
```
186203

187204
* **If you need to fund an account that has not yet been deployed,**\
@@ -202,7 +219,7 @@ tvm-cli call <MSIG_ADDR> sendTransaction \
202219
"flags":16,
203220
"payload":""
204221
}' \
205-
--abi UpdateCustodianMultisigWallet.abi.json --sign UpdateCustodianMultisigWallet.keys.json
222+
--abi UpdateCustodianMultisigWallet_v2.abi.json --sign UpdateCustodianMultisigWallet_v2.keys.json
206223
```
207224

208225
As a result, the account balance will be credited with **5 VMSHELL**\
@@ -249,7 +266,7 @@ tvm-cli call <MSIG_ADDR> submitTransaction '{
249266
"bounce":false,
250267
"flags":1,
251268
"payload":""
252-
}' --abi UpdateCustodianMultisigWallet.abi.json --sign UpdateCustodianMultisigWallet.keys.json
269+
}' --abi UpdateCustodianMultisigWallet_v2.abi.json --sign UpdateCustodianMultisigWallet_v2.keys.json
253270
```
254271

255272
{% hint style="info" %}
@@ -276,7 +293,7 @@ If the transaction has already expired, it will be deleted.
276293
Example command:
277294

278295
```bash
279-
tvm-cli call <MSIG_ADDR> confirmTransaction '{"transactionId":123456789}' --abi UpdateCustodianMultisigWallet.abi.json --sign UpdateCustodianMultisigWallet.keys.json
296+
tvm-cli call <MSIG_ADDR> confirmTransaction '{"transactionId":123456789}' --abi UpdateCustodianMultisigWallet_v2.abi.json --sign UpdateCustodianMultisigWallet_v2.keys.json
280297
281298
```
282299

@@ -316,7 +333,7 @@ tvm-cli call <MSIG_ADDR> submitDataUpdate '{
316333
],
317334
"reqConfirms":2,
318335
"reqConfirmsData":2
319-
}' --abi UpdateCustodianMultisigWallet.abi.json --sign UpdateCustodianMultisigWallet.keys.json
336+
}' --abi UpdateCustodianMultisigWallet_v2.abi.json --sign UpdateCustodianMultisigWallet_v2.keys.json
320337
```
321338

322339
### How to confirm a request to update the Multisig data
@@ -339,6 +356,6 @@ If the request is expired, it will be removed
339356
Example command:
340357

341358
```bash
342-
tvm-cli call <MSIG_ADDR> confirmDataUpdate '{"dataUpdateId":987654321}' --abi UpdateCustodianMultisigWallet.abi.json --sign UpdateCustodianMultisigWallet.keys.json
359+
tvm-cli call <MSIG_ADDR> confirmDataUpdate '{"dataUpdateId":987654321}' --abi UpdateCustodianMultisigWallet_v2.abi.json --sign UpdateCustodianMultisigWallet_v2.keys.json
343360

344361
```

0 commit comments

Comments
 (0)