From d1914dc5911823591fdefcf264250778fd359d24 Mon Sep 17 00:00:00 2001 From: homura Date: Tue, 4 Aug 2020 20:02:28 +0800 Subject: [PATCH 1/2] feat(service)!: supported autonomy in MultiSignatureService https://github.com/nervosnetwork/muta/pull/384 --- .../src/builtins/MultiSignatureService.e2e.ts | 32 +++++++++++++++++++ .../src/builtins/MultiSignatureService.ts | 1 + 2 files changed, 33 insertions(+) create mode 100644 packages/muta-service/src/builtins/MultiSignatureService.e2e.ts diff --git a/packages/muta-service/src/builtins/MultiSignatureService.e2e.ts b/packages/muta-service/src/builtins/MultiSignatureService.e2e.ts new file mode 100644 index 0000000..d4189d3 --- /dev/null +++ b/packages/muta-service/src/builtins/MultiSignatureService.e2e.ts @@ -0,0 +1,32 @@ +import { Client } from '@mutadev/client'; +import { Account } from '@mutadev/account'; +import { MultiSignatureService } from './MultiSignatureService'; + +const client = new Client(); + +const account1 = new Account( + '0x0000000000000000000000000000000000000000000000000000000000000001', +); +const account2 = new Account( + '0x0000000000000000000000000000000000000000000000000000000000000002', +); +const account3 = new Account( + '0x0000000000000000000000000000000000000000000000000000000000000003', +); + +test('test MultiSignatureService', async () => { + const service = new MultiSignatureService(client, account1); + const receipt = await service.write.generate_account({ + autonomy: false, + addr_with_weight: [ + { address: account1.address, weight: 1 }, + { address: account2.address, weight: 1 }, + { address: account3.address, weight: 1 }, + ], + memo: 'hello world', + owner: account1.address, + threshold: 2, + }); + + expect(Number(receipt.response.response.code)).toBe(0); +}); diff --git a/packages/muta-service/src/builtins/MultiSignatureService.ts b/packages/muta-service/src/builtins/MultiSignatureService.ts index b450ce8..9c5a9af 100644 --- a/packages/muta-service/src/builtins/MultiSignatureService.ts +++ b/packages/muta-service/src/builtins/MultiSignatureService.ts @@ -2,6 +2,7 @@ import { Address, SignedTransaction, Vec, u32 } from '@mutadev/types'; import { createServiceBindingClass, read, write } from '../create'; interface GenerateMultiSigAccountPayload { + autonomy: boolean; owner: Address; addr_with_weight: Vec; threshold: u32; From 148d73b005c3ecd98850a3b12af4e3441f92f821 Mon Sep 17 00:00:00 2001 From: homura Date: Tue, 4 Aug 2020 20:03:02 +0800 Subject: [PATCH 2/2] chore(example): supported autonomy in MultiSignatureService https://github.com/nervosnetwork/muta/pull/384 --- examples/009-multi-sig.js | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/009-multi-sig.js b/examples/009-multi-sig.js index 7e64b4b..c0e9716 100644 --- a/examples/009-multi-sig.js +++ b/examples/009-multi-sig.js @@ -22,6 +22,7 @@ const assetService = new AssetService(client, account1); async function main() { console.log(`creating multi-sig account`); const multiSigReceipt = await multiSigService.write.generate_account({ + autonomy: false, addr_with_weight: [ { address: account1.address, weight: 1 }, { address: account2.address, weight: 1 },