new wallet if needed:
~ » hardhat create-wallet
start a dev node:
~ » hardhat node --network hardhat
deploy a new DAO:
~ » hardhat run scripts/create-proxy.js --network localhost
run seeds:
~ » hardhat run scripts/seeds.js --network localhost
scripts:
~ » hardhat run scripts/list-reimbursements.js --network localhost
~ » DEPLOY_KEY=0x0... hardhat run scripts/seeds.js --network rsk
new wallet if needed:
~ » hardhat create-wallet
start a dev node:
~ » hardhat node --network hardhat
deploy a new DAO:
~ » hardhat run scripts/create-proxy.js --network localhost
run seeds:
~ » hardhat run scripts/seeds.js --network localhost
scripts:
~ » hardhat run scripts/list-reimbursements.js --network localhost
when deploying to RSK:
setting a `DEPLOY_KEY` is possible:
https://github.com/67P/kredits-contracts/pull/213/files#diff-cf4ef7c51dc9f81cad1d504da0d1c3a3437ac7b7d1374ee7127886cf1d1a5092R72
~ » DEPLOY_KEY=0x0... hardhat run scripts/seeds.js --network rsk
Tested with node 12 and the fixed command for deploying the proxy. Almost works!
However, some of the seeds raised exceptions. Adding contributions failed with "Must have Kredits", and adding reimbursements failed with "Core only". These seem like actual logical bugs with the working contracts to me.
(hardhat *%) ~/src/kosmos/kredits/kredits-contracts $ npm run seed
> kredits-contracts@6.0.0 seed /home/basti/src/kosmos/kredits/kredits-contracts
> hardhat run scripts/seeds.js --network localhost
Sender account: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
funding 0x7e8f313c56f809188313aa274fa67ee58c31515d with 2 ETH
funding 0xa502eb4021f3b9ab62f75b57a94e1cfbf81fd827 with 2 ETH
[OK] kredits.Contributor.add([{"account":"0x7e8f313c56f809188313aa274fa67ee58c31515d","name":"bumi","kind":"person","url":"","github_username":"bumi","github_uid":318,"gitea_username":"bumi","wiki_username":"Bumi"},{"gasLimit":200000}]) => 0xdf3f474e74a09dc577145c3094cdd3ef908738206ff4e18de7c832bb29a5c244
[OK] kredits.Contributor.add([{"account":"0x49575f3DD9a0d60aE661BC992f72D837A77f05Bc","name":"raucao","kind":"person","url":"","github_username":"skddc","github_uid":842,"gitea_username":"raucao","wiki_username":"Basti"},{"gasLimit":200000}]) => 0xa9a25df4d7357833427a8c018b4fa96e3cce6c7479a2b811e6001365741424f4
[OK] kredits.Contributor.add([{"account":"0xF722709ECC3B05c19d02E82a2a4A4021B8F48C62","name":"Manuel","kind":"person","url":"","github_username":"fsmanuel","github_uid":54812,"wiki_username":"Manuel"},{"gasLimit":200000}]) => 0x3ae15b23b5ae36c24c0e5c77ae40ff4d0b7cf8181157b281308e1df87f20e3d4
[FAILED] kredits.Contribution.add([{"contributorId":1,"contributorIpfsHash":"QmWKCYGr2rSf6abUPaTYqf98urvoZxGrb7dbspFZA6oyVF","date":"2019-04-11","amount":500,"kind":"dev","description":"[67P/kredits-contracts] Test this thing","url":""},{"gasLimit":350000}])
Error: Error: VM Exception while processing transaction: reverted with reason string 'Must have Kredits'
[FAILED] kredits.Contribution.add([{"contributorId":2,"contributorIpfsHash":"QmcHzEeAM26HV2zHTf5HnZrCtCtGdEccL5kUtDakAB7ozB","date":"2019-04-11","amount":1500,"kind":"dev","description":"[67P/kredits-web] Reviewed stuff","url":""},{"gasLimit":350000}])
Error: Error: VM Exception while processing transaction: reverted with reason string 'Must have Kredits'
[FAILED] kredits.Contribution.add([{"contributorId":1,"contributorIpfsHash":"QmWKCYGr2rSf6abUPaTYqf98urvoZxGrb7dbspFZA6oyVF","date":"2019-04-11","amount":1500,"kind":"dev","description":"[67P/kredits-contracts] Add tests","url":""},{"gasLimit":350000}])
Error: Error: VM Exception while processing transaction: reverted with reason string 'Must have Kredits'
[FAILED] kredits.Contribution.add([{"contributorId":1,"contributorIpfsHash":"QmWKCYGr2rSf6abUPaTYqf98urvoZxGrb7dbspFZA6oyVF","date":"2019-04-11","amount":1500,"kind":"dev","description":"[67P/kredits-contracts] Introduce contribution token","url":""},{"gasLimit":350000}])
Error: Error: VM Exception while processing transaction: reverted with reason string 'Must have Kredits'
[FAILED] kredits.Contribution.add([{"contributorId":2,"contributorIpfsHash":"QmcHzEeAM26HV2zHTf5HnZrCtCtGdEccL5kUtDakAB7ozB","date":"2019-04-11","amount":5000,"kind":"dev","description":"[67P/kredits-web] Expense UI, first draft","url":""},{"gasLimit":350000}])
Error: Error: VM Exception while processing transaction: reverted with reason string 'Must have Kredits'
[FAILED] kredits.Reimbursement.add([{"amount":1116000,"recipientId":1,"token":"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599","expenses":[{"title":"Server rent","description":"Dedicated server: andromeda.kosmos.org, April 2020","amount":61,"currency":"EUR","date":"2020-05-28"},{"title":"Server rent","description":"Dedicated server: centaurus.kosmos.org, April 2020","amount":32,"currency":"EUR","date":"2020-05-28"}]},{"gasLimit":300000}])
Error: Error: VM Exception while processing transaction: reverted with reason string 'Core only'
[FAILED] kredits.Reimbursement.add([{"amount":166800,"recipientId":2,"token":"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599","expenses":[{"title":"Domain kosmos.chat","description":"Yearly registration fee for domain kosmos.chat","amount":13.9,"currency":"EUR","date":"2020-05-30"}]},{"gasLimit":300000}])
Error: Error: VM Exception while processing transaction: reverted with reason string 'Core only'
Done!
Tested with node 12 and the fixed command for deploying the proxy. Almost works!
However, some of the seeds raised exceptions. Adding contributions failed with "Must have Kredits", and adding reimbursements failed with "Core only". These seem like actual logical bugs with the working contracts to me.
```plain
(hardhat *%) ~/src/kosmos/kredits/kredits-contracts $ npm run seed
> kredits-contracts@6.0.0 seed /home/basti/src/kosmos/kredits/kredits-contracts
> hardhat run scripts/seeds.js --network localhost
Sender account: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
funding 0x7e8f313c56f809188313aa274fa67ee58c31515d with 2 ETH
funding 0xa502eb4021f3b9ab62f75b57a94e1cfbf81fd827 with 2 ETH
[OK] kredits.Contributor.add([{"account":"0x7e8f313c56f809188313aa274fa67ee58c31515d","name":"bumi","kind":"person","url":"","github_username":"bumi","github_uid":318,"gitea_username":"bumi","wiki_username":"Bumi"},{"gasLimit":200000}]) => 0xdf3f474e74a09dc577145c3094cdd3ef908738206ff4e18de7c832bb29a5c244
[OK] kredits.Contributor.add([{"account":"0x49575f3DD9a0d60aE661BC992f72D837A77f05Bc","name":"raucao","kind":"person","url":"","github_username":"skddc","github_uid":842,"gitea_username":"raucao","wiki_username":"Basti"},{"gasLimit":200000}]) => 0xa9a25df4d7357833427a8c018b4fa96e3cce6c7479a2b811e6001365741424f4
[OK] kredits.Contributor.add([{"account":"0xF722709ECC3B05c19d02E82a2a4A4021B8F48C62","name":"Manuel","kind":"person","url":"","github_username":"fsmanuel","github_uid":54812,"wiki_username":"Manuel"},{"gasLimit":200000}]) => 0x3ae15b23b5ae36c24c0e5c77ae40ff4d0b7cf8181157b281308e1df87f20e3d4
[FAILED] kredits.Contribution.add([{"contributorId":1,"contributorIpfsHash":"QmWKCYGr2rSf6abUPaTYqf98urvoZxGrb7dbspFZA6oyVF","date":"2019-04-11","amount":500,"kind":"dev","description":"[67P/kredits-contracts] Test this thing","url":""},{"gasLimit":350000}])
Error: Error: VM Exception while processing transaction: reverted with reason string 'Must have Kredits'
[FAILED] kredits.Contribution.add([{"contributorId":2,"contributorIpfsHash":"QmcHzEeAM26HV2zHTf5HnZrCtCtGdEccL5kUtDakAB7ozB","date":"2019-04-11","amount":1500,"kind":"dev","description":"[67P/kredits-web] Reviewed stuff","url":""},{"gasLimit":350000}])
Error: Error: VM Exception while processing transaction: reverted with reason string 'Must have Kredits'
[FAILED] kredits.Contribution.add([{"contributorId":1,"contributorIpfsHash":"QmWKCYGr2rSf6abUPaTYqf98urvoZxGrb7dbspFZA6oyVF","date":"2019-04-11","amount":1500,"kind":"dev","description":"[67P/kredits-contracts] Add tests","url":""},{"gasLimit":350000}])
Error: Error: VM Exception while processing transaction: reverted with reason string 'Must have Kredits'
[FAILED] kredits.Contribution.add([{"contributorId":1,"contributorIpfsHash":"QmWKCYGr2rSf6abUPaTYqf98urvoZxGrb7dbspFZA6oyVF","date":"2019-04-11","amount":1500,"kind":"dev","description":"[67P/kredits-contracts] Introduce contribution token","url":""},{"gasLimit":350000}])
Error: Error: VM Exception while processing transaction: reverted with reason string 'Must have Kredits'
[FAILED] kredits.Contribution.add([{"contributorId":2,"contributorIpfsHash":"QmcHzEeAM26HV2zHTf5HnZrCtCtGdEccL5kUtDakAB7ozB","date":"2019-04-11","amount":5000,"kind":"dev","description":"[67P/kredits-web] Expense UI, first draft","url":""},{"gasLimit":350000}])
Error: Error: VM Exception while processing transaction: reverted with reason string 'Must have Kredits'
[FAILED] kredits.Reimbursement.add([{"amount":1116000,"recipientId":1,"token":"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599","expenses":[{"title":"Server rent","description":"Dedicated server: andromeda.kosmos.org, April 2020","amount":61,"currency":"EUR","date":"2020-05-28"},{"title":"Server rent","description":"Dedicated server: centaurus.kosmos.org, April 2020","amount":32,"currency":"EUR","date":"2020-05-28"}]},{"gasLimit":300000}])
Error: Error: VM Exception while processing transaction: reverted with reason string 'Core only'
[FAILED] kredits.Reimbursement.add([{"amount":166800,"recipientId":2,"token":"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599","expenses":[{"title":"Domain kosmos.chat","description":"Yearly registration fee for domain kosmos.chat","amount":13.9,"currency":"EUR","date":"2020-05-30"}]},{"gasLimit":300000}])
Error: Error: VM Exception while processing transaction: reverted with reason string 'Core only'
Done!
```
Kredits Web wasn't able to find the contracts with any of the addresses in lib/addresses though. The DAO address seems to not have been updated in that file.
@bumi Seeds are all successful now! :clap:
Kredits Web wasn't able to find the contracts with any of the addresses in `lib/addresses` though. The DAO address seems to not have been updated in that file.
what is the exact error there? because we don't have any kit/DAO anymore.
kredits.Contributor will directly load the contract address from the JSON now.
what is the exact error there? because we don't have any kit/DAO anymore.
kredits.Contributor will directly load the contract address from the JSON now.
@bumi Could you perhaps remove all scripts currently remaining in package.json that are not relevant anymore? I'm trying to compile the contracts, but those commands are also failing. I think they're just outdated.
Edit: and ideally the bootstrap command could be updated to include all current/new steps to compile, deploy, and seed from scratch. (I'm updating the Kredits Web README on the side while testing this branch.)
@bumi Could you perhaps remove all scripts currently remaining in `package.json` that are not relevant anymore? I'm trying to compile the contracts, but those commands are also failing. I think they're just outdated.
Edit: and ideally the bootstrap command could be updated to include all current/new steps to compile, deploy, and seed from scratch. (I'm updating the Kredits Web README on the side while testing this branch.)
raucao
(Migrated from github.com)
reviewed 2022-04-25 20:25:40 +00:00
@bumi Please check the kredits chat room for my reporting of a problem with Reimbursement contract.
All function calls other than `add()` seem to be failing consistently. Everything else seems to work great, incl. on node.js 14 and 16, now (since https://github.com/67P/kredits-contracts/pull/213/commits/53fafc1c78aebb749158d9a4b75b26b028710498).
@bumi Which of the todo items in the PR description are actually still open? Also, what do you think about my proposal on chat?
maybe it's better to remove the task for tests from the PR and open an issue instead?
probably best to merge and do all the remaining work in new issues and PRs
I finished up all the work on the Kredits Web side last Tuesday, including the final touches to the current reimbursement code as well as switching everything from ETH/WBTC to RSK/BTC and showing the balance of the multisig wallet in the budget section. Would be useful if someone could review my work, so we can merge and continue with the rest:
@bumi Which of the todo items in the PR description are actually still open? Also, what do you think about my proposal on chat?
> maybe it's better to remove the task for tests from the PR and open an issue instead?
> probably best to merge and do all the remaining work in new issues and PRs
I finished up all the work on the Kredits Web side last Tuesday, including the final touches to the current reimbursement code as well as switching everything from ETH/WBTC to RSK/BTC and showing the balance of the multisig wallet in the budget section. Would be useful if someone could review my work, so we can merge and continue with the rest:
* https://github.com/67P/kredits-web/pulls
* https://gitea.kosmos.org/kosmos/akkounts/pulls/71
Somewhat it seems some transactions are missing on RSK?!
one deploy and upgrade run on rinkeby:
one deploy and upgrade run on rsk (?!):
(the last transaction is probably from another upgrade run)
Deployment and upgrading works fine on rinkeby (I did not try permissions, though).
but I fail to do it on RSK.
Error:
```
Contributor upgraded
Contributor address: 0x8BeeFC2aC1Ac66d70e979DbB55D9bdFfc2A231E0
/Users/bumi/src/kosmos/kredits-contracts/node_modules/@ethersproject/logger/src.ts/index.ts:261
const error: any = new Error(message);
^
Error: transaction failed [ See: https://links.ethers.org/v5-errors-CALL_EXCEPTION ] (transactionHash="0x2579b5dbb83423e8a452e78a50b15f380f35013cda5a044f265f6ffabe630f33", transaction={"hash":"0x2579b5dbb83423e8a452e78a50b15f380f35013cda5a044f265f6ffabe630f33","type":0,"accessList":null,"blockHash":null,"blockNumber":null,"transactionIndex":null,"confirmations":0,"from":"0x3C7d35e34c21e14C88B198DaF4421edEf3578aFB","gasPrice":{"type":"BigNumber","hex":"0x03e252e0"},"gasLimit":{"type":"BigNumber","hex":"0x6128"},"to":"0x3E03157644751CdedD9301500615Cc03B7FAEa27","value":{"type":"BigNumber","hex":"0x00"},"nonce":146,"data":"0x99a88ec40000000000000000000000008beefc2ac1ac66d70e979dbb55d9bdffc2a231e00000000000000000000000006626b372a28199f54958c098bee436b4e09ee460","r":"0xda98eb74610b00dcb9971b199c282543418f84278064728253092e4f90963576","s":"0x12641aa0b7e0b8ee9ceeb1615ba4f14d085dd9e5079ea3356cb2c8881f704d3e","v":97,"creates":null,"chainId":31}, receipt={"to":"0x3E03157644751CdedD9301500615Cc03B7FAEa27","from":"0x3C7d35e34c21e14C88B198DaF4421edEf3578aFB","contractAddress":null,"transactionIndex":1,"gasUsed":{"type":"BigNumber","hex":"0x6128"},"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","blockHash":"0xb7d6fbb2cdcf4e0fe9909c5b600ae5656945cae11c6ef723eea8ea47b7c3ae87","transactionHash":"0x2579b5dbb83423e8a452e78a50b15f380f35013cda5a044f265f6ffabe630f33","logs":[],"blockNumber":2983505,"confirmations":1,"cumulativeGasUsed":{"type":"BigNumber","hex":"0x01fc3a"},"status":0,"type":0,"byzantium":true}, code=CALL_EXCEPTION, version=providers/5.6.4)
at Logger.makeError (/Users/bumi/src/kosmos/kredits-contracts/node_modules/@ethersproject/logger/src.ts/index.ts:261:28)
at Logger.throwError (/Users/bumi/src/kosmos/kredits-contracts/node_modules/@ethersproject/logger/src.ts/index.ts:273:20)
at EthersProviderWrapper.<anonymous> (/Users/bumi/src/kosmos/kredits-contracts/node_modules/@ethersproject/providers/src.ts/base-provider.ts:1532:24)
at step (/Users/bumi/src/kosmos/kredits-contracts/node_modules/@ethersproject/providers/lib/base-provider.js:48:23)
at Object.next (/Users/bumi/src/kosmos/kredits-contracts/node_modules/@ethersproject/providers/lib/base-provider.js:29:53)
at fulfilled (/Users/bumi/src/kosmos/kredits-contracts/node_modules/@ethersproject/providers/lib/base-provider.js:20:58)
```
When I look at the [deploy and upgrade transactions on rinkeby](https://rinkeby.etherscan.io/address/0x3c7d35e34c21e14c88b198daf4421edef3578afb) those look different to the ones [on RSK](https://explorer.testnet.rsk.co/address/0x3c7d35e34c21e14c88b198daf4421edef3578afb)
Somewhat it seems some transactions are missing on RSK?!
one deploy and upgrade run on rinkeby:
<img width="917" alt="image" src="https://user-images.githubusercontent.com/318/177594937-b57f9919-51d2-494f-89c9-79dda3042e1c.png">
one deploy and upgrade run on rsk (?!):
<img width="1142" alt="image" src="https://user-images.githubusercontent.com/318/177595090-c4b31093-d49c-476e-9c15-4d25d0ee6492.png">
(the last transaction is probably from another upgrade run)
raucao
(Migrated from github.com)
approved these changes 2022-07-14 13:31:28 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
byebye aragon apps
refactoring the contracts for usage with hardhat
https://community.kosmos.org/t/the-road-to-mainnet/115
ToDos:
@bumi wow! What a diff. I'm jealous. Looks like all the hacks are gone...
Can someone look at the permissions? @raucao
I am a bit 🧠 💀 today
new wallet if needed:
~ » hardhat create-wallet
start a dev node:
~ » hardhat node --network hardhat
deploy a new DAO:
~ » hardhat run scripts/create-proxy.js --network localhost
run seeds:
~ » hardhat run scripts/seeds.js --network localhost
scripts:
~ » hardhat run scripts/list-reimbursements.js --network localhost
when deploying to RSK:
setting a
DEPLOY_KEYis possible:https://github.com/67P/kredits-contracts/pull/213/files#diff-cf4ef7c51dc9f81cad1d504da0d1c3a3437ac7b7d1374ee7127886cf1d1a5092R72
~ » DEPLOY_KEY=0x0... hardhat run scripts/seeds.js --network rsk
Tested with node 12 and the fixed command for deploying the proxy. Almost works!
However, some of the seeds raised exceptions. Adding contributions failed with "Must have Kredits", and adding reimbursements failed with "Core only". These seem like actual logical bugs with the working contracts to me.
yeah, seems like. maybe we should a check that this is only the case if there are less than X kredits ?
Hmm, the
isCorecheck in the contract still uses IDs, not kredits. So I wonder which validation is failing there.@bumi Seeds are all successful now! 👏
Kredits Web wasn't able to find the contracts with any of the addresses in
lib/addressesthough. The DAO address seems to not have been updated in that file.hmm. but when you run the
create-proxy.jsscript the addresses file changes?do you have that linked to kredits-web?
The contract addresses do, but the DAO and KreditsKit don't.
what is the exact error there? because we don't have any kit/DAO anymore.
kredits.Contributor will directly load the contract address from the JSON now.
kredits.setup()results in:@bumi Could you perhaps remove all scripts currently remaining in
package.jsonthat are not relevant anymore? I'm trying to compile the contracts, but those commands are also failing. I think they're just outdated.Edit: and ideally the bootstrap command could be updated to include all current/new steps to compile, deploy, and seed from scratch. (I'm updating the Kredits Web README on the side while testing this branch.)
This line makes the script exit in node 14 and 16 (but not 12), but unfortunately without throwing an error. I wasn't able to find out why yet.
@bumi Please check the kredits chat room for my reporting of a problem with Reimbursement contract.
All function calls other than
add()seem to be failing consistently. Everything else seems to work great, incl. on node.js 14 and 16, now (since https://github.com/67P/kredits-contracts/pull/213/commits/53fafc1c78aebb749158d9a4b75b26b028710498).@bumi Were you able to confirm that the
Reimbursementfunctions either work or fail on your (new) machine?@bumi Which of the todo items in the PR description are actually still open? Also, what do you think about my proposal on chat?
I finished up all the work on the Kredits Web side last Tuesday, including the final touches to the current reimbursement code as well as switching everything from ETH/WBTC to RSK/BTC and showing the balance of the multisig wallet in the budget section. Would be useful if someone could review my work, so we can merge and continue with the rest:
I tested everything locally again and added an example on how to upgrade a contract.
Let's merge this and run it on RSK testnet again.
Deployment and upgrading works fine on rinkeby (I did not try permissions, though).
but I fail to do it on RSK.
Error:
When I look at the deploy and upgrade transactions on rinkeby those look different to the ones on RSK
Somewhat it seems some transactions are missing on RSK?!
one deploy and upgrade run on rinkeby:

one deploy and upgrade run on rsk (?!):

(the last transaction is probably from another upgrade run)
Let's merge!