@aragonone/apps-token-wrapper
v1.0.1
Published
Aragon token wrapper app
Downloads
16
Keywords
Readme
Token Wrapper
Token Wrapper is an Aragon app offering a checkpointed ERC20 token interface that is usable in Aragon Voting applications. Its purpose is to bridge external, "vanilla" ERC20 tokens to a checkpointed token.
Token holders of the outside token have the ability to wrap and unwrap their tokens to gain or decrease balance in this wrapped token.
🚨 Security review status: audited
The TokenWrapper
contract was last professionally audited in 2020-01.
This version was published to aragonPM as token-wrapper.hatch.aragonpm.eth
.
Caveats
In efforts to save gas costs and space to introduce the checkpointing, token amounts are limited to uint192
. This should not pose a problem for any token, but as uint192
supports a very large range of numbers, but the TokenWrapper will stop accepting deposits once if it hits 2^192 - 1
.
Installation Tutorial
Prerequisites: aragonCLI is needed to install the Token Wrapper into a DAO. Also note that you may have to change --env aragon:rinkeby
for --env aragon:mainnet
if the organization is on mainnet.
1. The first step is to install the Token Wrapper into your DAO:
dao install <DAO address> token-wrapper.hatch.aragonpm.eth --app-init-args <token address> <wrapped token name> <wrapped token symbol> --env aragon:rinkeby
The token address
is the address of the ERC20 token you would like to "wrap" into an organizational token.
You can verify that the Token Wrapper app was installed into your organization with:
dao apps <DAO address> --all --env aragon:rinkeby
2. Next, create a permission for the TokenWrapper:
dao acl create <DAO address> <Token Wrapper app address> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff <Voting app address> <Voting app address> --env aragon:rinkeby
You can get the installed Token Wrapper's address by listing the apps of your DAO with the following command:
dao apps <DAO address> --all --env aragon:rinkeby
At this point, you should be able to view the Token Wrapper app in the Aragon client. You can try it out by wrapping one of your tokens.
3. Then, create a new Voting app instance powered by your Token Wrapper:
dao install <DAO address> voting --app-init-args <Token Wrapper address> 500000000000000000 150000000000000000 604800 --env aragon:rinkeby
The command above uses the following voting parameters:
500000000000000000
: 50% minimum support150000000000000000
: 15% minimum approval604800
: Voting period of 7 days (604800 seconds)
4. And finally, create a permission for the new Voting app instance:
dao acl create <DAO address> <new Voting app address> CREATE_VOTES_ROLE <Token Wrapper address> <new Voting app address> --env aragon:rinkeby
This will let anyone who has wrapped at least one of their existing token to create a new vote, as well as vote in any open votes.