This script deploys a new app version, upgrades the given DAO to the
latest version of that app and builds the ABI files for the wrapper.
usage:
scripts/upgrade.sh <app name> <dao address>
e.g.
scripts/upgrade.sh token 0xfoobar
The DAO address can also be set as environment variable
$KREDITS_DAO_ADDRESS
It seems that the entity is either defined by the permission or if we
want to use the oracle the permission must be defined for any_entity.
In that case the oracle does not get the msg.sender as who/entity thus
we will use tx.origin in that case.
different networks might require different apm domains. We set those in
the arapp.json file which we can reuise to init the kredits instance in
the helper scripts.
This dynamically hashes the app id which makes it easier to manually set
contract addresses. This is useful in development environments with no
default network ids.
The used apm (which is part of the app id hash) is configurable.
usage:
new Kredits(provider, signer, { addresses: { Kernel: '0x...' }, apm: 'aragonpm.eth' })
Ideally eth-provider checks which connection is available and uses the
available one.
frame => local node => infura
But it seems there is still a bug and it raises an error if frame is not
available.
But at least we can use frame now for testnet/mainnet deployments
this mainly allows us to check if an account has a certain role and thus
if the account can call specific contract functions.
At some point we might want to extend that to support the check if an
account can call the function. For that we would need to have a mapping
between function names and roles, which we have not right now.
Allows anybody with the VETO_CONTRIBUTION_ROLE to veto a contribution
and thus prevent that the contribution can be claimed.
So far like the ADD_CONTRIBUTION_ROLE any contributor is allowed to
veto.