diff --git a/packages/ethereum-contracts/scripts/gov-create-new-factory-registration.js b/packages/ethereum-contracts/scripts/gov-create-new-factory-registration.js new file mode 100644 index 0000000000..ade65dab71 --- /dev/null +++ b/packages/ethereum-contracts/scripts/gov-create-new-factory-registration.js @@ -0,0 +1,49 @@ +const SuperfluidSDK = require("@superfluid-finance/js-sdk"); +const { + getScriptRunnerFactory: S, + extractWeb3Options, + builtTruffleContractLoader, + sendGovernanceAction, +} = require("./libs/common"); + +/** + * @dev Create a new super app factory registration. + * @param {Array} argv Overriding command line arguments + * @param {boolean} options.isTruffle Whether the script is used within native truffle framework + * @param {Web3} options.web3 Injected web3 instance + * @param {Address} options.from Address to deploy contracts from + * @param {boolean} options.protocolReleaseVersion Specify the protocol release version to be used + * + * Usage: npx truffle exec scripts/create-new-factory-registration.js : {FACTORY_ADDRESS} + */ +module.exports = eval(`(${S.toString()})({ + doNotPrintColonArgs: true +})`)(async function (args, options = {}) { + console.log("======== Creating new factory registration ========"); + let {protocolReleaseVersion} = options; + + if (args.length !== 1) { + throw new Error("Wrong number of arguments"); + } + const factoryAddress = args.pop(); + + console.log("protocol release version:", protocolReleaseVersion); + + const sf = new SuperfluidSDK.Framework({ + ...extractWeb3Options(options), + version: protocolReleaseVersion, + additionalContracts: [ + "Ownable", + "IMultiSigWallet", + "SuperfluidGovernanceBase", + ], + contractLoader: builtTruffleContractLoader, + }); + await sf.initialize(); + + console.log("Factory Address:", factoryAddress); + + await sendGovernanceAction(sf, (gov) => + gov.authorizeAppFactory(sf.host.address, factoryAddress) + ); +}); diff --git a/packages/ethereum-contracts/scripts/libs/common.js b/packages/ethereum-contracts/scripts/libs/common.js index 83c46b4546..2d72173855 100644 --- a/packages/ethereum-contracts/scripts/libs/common.js +++ b/packages/ethereum-contracts/scripts/libs/common.js @@ -109,8 +109,7 @@ async function codeChanged( new RegExp(r, "g"), "0".repeat(r.length) ); - if (codeTrimed === codeTrimed2) - throw new Error("Code replacement not found"); + codeTrimed = codeTrimed2; });