Skip to content

Archived Old Goverance Records

Miao ZhiCheng edited this page Feb 1, 2022 · 1 revision

gov-action-matic-I-20210317-new-supertokens.md

Date: 2021-03-17

Resolution

With a community member's help of deploying unlisted tokens, the governance agrees to list the following tokens in our resolver:

Super Token Symbol Super Token Address Underlying Token Address
ETHx 0x27e1e4E6BC79D93032abef01025811B7E4727e85 0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619
USDCx 0xCAa7349CEA390F89641fe306D93591f87595dc1F 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
DAIx 0x1305F6B6Df9Dc47159D12Eb7aC2804d4A33173c2 0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063
WBTCx 0x4086eBf75233e8492F1BCDa41C7f2A8288c2fB92 0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6

As of this date, the QuickSwap liquidity of these assets are:

  • ETH / WETH (PoS): $26,348,615
  • USDC (PoS) : $16,993,090
  • DAI (PoS): $1,860,773
  • WBTC (PoS): $6,912,053

Checklist:

  • [yes] These SuperTokens' underlyingToken is correct.
  • [yes] These SuperTokens are created through the official SuperTokenFactory.

Execution Logs

Create transaction data

$ npx truffle --network matic console
truffle(matic)> resolver = await TestResolver.at("0xE0cc76334405EE8b39213E620587d815967af39C")
truffle(matic)> resolver.contract.methods.set("tokens.ETH", "0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619").encodeABI() 
'0xa815ff1500000000000000000000000000000000000000000000000000000000000000400000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f619000000000000000000000000000000000000000000000000000000000000000a746f6b656e732e45544800000000000000000000000000000000000000000000'
truffle(matic)> resolver.contract.methods.set("supertokens.v1.ETHx", "0x27e1e4E6BC79D93032abef01025811B7E4727e85").encodeABI() 
'0xa815ff15000000000000000000000000000000000000000000000000000000000000004000000000000000000000000027e1e4e6bc79d93032abef01025811b7e4727e8500000000000000000000000000000000000000000000000000000000000000137375706572746f6b656e732e76312e4554487800000000000000000000000000'

truffle(matic)> resolver.contract.methods.set("tokens.USDC", "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174").encodeABI()
'0xa815ff1500000000000000000000000000000000000000000000000000000000000000400000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa84174000000000000000000000000000000000000000000000000000000000000000b746f6b656e732e55534443000000000000000000000000000000000000000000'
truffle(matic)> resolver.contract.methods.set("supertokens.v1.USDCx", "0xCAa7349CEA390F89641fe306D93591f87595dc1F").encodeABI()
'0xa815ff150000000000000000000000000000000000000000000000000000000000000040000000000000000000000000caa7349cea390f89641fe306d93591f87595dc1f00000000000000000000000000000000000000000000000000000000000000147375706572746f6b656e732e76312e5553444378000000000000000000000000'

truffle(matic)> resolver.contract.methods.set("tokens.DAI", "0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063").encodeABI() 
'0xa815ff1500000000000000000000000000000000000000000000000000000000000000400000000000000000000000008f3cf7ad23cd3cadbd9735aff958023239c6a063000000000000000000000000000000000000000000000000000000000000000a746f6b656e732e44414900000000000000000000000000000000000000000000'
truffle(matic)> resolver.contract.methods.set("supertokens.v1.DAIx", "0x1305F6B6Df9Dc47159D12Eb7aC2804d4A33173c2").encodeABI()
'0xa815ff1500000000000000000000000000000000000000000000000000000000000000400000000000000000000000001305f6b6df9dc47159d12eb7ac2804d4a33173c200000000000000000000000000000000000000000000000000000000000000137375706572746f6b656e732e76312e4441497800000000000000000000000000'

truffle(matic)> resolver.contract.methods.set("tokens.WBTC", "0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6").encodeABI()
'0xa815ff1500000000000000000000000000000000000000000000000000000000000000400000000000000000000000001bfd67037b42cf73acf2047067bd4f2c47d9bfd6000000000000000000000000000000000000000000000000000000000000000b746f6b656e732e57425443000000000000000000000000000000000000000000'
truffle(matic)> resolver.contract.methods.set("supertokens.v1.WBTCx", "0x4086eBf75233e8492F1BCDa41C7f2A8288c2fB92").encodeABI()
'0xa815ff1500000000000000000000000000000000000000000000000000000000000000400000000000000000000000004086ebf75233e8492f1bcda41c7f2a8288c2fb9200000000000000000000000000000000000000000000000000000000000000147375706572746f6b656e732e76312e5742544378000000000000000000000000'

Submit transactions

Use remix to submitTransaction to the resolver.address with the list of transaction data above one by one.

Confirm transactions

With additional requires signature, these transactions are all confirmed.

List of transactions:

TxHash,BlockNumber,UnixTimestamp,FromAddress,ToAddress,ContractAddress,Type,Value,Fee,Status,ErrCode,CurrentPrice,TxDateOpeningPrice,TxDateClosingPrice
0x034eaefbdcf9b701f79d5020671da00bc20974d6b1eb22f33a961d37f91b30db,12136402,2021-03-17 18:40:25.000000Z,0x39BdDF06f02E5328dBDD30246B4cC613E5F0E08d,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,116136000000000,ok,,0.402738,0.3732,0.3786
0x1f9544e3961e94217f5a3416cd5dd397e93403995b5b715fbe9122c294271266,12136381,2021-03-17 18:39:39.000000Z,0xd66E40b0c30595bEc72153B502aC1E0c4785991B,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,16924000000000,ok,,0.402738,0.3732,0.3786
0x8071b77a19667e848ad2f442dabd51e4e8e69b34deae9bca8e798753352c7ff8,12136376,2021-03-17 18:39:29.000000Z,0xd66E40b0c30595bEc72153B502aC1E0c4785991B,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,201513000000000,ok,,0.402738,0.3732,0.3786
0x84d5b7969f479e46c2eb2c59ef3d2b5c68671fcfd87f671dc892b0fa2d2b0baf,12136326,2021-03-17 18:37:49.000000Z,0x39BdDF06f02E5328dBDD30246B4cC613E5F0E08d,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,116136000000000,ok,,0.402738,0.3732,0.3786
0x7219f195be8162445e468887f39c42f0016285a7a15f5753850d2fd2d7fef85d,12136316,2021-03-17 18:37:25.000000Z,0x39BdDF06f02E5328dBDD30246B4cC613E5F0E08d,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,116136000000000,ok,,0.402738,0.3732,0.3786
0xdbaf29cbae7b3e84e22fc5600dd829aeb319d110f699835ed71a269ce7ac1d70,12136309,2021-03-17 18:37:11.000000Z,0x39BdDF06f02E5328dBDD30246B4cC613E5F0E08d,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,116136000000000,ok,,0.402738,0.3732,0.3786
0x5b65f863bdaa1ae90b055a4cd66bcb6ebd34be0732526587fce376870f3925eb,12136298,2021-03-17 18:36:49.000000Z,0x39BdDF06f02E5328dBDD30246B4cC613E5F0E08d,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,116136000000000,ok,,0.402738,0.3732,0.3786
0x567dc61a8f66f8331cc8cc554757388934d9726d58e6e769df81e405bd081488,12136288,2021-03-17 18:36:29.000000Z,0x39BdDF06f02E5328dBDD30246B4cC613E5F0E08d,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,116136000000000,ok,,0.402738,0.3732,0.3786
0x33182014f7144306131dd810138cc297dc74ef29d7174d047f0abf34d51b146f,12136243,2021-03-17 18:34:55.000000Z,0x39BdDF06f02E5328dBDD30246B4cC613E5F0E08d,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,116136000000000,ok,,0.402738,0.3732,0.3786
0xbf01904375a3aa2f30def64ef7deb66299ccd5a8d3203728a4483f5e8e5e9ceb,12136231,2021-03-17 18:34:31.000000Z,0x39BdDF06f02E5328dBDD30246B4cC613E5F0E08d,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,116136000000000,ok,,0.402738,0.3732,0.3786
0x6e7a7b62a25251b6479f481f1b636f1d2f02a4ddc818a424be9cb434e63466d1,12136137,2021-03-17 18:31:19.000000Z,0xd66E40b0c30595bEc72153B502aC1E0c4785991B,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,201501000000000,ok,,0.402738,0.3732,0.3786
0x4b66ef7b92ddad1dd942a1262a0bc1ec171cfdcf8809d3a024f5ca57c8dc536a,12136134,2021-03-17 18:31:13.000000Z,0xd66E40b0c30595bEc72153B502aC1E0c4785991B,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,201405000000000,ok,,0.402738,0.3732,0.3786
0xe1c8c9560ffb4e9db94708ec0bf62b94d993400e86128e6a6432a857c194b52d,12136131,2021-03-17 18:31:07.000000Z,0xd66E40b0c30595bEc72153B502aC1E0c4785991B,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,201501000000000,ok,,0.402738,0.3732,0.3786
0xad73f2efb7c0ad1563d56e063f77eca1a7cf54dde5d7cc6c9e92d36c370dfaf8,12136128,2021-03-17 18:31:01.000000Z,0xd66E40b0c30595bEc72153B502aC1E0c4785991B,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,201393000000000,ok,,0.402738,0.3732,0.3786
0x6ef21ca704de051c71becd4a0e19a9f3998069985b4452a1f21f921f253fe0a0,12136127,2021-03-17 18:30:55.000000Z,0xd66E40b0c30595bEc72153B502aC1E0c4785991B,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,201513000000000,ok,,0.402738,0.3732,0.3786
0x768f85e4582361b3b287a96f3d7248db7c3f8f314ead2b9b5e60ccd96bfe986d,12136124,2021-03-17 18:30:49.000000Z,0xd66E40b0c30595bEc72153B502aC1E0c4785991B,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,201405000000000,ok,,0.402738,0.3732,0.3786
0xa4318c60b63c692930a6b60aa07b6159b851368bbfbdaeae43b01ac732df823a,12136121,2021-03-17 18:30:43.000000Z,0xd66E40b0c30595bEc72153B502aC1E0c4785991B,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,201501000000000,ok,,0.402738,0.3732,0.3786
0x3d48d6e4c08af5ce7b7de73c75d1b92bf68f28a2038c55ece3a7e3c7c0f4fa0d,12135828,2021-03-17 18:18:33.000000Z,0xd66E40b0c30595bEc72153B502aC1E0c4785991B,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,16924000000000,ok,,0.402738,0.3732,0.3786
0x6b23f6e0d8ad012e3ac61d10deef93a79e1bcb21e46e356f4ce96ec44414dedf,12135665,2021-03-17 18:12:55.000000Z,0xd66E40b0c30595bEc72153B502aC1E0c4785991B,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,201489000000000,ok,,0.402738,0.3732,0.3786
0xea758719c91c19fe8625b7866abf75e13ba2bb735d216792033ac993efaf9ddf,12135660,2021-03-17 18:12:45.000000Z,0xd66E40b0c30595bEc72153B502aC1E0c4785991B,0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A,,IN,0,201393000000000,ok,,0.402738,0.3732,0.3786

gov-action-matic-I-20210323-upgrade-contracts-to-v1.0.0-rc2.md

Date: 2021-03-23

Network: matic

Governance: Superfluid Governance I

Resolution

After the release of @superfluid-finance/[email protected], which includes fixes in CFA, Superfluid Host Contracts and Super Token logic contract. The governance will upgrade these contracts to the latest build, and also update token logic of existing tokens including ETHx, USDCx, DAIx, WBTCx.

Execution Logs

$ git rev-parse HEAD
ed214bf55ee0a68fa7cf1966344078aa353a4ece

$ npx truffle --network matic console

### Initialize
truffle(matic)> SDK=require("../js-sdk")
truffle(matic)> sf = new SDK.Framework({ version: "v1", web3 })
truffle(matic)> sf.initialize()
Initializing Superfluid Framework...
networkType private
chainId 137
Using @superfluid-finance/js-sdk in a non-native Truffle environment.
                Peer dependency @truffle/contract is required.
Set default from address to the first account 0xd66E40b0c30595bEc72153B502aC1E0c4785991B
Resolver at 0xE0cc76334405EE8b39213E620587d815967af39C
Resolving contracts with version v1
Superfluid host contract: TruffleContract .host @0x3E14dC1b13c488a8d5D310918780c983bD5982E7
ConstantFlowAgreementV1: TruffleContract .agreements.cfa @0x6EeE6060f715257b970700bc2656De21dEdF074C | Helper .cfa
InstantDistributionAgreementV1: TruffleContract .agreements.ida @0xB0aABBA4B2783A72C52956CDEF62d438ecA2d7a1 | Helper .ida
Superfluid Framework initialized.
truffle(matic)> host = await Superfluid.at(sf.host.address)
truffle(matic)> gov = await ISuperfluidGovernance.at(await host.getGovernance())
truffle(matic)> gov.address
'0x11102d5aEf029A4B2c85a90aB1976a7b38CE574d'
truffle(matic)> sf.resolver.address
'0xE0cc76334405EE8b39213E620587d815967af39C'
truffle(matic)> resolver = await TestResolver.at(sf.resolver.address)
truffle(matic)> resolver.address
'0xE0cc76334405EE8b39213E620587d815967af39C'
truffle(matic)> resolver.address
'0xE0cc76334405EE8b39213E620587d815967af39C'

### Create New Logic Contracts

truffle(matic)> newHostLogic = await Superfluid.new(false, true)
truffle(matic)> newHostLogic.address
'0xea8b224eDD3e342DEb514C4176c2E72Bcce6fFF9'

truffle(matic)> newFactoryLogic = await SuperTokenFactory.new(host.address)
truffle(matic)> newFactoryLogic.address
'0x71746f79A31cC5d825AE5EAf2eB3B5AAc8916CB0'

truffle(matic)> newCFALogic = await ConstantFlowAgreementV1.new()
truffle(matic)> newCFALogic.address
'0xc6b08d066Ba0185DaF047048F39d1FdEe5e87692'

### Create Transaction Data

// updateContracts
truffle(matic)> gov.contract.methods.updateContracts(host.address, newHostLogic.address, [newCFALogic.address], newFactoryLogic.address).encodeABI()
'0x427942a40000000000000000000000003e14dc1b13c488a8d5d310918780c983bd5982e7000000000000000000000000ea8b224edd3e342deb514c4176c2e72bcce6fff9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000071746f79a31cc5d825ae5eaf2eb3b5aac8916cb00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c6b08d066ba0185daf047048f39d1fdee5e87692'

// updateSuperTokenLogic ETHx
truffle(matic)> gov.contract.methods.updateSuperTokenLogic(host.address, "0x27e1e4E6BC79D93032abef01025811B7E4727e85").encodeABI()
'0xfa6e0cfe0000000000000000000000003e14dc1b13c488a8d5d310918780c983bd5982e700000000000000000000000027e1e4e6bc79d93032abef01025811b7e4727e85'

// updateSuperTokenLogic USDCx
truffle(matic)> gov.contract.methods.updateSuperTokenLogic(host.address, "0xCAa7349CEA390F89641fe306D93591f87595dc1F").encodeABI()
'0xfa6e0cfe0000000000000000000000003e14dc1b13c488a8d5d310918780c983bd5982e7000000000000000000000000caa7349cea390f89641fe306d93591f87595dc1f'

// updateSuperTokenLogic DAIx
truffle(matic)> gov.contract.methods.updateSuperTokenLogic(host.address, "0x1305F6B6Df9Dc47159D12Eb7aC2804d4A33173c2").encodeABI()
'0xfa6e0cfe0000000000000000000000003e14dc1b13c488a8d5d310918780c983bd5982e70000000000000000000000001305f6b6df9dc47159d12eb7ac2804d4a33173c2'

// updateSuperTokenLogic WBTCx
truffle(matic)> gov.contract.methods.updateSuperTokenLogic(host.address, "0x4086eBf75233e8492F1BCDa41C7f2A8288c2fB92").encodeABI()
'0xfa6e0cfe0000000000000000000000003e14dc1b13c488a8d5d310918780c983bd5982e70000000000000000000000004086ebf75233e8492f1bcda41c7f2a8288c2fb92'

### Submit Transactions

* Add `IMultiSigWallet` to remix:

interface IMultiSigWallet {
    function submitTransaction(address destination, uint value, bytes calldata data)
        external
        returns (uint transactionId);
}

* Submit transactions to targeting governance address `0x11102d5aEf029A4B2c85a90aB1976a7b38CE574d` and function `submitTransaction`:
  - [x] gov.updateContracts (needing 5M gas limit)
  - [x] gov.updateSuperTokenLogic for ETHx
  - [x] gov.updateSuperTokenLogic for USDCx
  - [x] gov.updateSuperTokenLogic for DAIx
  - [x] gov.updateSuperTokenLogic for WBTCx

* Confirm the transactions with 5M gas limit.


gov-action-matic-I-20210323-upgrade-contracts-to-v1.0.0-rc3.md

Date: 2021-04-16

Network: matic

Governance: Superfluid Governance I

Resolution

After the release of @superfluid-finance/[email protected], the governance will upgrade Superfluid Framework to the latest build, and also update token logic of existing listed tokens including ETHx, USDCx, DAIx, WBTCx.

Execution Logs

Code Revision

$ git gov

TODO

Update Superfluid Framework:

$ GOVERNANCE_TYPE=MULTISIG RELEASE_VERSION=v1 npx truffle --network matic exec scripts/deploy-framework.js

$ NO_NEW_GOVERNANCE=yes GOVERNANCE_TYPE=MULTISIG RELEASE_VERSION=v1 npx truffle --network matic exec scripts/deploy-framework.js
Using network 'matic'.

======== Deploying superfluid framework ========
reset superfluid framework:  false
chain ID:  137
protocol release version: v1
Checking ERC1820 deployment at 0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24
ERC1820 is already deployoed.
Using @superfluid-finance/js-sdk within a Truffle native environment.
                Truffle artifacts must be present.
Resolver address 0xE0cc76334405EE8b39213E620587d815967af39C
Superfluid.v1 address 0x3E14dC1b13c488a8d5D310918780c983bD5982E7
Superfluid does not need new deployment.
Governance address 0x11102d5aEf029A4B2c85a90aB1976a7b38CE574d
Superfluid logic code has changed
SuperfluidLogic.new: started
SuperfluidLogic.new: done, gas used 4412194, gas price 1 Gwei
Superfluid new logic code address 0x3DcFB72F360487C06Fd4c52BE5D97e67167CC7DF
ConstantFlowAgreementV1 logic code has changed
ConstantFlowAgreementV1.new: started
ConstantFlowAgreementV1.new: done, gas used 4069280, gas price 1 Gwei
New ConstantFlowAgreementV1 address 0x2756B3BC077eA9f24b550c84b486C8cEc408C08e
ConstantFlowAgreementV1 new logic code address 0x2756B3BC077eA9f24b550c84b486C8cEc408C08e
InstantDistributionAgreementV1 logic code has changed
InstantDistributionAgreementV1.new: started
InstantDistributionAgreementV1.new: done, gas used 5350958, gas price 1 Gwei
New InstantDistributionAgreementV1 address 0x946F8E5F7BAE2Ff6dFea0fc213328c96c0Ff145F
InstantDistributionAgreementV1 new logic code address 0x946F8E5F7BAE2Ff6dFea0fc213328c96c0Ff145F
SuperTokenFactory logic code has changed
SuperTokenFactoryHelper.new: started
SuperTokenFactoryHelper.new: done, gas used 4457134, gas price 1 Gwei
SuperTokenFactory.new: started
SuperTokenFactory.new: done, gas used 1031020, gas price 1 Gwei
SuperTokenFactory new logic code address 0xf545374a049314A7F6306e5B3282410E8C434225
Governance type: MultiSig
MultiSig address:  0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A
MultiSig data 0x427942a40000000000000000000000003e14dc1b13c488a8d5d310918780c983bd5982e70000000000000000000000003dcfb72f360487c06fd4c52be5d97e67167cc7df0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000f545374a049314a7f6306e5b3282410e8c43422500000000000000000000000000000000000000000000000000000000000000020000000000000000000000002756b3bc077ea9f24b550c84b486c8cec408c08e000000000000000000000000946f8e5f7bae2ff6dfea0fc213328c96c0ff145f
multis.submitTransaction: started
multis.submitTransaction: done, gas used 282045, gas price 1 Gwei
======== Superfluid framework deployed ========

Update SuperToken Logic:

$ for i in MATICx ETHx USDCx DAIx WBTCx;do GOVERNANCE_TYPE=MULTISIG RELEASE_VERSION=v1 npx truffle --network matic exec scripts/deploy-super-token.js : $i;done
  • Confirm all the transactions with sufficient gas limit.

gov-action-matic-I-20210416-upgrade-contracts-to-v1.0.0-rc3.md

Date: 2021-04-16

Network: matic

Governance: Superfluid Governance I

Status: Resolved

Resolution

After the release of @superfluid-finance/[email protected], the governance will upgrade Superfluid Framework to the latest build, and also update token logic of existing listed tokens including ETHx, USDCx, DAIx, WBTCx.

Execution Logs

Code Revision

$ git rev-parse HEAD
eab70d225e8f0aacc78b26994b0ebb87aa9d641a

Update Superfluid Framework

$ GOVERNANCE_TYPE=MULTISIG RELEASE_VERSION=v1 npx truffle --network matic exec scripts/deploy-framework.js

$ NO_NEW_GOVERNANCE=yes GOVERNANCE_TYPE=MULTISIG RELEASE_VERSION=v1 npx truffle --network matic exec scripts/deploy-framework.js
Using network 'matic'.

======== Deploying superfluid framework ========
reset superfluid framework:  false
chain ID:  137
protocol release version: v1
Checking ERC1820 deployment at 0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24
ERC1820 is already deployoed.
Using @superfluid-finance/js-sdk within a Truffle native environment.
                Truffle artifacts must be present.
Resolver address 0xE0cc76334405EE8b39213E620587d815967af39C
Superfluid.v1 address 0x3E14dC1b13c488a8d5D310918780c983bD5982E7
Superfluid does not need new deployment.
Governance address 0x11102d5aEf029A4B2c85a90aB1976a7b38CE574d
Superfluid logic code has changed
SuperfluidLogic.new: started
SuperfluidLogic.new: done, gas used 4412194, gas price 1 Gwei
Superfluid new logic code address 0x3DcFB72F360487C06Fd4c52BE5D97e67167CC7DF
ConstantFlowAgreementV1 logic code has changed
ConstantFlowAgreementV1.new: started
ConstantFlowAgreementV1.new: done, gas used 4069280, gas price 1 Gwei
New ConstantFlowAgreementV1 address 0x2756B3BC077eA9f24b550c84b486C8cEc408C08e
ConstantFlowAgreementV1 new logic code address 0x2756B3BC077eA9f24b550c84b486C8cEc408C08e
InstantDistributionAgreementV1 logic code has changed
InstantDistributionAgreementV1.new: started
InstantDistributionAgreementV1.new: done, gas used 5350958, gas price 1 Gwei
New InstantDistributionAgreementV1 address 0x946F8E5F7BAE2Ff6dFea0fc213328c96c0Ff145F
InstantDistributionAgreementV1 new logic code address 0x946F8E5F7BAE2Ff6dFea0fc213328c96c0Ff145F
SuperTokenFactory logic code has changed
SuperTokenFactoryHelper.new: started
SuperTokenFactoryHelper.new: done, gas used 4457134, gas price 1 Gwei
SuperTokenFactory.new: started
SuperTokenFactory.new: done, gas used 1031020, gas price 1 Gwei
SuperTokenFactory new logic code address 0xf545374a049314A7F6306e5B3282410E8C434225
Governance type: MultiSig
MultiSig address:  0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A
MultiSig data 0x427942a40000000000000000000000003e14dc1b13c488a8d5d310918780c983bd5982e70000000000000000000000003dcfb72f360487c06fd4c52be5d97e67167cc7df0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000f545374a049314a7f6306e5b3282410e8c43422500000000000000000000000000000000000000000000000000000000000000020000000000000000000000002756b3bc077ea9f24b550c84b486c8cec408c08e000000000000000000000000946f8e5f7bae2ff6dfea0fc213328c96c0ff145f
multis.submitTransaction: started
multis.submitTransaction: done, gas used 282045, gas price 1 Gwei
======== Superfluid framework deployed ========

Update SuperToken Logic

$ for i in MATICx ETHx USDCx DAIx WBTCx;do GOVERNANCE_TYPE=MULTISIG RELEASE_VERSION=v1 npx truffle --network matic exec scripts/deploy-super-token.js : $i;done

Confirmation

Confirm all the transactions with sufficient gas limit.


gov-action-matic-I-20210817-upgrade-contracts-to-v1.0.0-rc.7.md

Execution Logs

Upgrade framework contracts

  • Github Workflow "Run Ethereum Contracts Script":
  • Protocol Admin MultiSig Transaction ID: 72

Upgrade Token Logic

  • Token List:
    • MATICx: 0x3aD736904E9e65189c3000c7DD2c8AC8bB7cD4e3
    • DAIx: 0x1305F6B6Df9Dc47159D12Eb7aC2804d4A33173c2
    • USDCx: 0xCAa7349CEA390F89641fe306D93591f87595dc1F
    • ETHx: 0x27e1e4E6BC79D93032abef01025811B7E4727e85
  • Github Workflow "Run Ethereum Contracts Script":
    • Params:
      • branch: improve_admin_scripts (a49df230acd65d905d23b4f8e41e0ac687a34eea)
      • protocol release version: v1
      • network: matic
      • admin type: MULTISIG
      • script name: scripts/upgrade-super-token-logic.js
      • script parameters: : 0x3aD736904E9e65189c3000c7DD2c8AC8bB7cD4e3 0x1305F6B6Df9Dc47159D12Eb7aC2804d4A33173c2 0xCAa7349CEA390F89641fe306D93591f87595dc1F 0x27e1e4E6BC79D93032abef01025811B7E4727e85
    • Run log: https://github.com/superfluid-finance/protocol-monorepo/actions/runs/1140401208
  • Protocol Admin MultiSig Transaction ID: 73,74,75,76

gov-action-matic-II-20210308-transition.md

Date: 2021-03-08

Resolution

After the community member deployment, transfer the governance to a new "SuperfluidOwnableGovernance" instance with the following initial settings:

  • rewardAddress: 0x11102d5aEf029A4B2c85a90aB1976a7b38CE574d (Superfluid Protocol Admin)
  • CFAv1LiquidationPeriod: 14400 (4 hours)

Execution Logs

Initialization

> protocolAdmin = "0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A"
> host = await ISuperfluid.at("0x3E14dC1b13c488a8d5D310918780c983bD5982E7")

Create new Governance

> gov = await SuperfluidOwnableGovernance.new()
> gov.address
'0x11102d5aEf029A4B2c85a90aB1976a7b38CE574d'
> gov.setRewardAddress(host.address, "0x0000000000000000000000000000000000000000", protocolAdmin)
> gov.setCFAv1LiquidationPeriod(host.address, "0x0000000000000000000000000000000000000000", "14400")
> gov.transferOwnership(protocolAdmin)

Replace Governance

> gov.contract.methods.replaceGovernance(host.address, gov.address).encodeABI()
'0x44864b250000000000000000000000003e14dc1b13c488a8d5d310918780c983bd5982e700000000000000000000000011102d5aef029a4b2c85a90ab1976a7b38ce574d'
> currentGovAddress = await host.getGovernance()
> currentGovAddress
0x937DF09E7d7F2FC9B3cedc1D099c27c43eB346b7
  • Use remix to submitTransaction to the currentGovAddress with the data above.
  • One Additional MultiSig confirm transactions.

gov-action-polygon-II-20210827-transition.md

Date: 2021-08-27

Resolution

An upgradable contract SuperfluidOwnableGovernanceII was deployed and settings from the previous deployment were replicated.

Execution Logs

Initialization

> protocolAdmin = "0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A"
> host = await ISuperfluid.at("0x3E14dC1b13c488a8d5D310918780c983bD5982E7")
> oldGov = await SuperfluidOwnableGovernance.at(await host.getGovernance())
> oldGov.address
'0x11102d5aEf029A4B2c85a90aB1976a7b38CE574d'
> cfaLiquidationPeriod = await oldGov.getCFAv1LiquidationPeriod(host.address, "0x0000000000000000000000000000000000000000")
> cfaLiquidationPeriod.toString()
'14400'
> rewardAddress = await oldGov.getRewardAddress(host.address, "0x0000000000000000000000000000000000000000")
> rewardAddress
'0x1EB3FAA360bF1f093F5A18d21f21f13D769d044A'

Create new Governance

> govProxy = await SuperfluidGovernanceIIProxy.new()
> govProxy.address
'0x3AD3f7A0965Ce6f9358AD5CCE86Bc2b05F1EE087'
> govLogic = await SuperfluidGovernanceII.new()
> govLogic.address
'0x6a304ca68995ee44591b1c8587D13F7774b7490A'
> govProxy.initializeProxy(govLogic.address)
> gov = await SuperfluidGovernanceII.at(govProxy.address)

> gov.setRewardAddress(host.address, "0x0000000000000000000000000000000000000000", rewardAddress)
> gov.setCFAv1LiquidationPeriod(host.address, "0x0000000000000000000000000000000000000000", cfaLiquidationPeriod)

> gov.enableTrustedForwarder(host.address, "0x0000000000000000000000000000000000000000", "0x86C80a8aa58e0A4fa09A69624c31Ab2a6CAD56b8")
> gov.transferOwnership(protocolAdmin)

Replace Governance

The old governance contract was then replaced by protocol admin (multisig).

gov-action-xdai-0-20210308-transition.md

Date: 2021-03-08

Resolution

After the community member deployment, transfer the governance to a new "SuperfluidOwnableGovernance" instance with the following initial settings:

  • rewardAddress: 0x8e8F05f1aD16D20e66Bd0922b510332104ddAc7B (Superfluid Protocol Admin)
  • CFAv1LiquidationPeriod: 14400 (4 hours)

Execution Logs

Initialization

> protocolAdmin="0x8e8F05f1aD16D20e66Bd0922b510332104ddAc7B"
> host = await ISuperfluid.at("0x2dFe937cD98Ab92e59cF3139138f18c823a4efE7")

Create new Governance

> gov = await SuperfluidOwnableGovernance.new()
> gov.address
0x7e2647470764c9121FC6Dac303f328D76e326a24
> gov.setRewardAddress(host.address, "0x0000000000000000000000000000000000000000", protocolAdmin)
> gov.setCFAv1LiquidationPeriod(host.address, "0x0000000000000000000000000000000000000000", "14400")
> gov.transferOwnership(protocolAdmin)

Replace Governance

> gov.contract.methods.replaceGovernance(host.address, gov.address).encodeABI()
'0x44864b250000000000000000000000002dfe937cd98ab92e59cf3139138f18c823a4efe70000000000000000000000007e2647470764c9121fc6dac303f328d76e326a24'
> currentGovAddress = await host.getGovernance()
> currentGovAddress
0x6f088894012033d33a6a3338B167717c26DcbCf9
  • Use remix to submitTransaction to the currentGovAddress with the data above.
  • One Additional MultiSig confirm transactions.

gov-action-xdai-I-20210323-list-minerva-wallet-super-token.md

Date: 2021-03-23

Network: xDAI

Governance: Superfluid Governance I

Resolution

MIVA Token is a native Super Token of the Minerva Cash project. Upon their token listing request and validation of the contract source, the governance decides to list the tokens in the official resolver.

Execution Logs

### Initialize

truffle(xdai)> SDK=require("../js-sdk")
truffle(xdai)> sf = new SDK.Framework({ version: "v1", web3 })
truffle(xdai)> sf.initialize()
Initializing Superfluid Framework...
networkType private
chainId 100
Using @superfluid-finance/js-sdk in a non-native Truffle environment.
                Peer dependency @truffle/contract is required.
Set default from address to the first account 0xd66E40b0c30595bEc72153B502aC1E0c4785991B
Resolver at 0xD2009765189164b495c110D61e4D301729079911
Resolving contracts with version v1
Superfluid host contract: TruffleContract .host @0x2dFe937cD98Ab92e59cF3139138f18c823a4efE7
ConstantFlowAgreementV1: TruffleContract .agreements.cfa @0xEbdA4ceF883A7B12c4E669Ebc58927FBa8447C7D | Helper .cfa
InstantDistributionAgreementV1: TruffleContract .agreements.ida @0x7888ac96F987Eb10E291F34851ae0266eF912081 | Helper .ida
Superfluid Framework initialized.
truffle(xdai)> resolver = await TestResolver.at(sf.resolver.address)

### Listing Transaction Data

truffle(xdai)> mivaToken = await SuperToken.at("0x63e62989D9EB2d37dfDB1F93A22f063635b07d51")
truffle(xdai)> resolver.contract.methods.set("supertokens.v1.MIVA", mivaToken.address).encodeABI()
'0xa815ff15000000000000000000000000000000000000000000000000000000000000004000000000000000000000000063e62989d9eb2d37dfdb1f93a22f063635b07d5100000000000000000000000000000000000000000000000000000000000000137375706572746f6b656e732e76312e4d49564100000000000000000000000000'

### Submit Transactions

* Add `IMultiSigWallet` to remix:

interface IMultiSigWallet {
    function submitTransaction(address destination, uint value, bytes calldata data)
        external
        returns (uint transactionId);
}

* Submit transactions to targeting resolver address resolver.address and function `submitTransaction` of the transaction data.

* Confirm the transactions.

### Verification

truffle(xdai)> sf.resolver.get("supertokens.v1.MIVA")
'0x63e62989D9EB2d37dfDB1F93A22f063635b07d51'


gov-action-xdai-I-20210323-upgrade-contracts-to-v1.0.0-rc2.md

Date: 2021-03-23

Network: xDAI

Governance: Superfluid Governance I

Resolution

After the release of @superfluid-finance/[email protected], which includes fixes in CFA, Superfluid Host Contracts and Super Token logic contract. The governance will upgrade these contracts to the latest build, and also update token logic of existing tokens, including ETHX, and MIVA.

Execution Logs

$ git rev-parse HEAD
ed214bf55ee0a68fa7cf1966344078aa353a4ece

$ npx truffle --network xdai console

### Initialize
truffle(xdai)> SDK=require("../js-sdk")
truffle(xdai)> sf = new SDK.Framework({ version: "v1", web3 })
truffle(xdai)> sf.initialize()
Initializing Superfluid Framework...
networkType private
chainId 100
Using @superfluid-finance/js-sdk in a non-native Truffle environment.
                Peer dependency @truffle/contract is required.
Set default from address to the first account 0xd66E40b0c30595bEc72153B502aC1E0c4785991B
Resolver at 0xD2009765189164b495c110D61e4D301729079911
Resolving contracts with version v1
Superfluid host contract: TruffleContract .host @0x2dFe937cD98Ab92e59cF3139138f18c823a4efE7
ConstantFlowAgreementV1: TruffleContract .agreements.cfa @0xEbdA4ceF883A7B12c4E669Ebc58927FBa8447C7D | Helper .cfa
InstantDistributionAgreementV1: TruffleContract .agreements.ida @0x7888ac96F987Eb10E291F34851ae0266eF912081 | Helper .ida
Superfluid Framework initialized.

truffle(xdai)> host = await Superfluid.at(sf.host.address)
truffle(xdai)> gov = await ISuperfluidGovernance.at(await host.getGovernance())
truffle(xdai)> gov.address
'0x7e2647470764c9121FC6Dac303f328D76e326a24'
truffle(xdai)> sf.resolver.address
'0xD2009765189164b495c110D61e4D301729079911'
truffle(xdai)> resolver = await TestResolver.at(sf.resolver.address)

### Create New Logic Contracts

truffle(xdai)> newHostLogic = await Superfluid.new(false, true)
truffle(xdai)> newHostLogic.address
'0xCD68eCF79362C4568a4f5b22C9fd42474f470EBa'

truffle(xdai)> newFactoryLogic = await SuperTokenFactory.new(host.address)
truffle(xdai)> newFactoryLogic.address
'0xe196a9410778272f3a34996476644BE4dbE179d8'

truffle(xdai)> newCFALogic = await ConstantFlowAgreementV1.new()
truffle(xdai)> newCFALogic.address
'0x1281477cba47a861ab9bdF4994e3e9D809A4fdb6'

### Create Transaction Data

// Update Contracts
truffle(xdai)> gov.contract.methods.updateContracts(host.address, newHostLogic.address, [newCFALogic.address], newFactoryLogic.address).encodeABI()
'0x427942a40000000000000000000000002dfe937cd98ab92e59cf3139138f18c823a4efe7000000000000000000000000cd68ecf79362c4568a4f5b22c9fd42474f470eba0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000e196a9410778272f3a34996476644be4dbe179d800000000000000000000000000000000000000000000000000000000000000010000000000000000000000001281477cba47a861ab9bdf4994e3e9d809a4fdb6'

// ETHx
truffle(xdai)> gov.contract.methods.updateSuperTokenLogic(host.address, "0x9757d68A4273635c69D93B84ee3cdac2304DD467").encodeABI()
'0xfa6e0cfe0000000000000000000000002dfe937cd98ab92e59cf3139138f18c823a4efe70000000000000000000000009757d68a4273635c69d93b84ee3cdac2304dd467'

// MIVA
truffle(xdai)> gov.contract.methods.updateSuperTokenLogic(host.address, "0x63e62989D9EB2d37dfDB1F93A22f063635b07d51").encodeABI()
'0xfa6e0cfe0000000000000000000000002dfe937cd98ab92e59cf3139138f18c823a4efe700000000000000000000000063e62989d9eb2d37dfdb1f93a22f063635b07d51'

### Submit Transactions

* Add `IMultiSigWallet` to remix:

interface IMultiSigWallet {
    function submitTransaction(address destination, uint value, bytes calldata data)
        external
        returns (uint transactionId);
}

* Submit transactions to targeting governance address `0x7e2647470764c9121FC6Dac303f328D76e326a24` and function `submitTransaction`:
  - [x] gov.updateContracts (needing 5M gas limit)
  - [x] gov.updateSuperTokenLogic for ETHx
  - [x] gov.updateSuperTokenLogic for MIVA

* Confirm the transactions.


gov-action-xdai-I-20210416-upgrade-contracts-to-v1.0.0-rc3.md

Date: 2021-04-16

Network: xdai

Governance: Superfluid Governance I

Status: Resolved

Resolution

After the release of @superfluid-finance/[email protected], the governance will upgrade Superfluid Framework to the latest build, and also update token logic of existing listed tokens including xDAIx, ETHx, MIVA, WORKtx.

Execution Logs

Code Revision

$ git rev-parse HEAD
eab70d225e8f0aacc78b26994b0ebb87aa9d641a

Update Superfluid Framework

$ NO_NEW_GOVERNANCE=yes GOVERNANCE_TYPE=MULTISIG RELEASE_VERSION=v1 npx truffle --network xdai exec scripts/deploy-framework.js
Using network 'xdai'.

======== Deploying superfluid framework ========
reset superfluid framework:  false
chain ID:  100
protocol release version: v1
Checking ERC1820 deployment at 0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24
ERC1820 is already deployoed.
Using @superfluid-finance/js-sdk within a Truffle native environment.
                Truffle artifacts must be present.
Resolver address 0xD2009765189164b495c110D61e4D301729079911
Superfluid.v1 address 0x2dFe937cD98Ab92e59cF3139138f18c823a4efE7
Superfluid does not need new deployment.
Governance address 0x7e2647470764c9121FC6Dac303f328D76e326a24
Superfluid logic code has changed
SuperfluidLogic.new: started
SuperfluidLogic.new: done, gas used 4412194, gas price 1 Gwei
Superfluid new logic code address 0x1b0aF1c3DC92032989Bd31D91055A9Ab4676Db2b
ConstantFlowAgreementV1 logic code has changed
ConstantFlowAgreementV1.new: started
ConstantFlowAgreementV1.new: done, gas used 4069280, gas price 1 Gwei
New ConstantFlowAgreementV1 address 0xa3A9ea95b47048DE2F4Cac464D5d944bd9f7578a
ConstantFlowAgreementV1 new logic code address 0xa3A9ea95b47048DE2F4Cac464D5d944bd9f7578a
InstantDistributionAgreementV1 logic code has changed
InstantDistributionAgreementV1.new: started
InstantDistributionAgreementV1.new: done, gas used 5350958, gas price 1 Gwei
New InstantDistributionAgreementV1 address 0x44B0E0b813371a1168c5d9d47DEA074c68116DfD
InstantDistributionAgreementV1 new logic code address 0x44B0E0b813371a1168c5d9d47DEA074c68116DfD
SuperTokenFactory logic code has changed
SuperTokenFactoryHelper.new: started
SuperTokenFactoryHelper.new: done, gas used 4457134, gas price 1 Gwei
SuperTokenFactory.new: started
SuperTokenFactory.new: done, gas used 1031020, gas price 1 Gwei
SuperTokenFactory new logic code address 0x0872d200F74e4a45e830EccC9e8b8f605Df7cE06
Governance type: MultiSig
MultiSig address:  0x8e8F05f1aD16D20e66Bd0922b510332104ddAc7B
MultiSig data 0x427942a40000000000000000000000002dfe937cd98ab92e59cf3139138f18c823a4efe70000000000000000000000001b0af1c3dc92032989bd31d91055a9ab4676db2b00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000872d200f74e4a45e830eccc9e8b8f605df7ce060000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a3a9ea95b47048de2f4cac464d5d944bd9f7578a00000000000000000000000044b0e0b813371a1168c5d9d47dea074c68116dfd
multis.submitTransaction: started
multis.submitTransaction: done, gas used 282033, gas price 1 Gwei
======== Superfluid framework deployed ========

Update SuperToken Logic

$ for i in xDAIx ETHx MIVA WORKtx;do GOVERNANCE_TYPE=MULTISIG RELEASE_VERSION=v1 npx truffle --network xdai exec scripts/deploy-super-token.js : $i;done

Using network 'xdai'.

======== Deploying super token ========
Colon arguments [ 'xDAIx' ]
Underlying token name xDAIx
reset token:  false
chain ID:  100
protocol release version: v1
Initializing Superfluid Framework...
networkType private
chainId 100
Using @superfluid-finance/js-sdk within a Truffle native environment.
                Truffle artifacts must be present.
Resolver at 0xD2009765189164b495c110D61e4D301729079911
Resolving contracts with version v1
Superfluid host contract: TruffleContract .host 0x2dFe937cD98Ab92e59cF3139138f18c823a4efE7
ConstantFlowAgreementV1: TruffleContract .agreements.cfa | Helper .cfa 0xEbdA4ceF883A7B12c4E669Ebc58927FBa8447C7D
InstantDistributionAgreementV1: TruffleContract .agreements.ida | Helper .ida 0x7888ac96F987Eb10E291F34851ae0266eF912081
Superfluid Framework initialized.
SuperToken key at the resolver:  supertokens.v1.xDAIx
SuperToken address:  0x59988e47A3503AaFaA0368b9deF095c818Fdca01
The superToken already registered.
Latest SuperToken logic address 0x01374a350809A3B4031C5B9bF627cEB9a6879052
Current SuperToken logic address 0x5910683493f5f8242C5951e3b6E074F67E758882
SuperToken logic needs to be updated.
Updating supertoken's logic....
Governance type: MultiSig
MultiSig address:  0x8e8F05f1aD16D20e66Bd0922b510332104ddAc7B
MultiSig data 0xfa6e0cfe0000000000000000000000002dfe937cd98ab92e59cf3139138f18c823a4efe700000000000000000000000059988e47a3503aafaa0368b9def095c818fdca01
multis.submitTransaction: started
multis.submitTransaction: done, gas used 180281, gas price 1 Gwei
======== Super token deployed ========
Using network 'xdai'.

======== Deploying super token ========
Colon arguments [ 'ETHx' ]
Underlying token name ETHx
reset token:  false
chain ID:  100
protocol release version: v1
Initializing Superfluid Framework...
networkType private
chainId 100
Using @superfluid-finance/js-sdk within a Truffle native environment.
                Truffle artifacts must be present.
Resolver at 0xD2009765189164b495c110D61e4D301729079911
Resolving contracts with version v1
Superfluid host contract: TruffleContract .host 0x2dFe937cD98Ab92e59cF3139138f18c823a4efE7
ConstantFlowAgreementV1: TruffleContract .agreements.cfa | Helper .cfa 0xEbdA4ceF883A7B12c4E669Ebc58927FBa8447C7D
InstantDistributionAgreementV1: TruffleContract .agreements.ida | Helper .ida 0x7888ac96F987Eb10E291F34851ae0266eF912081
Superfluid Framework initialized.
SuperToken key at the resolver:  supertokens.v1.ETHx
SuperToken address:  0x9757d68A4273635c69D93B84ee3cdac2304DD467
The superToken already registered.
Latest SuperToken logic address 0x01374a350809A3B4031C5B9bF627cEB9a6879052
Current SuperToken logic address 0x5910683493f5f8242C5951e3b6E074F67E758882
SuperToken logic needs to be updated.
Updating supertoken's logic....
Governance type: MultiSig
MultiSig address:  0x8e8F05f1aD16D20e66Bd0922b510332104ddAc7B
MultiSig data 0xfa6e0cfe0000000000000000000000002dfe937cd98ab92e59cf3139138f18c823a4efe70000000000000000000000009757d68a4273635c69d93b84ee3cdac2304dd467
multis.submitTransaction: started
multis.submitTransaction: done, gas used 180281, gas price 1 Gwei
======== Super token deployed ========
Using network 'xdai'.

======== Deploying super token ========
Colon arguments [ 'MIVA' ]
Underlying token name MIVA
reset token:  false
chain ID:  100
protocol release version: v1
Initializing Superfluid Framework...
networkType private
chainId 100
Using @superfluid-finance/js-sdk within a Truffle native environment.
                Truffle artifacts must be present.
Resolver at 0xD2009765189164b495c110D61e4D301729079911
Resolving contracts with version v1
Superfluid host contract: TruffleContract .host 0x2dFe937cD98Ab92e59cF3139138f18c823a4efE7
ConstantFlowAgreementV1: TruffleContract .agreements.cfa | Helper .cfa 0xEbdA4ceF883A7B12c4E669Ebc58927FBa8447C7D
InstantDistributionAgreementV1: TruffleContract .agreements.ida | Helper .ida 0x7888ac96F987Eb10E291F34851ae0266eF912081
Superfluid Framework initialized.
SuperToken key at the resolver:  supertokens.v1.MIVA
SuperToken address:  0x63e62989D9EB2d37dfDB1F93A22f063635b07d51
The superToken already registered.
Latest SuperToken logic address 0x01374a350809A3B4031C5B9bF627cEB9a6879052
Current SuperToken logic address 0x5910683493f5f8242C5951e3b6E074F67E758882
SuperToken logic needs to be updated.
Updating supertoken's logic....
Governance type: MultiSig
MultiSig address:  0x8e8F05f1aD16D20e66Bd0922b510332104ddAc7B
MultiSig data 0xfa6e0cfe0000000000000000000000002dfe937cd98ab92e59cf3139138f18c823a4efe700000000000000000000000063e62989d9eb2d37dfdb1f93a22f063635b07d51
multis.submitTransaction: started
multis.submitTransaction: done, gas used 180281, gas price 1 Gwei
======== Super token deployed ========
Using network 'xdai'.

======== Deploying super token ========
Colon arguments [ 'WORKtx' ]
Underlying token name WORKtx
reset token:  false
chain ID:  100
protocol release version: v1
Initializing Superfluid Framework...
networkType private
chainId 100
Using @superfluid-finance/js-sdk within a Truffle native environment.
                Truffle artifacts must be present.
Resolver at 0xD2009765189164b495c110D61e4D301729079911
Resolving contracts with version v1
Superfluid host contract: TruffleContract .host 0x2dFe937cD98Ab92e59cF3139138f18c823a4efE7
ConstantFlowAgreementV1: TruffleContract .agreements.cfa | Helper .cfa 0xEbdA4ceF883A7B12c4E669Ebc58927FBa8447C7D
InstantDistributionAgreementV1: TruffleContract .agreements.ida | Helper .ida 0x7888ac96F987Eb10E291F34851ae0266eF912081
Superfluid Framework initialized.
SuperToken key at the resolver:  supertokens.v1.WORKtx
SuperToken address:  0xa025dF2bF4Ff47eC458AB41e89d3A9538a768EA9
The superToken already registered.
Latest SuperToken logic address 0x01374a350809A3B4031C5B9bF627cEB9a6879052
Current SuperToken logic address 0x5910683493f5f8242C5951e3b6E074F67E758882
SuperToken logic needs to be updated.
Updating supertoken's logic....
Governance type: MultiSig
MultiSig address:  0x8e8F05f1aD16D20e66Bd0922b510332104ddAc7B
MultiSig data 0xfa6e0cfe0000000000000000000000002dfe937cd98ab92e59cf3139138f18c823a4efe7000000000000000000000000a025df2bf4ff47ec458ab41e89d3a9538a768ea9
multis.submitTransaction: started
multis.submitTransaction: done, gas used 180281, gas price 1 Gwei
======== Super token deployed ========

Confirmation

Confirm all the transactions with sufficient gas limit.


gov-action-xdai-I-20210817-upgrade-contracts-to-v1.0.0-rc7.md

Execution Logs

Upgrade framework contracts

  • Github Workflow "Run Ethereum Contracts Script":
  • Protocol Admin MultiSig Transaction ID: 41

Upgrade Token Logic

  • Token List:
    • xDAIx: 0x59988e47A3503AaFaA0368b9deF095c818Fdca01
    • ETHx: 0x9757d68A4273635c69D93B84ee3cdac2304DD467
  • Github Workflow "Run Ethereum Contracts Script":
  • Protocol Admin MultiSig Transaction ID: 42, 43

gov-action-xdai-II-20210827-transition.md

Date: 2021-08-27

Resolution

An upgradable contract SuperfluidOwnableGovernanceII was deployed and settings from the previous deployment were replicated.

Execution Logs

Initialization

> protocolAdmin = "0x8e8F05f1aD16D20e66Bd0922b510332104ddAc7B"
> host = await ISuperfluid.at("0x2dFe937cD98Ab92e59cF3139138f18c823a4efE7")
> oldGov = await SuperfluidOwnableGovernance.at(await host.getGovernance())
> oldGov.address
'0x7e2647470764c9121FC6Dac303f328D76e326a24'
> cfaLiquidationPeriod = await oldGov.getCFAv1LiquidationPeriod(host.address, "0x0000000000000000000000000000000000000000")
> cfaLiquidationPeriod.toString()
'14400'
> rewardAddress = await oldGov.getRewardAddress(host.address, "0x0000000000000000000000000000000000000000")
> rewardAddress
'0x8e8F05f1aD16D20e66Bd0922b510332104ddAc7B'

Create new Governance

> govProxy = await SuperfluidGovernanceIIProxy.new()
> govProxy.address
'0xaCc7380323681fdb8a0B9F2FE7d69dDFf0664478'
> govLogic = await SuperfluidGovernanceII.new()
> govLogic.address
'0x41CDbF9bf562C5964F06C7E4D356607f18f97af7'
> govProxy.initializeProxy(govLogic.address)
> gov = await SuperfluidGovernanceII.at(govProxy.address)

> gov.setRewardAddress(host.address, "0x0000000000000000000000000000000000000000", rewardAddress)
> gov.setCFAv1LiquidationPeriod(host.address, "0x0000000000000000000000000000000000000000", cfaLiquidationPeriod)

> gov.transferOwnership(protocolAdmin)

Replace Governance

The old governance contract was then replaced by protocol admin (multisig).

Clone this wiki locally