From 273c1daebd8b1c68deca1a47fe79e75f6897e680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caner=20=C3=87=C4=B1dam?= Date: Mon, 7 Aug 2023 20:13:50 +0200 Subject: [PATCH] support addLockManager in unlock admin script --- scripts/unlock-admin/call.js | 8 ++++++++ scripts/unlock-admin/example.yaml | 7 +++++++ scripts/unlock-admin/propose.js | 6 +++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/scripts/unlock-admin/call.js b/scripts/unlock-admin/call.js index 7ed85864..e6a5f386 100644 --- a/scripts/unlock-admin/call.js +++ b/scripts/unlock-admin/call.js @@ -33,6 +33,13 @@ function withdraw(tokenAddress, recipient, amount) { }; } +function addLockManager(address) { + return { + func: simplify(contracts.publicLock.getFunction('addLockManager')), + inputs: [address], + }; +} + function simplify(func) { return { name: func.name, @@ -46,5 +53,6 @@ module.exports = { createUpgradeableLockAtVersion, updateKeyPricing, withdraw, + addLockManager, ABI, }; diff --git a/scripts/unlock-admin/example.yaml b/scripts/unlock-admin/example.yaml index f76d02d8..176d0669 100644 --- a/scripts/unlock-admin/example.yaml +++ b/scripts/unlock-admin/example.yaml @@ -43,3 +43,10 @@ proposals: tokenAddress: '0x9ff62d1FC52A907B6DCbA8077c2DDCA6E6a9d3e1' # FORT token on Polygon recipient: '0x874B5d427b2d27F6Ea0ed3BCE4De454824AEC9cC' amount: '10000000000000000000' # enter in wei: example is 10 wei + + - title: Add lock manager + description: Adds a new address as an Unlock lock manager + contract: publicLock + type: addLockManager + args: + address: '0x874B5d427b2d27F6Ea0ed3BCE4De454824AEC9cC' diff --git a/scripts/unlock-admin/propose.js b/scripts/unlock-admin/propose.js index 6be5ecb6..483570e7 100644 --- a/scripts/unlock-admin/propose.js +++ b/scripts/unlock-admin/propose.js @@ -47,7 +47,7 @@ async function batchPropose(config, proposals) { }; } // create batch proposal - await defenderAdmin.createProposal({ + const result = await defenderAdmin.createProposal({ contract: Object.keys(contracts).map((key) => contracts[key]), title: config.title, description: config.description, @@ -57,6 +57,7 @@ async function batchPropose(config, proposals) { metadata: {}, // required field but empty steps, }); + console.log(result.url); } async function propose(config, proposal) { @@ -93,6 +94,9 @@ function getCall(proposal) { case 'withdraw': return call.withdraw(args.tokenAddress, args.recipient, args.amount); + case 'addLockManager': + return call.addLockManager(args.address); + default: throw `unknown proposal type ${proposal.type}`; }