Registry.vy
vyper:
0.2.8
Events
{{< hint info >}} NewRelease
release_id: uint256, indexedtemplate: address, notIndexedapi_version: string, notIndexed {{< /hint >}}
{{< hint info >}} NewVault
token: address, indexeddeployment_id: uint256, indexedvault: address, notIndexedapi_version: string, notIndexed {{< /hint >}}
{{< hint info >}} NewExperimentalVault
token: address, indexeddeployer: address, indexedvault: address, notIndexedapi_version: string, notIndexed {{< /hint >}}
{{< hint info >}} NewGovernance
governance: address, notIndexed {{< /hint >}}
{{< hint info >}} VaultTagged
vault: address, notIndexedtag: string, notIndexed {{< /hint >}}
Methods
setGovernance
type:
nonpayable functiongas:36218
Starts the 1st phase of the governance transfer.
Throws if the caller is not current governance.
Arguments:
governance: - The next governance address
acceptGovernance
type:
nonpayable functiongas:37490
Completes the 2nd phase of the governance transfer.
Throws if the caller is not the pending caller. Emits a NewGovernance event.
latestRelease
type:
view functiongas:6804
Returns the api version of the latest release.
Throws if no releases are registered yet.
Returns:
_0- The api version of the latest release.
latestVault
type:
view functiongas:2560
Returns the latest deployed vault for the given token.
Throws if no deployments are endorsed yet for the given token.
Arguments:
token: - The token address to find the latest deployment for.
Returns:
_0- The address of the latest deployment.
newRelease
type:
nonpayable functiongas:166808
Add a previously deployed Vault as the template contract for the latest release, to be used by further "forwarder-style" delegatecall proxy contracts that can be deployed from the registry throw other methods (to save gas).
Throws if caller isn't self.governance. Throws if vault's governance isn't self.governance. Throws if the api version is the same as the previous release. Emits a NewVault event.
Arguments:
vault: - The vault that will be used as the template contract for the next release.
newVault
type:
nonpayable functiongas:136989
Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Also adds the new vault to the list of "endorsed" vaults for that token.
governance is set in the new vault as self.governance, with no ability to override. Throws if caller isn't self.governance. Throws if no releases are registered yet. Throws if there already is a deployment for the given token with the latest api version. Emits a NewVault event.
Arguments:
token: - The token that may be deposited into the new Vault.guardian: - The address authorized for guardian interactions in the new Vault.rewards: - The address to use for collecting rewards in the new Vaultname: - Specify a custom Vault name. Set to empty string for default choice.symbol: - Specify a custom Vault symbol name. Set to empty string for default choice.
Returns:
_0- The address of the newly-deployed vault
newExperimentalVault
type:
nonpayable functiongas:61714
Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Does not add the new vault to the list of "endorsed" vaults for that token.
Throws if no releases are registered yet. Emits a NewExperimentalVault event.
Arguments:
token: - The token that may be deposited into the new Vault.governance: - The address authorized for governance interactions in the new Vault.guardian: - The address authorized for guardian interactions in the new Vault.rewards: - The address to use for collecting rewards in the new Vaultname: - Specify a custom Vault name. Set to empty string for default choice.symbol: - Specify a custom Vault symbol name. Set to empty string for default choice.
Returns:
_0- The address of the newly-deployed vault
endorseVault
type:
nonpayable functiongas:88812
Adds an existing vault to the list of "endorsed" vaults for that token.
governance is set in the new vault as self.governance, with no ability to override. Throws if caller isn't self.governance. Throws if vault's governance isn't self.governance. Throws if no releases are registered yet. Throws if vault's api version does not match latest release. Throws if there already is a deployment for the vault's token with the latest api version. Emits a NewVault event.
Arguments:
vault: - The vault that will be endorsed by the Registry.
setBanksy
type:
nonpayable function
Set the ability of a particular tagger to tag current vaults.
Throws if caller is not self.governance.
Arguments:
tagger: - The address to approve or deny access to tagging.allowed: - Whether to approve or denytagger. Defaults to approve.
setBanksy
type:
nonpayable function
Throws if caller is not self.governance.
Arguments:
tagger: - The address to approve or deny access to tagging.allowed: - Whether to approve or denytagger. Defaults to approve.
tagVault
type:
nonpayable functiongas:186127
Tag a Vault with a message.
Throws if caller is not self.governance or an approved tagger. Emits a VaultTagged event.
Arguments:
vault: - The address to tag with the giventagmessage.tag: - The message to tagvaultwith.
ABI
[
{
"name": "NewRelease",
"inputs": [
{
"type": "uint256",
"name": "release_id",
"indexed": true
},
{
"type": "address",
"name": "template",
"indexed": false
},
{
"type": "string",
"name": "api_version",
"indexed": false
}
],
"anonymous": false,
"type": "event"
},
{
"name": "NewVault",
"inputs": [
{
"type": "address",
"name": "token",
"indexed": true
},
{
"type": "uint256",
"name": "deployment_id",
"indexed": true
},
{
"type": "address",
"name": "vault",
"indexed": false
},
{
"type": "string",
"name": "api_version",
"indexed": false
}
],
"anonymous": false,
"type": "event"
},
{
"name": "NewExperimentalVault",
"inputs": [
{
"type": "address",
"name": "token",
"indexed": true
},
{
"type": "address",
"name": "deployer",
"indexed": true
},
{
"type": "address",
"name": "vault",
"indexed": false
},
{
"type": "string",
"name": "api_version",
"indexed": false
}
],
"anonymous": false,
"type": "event"
},
{
"name": "NewGovernance",
"inputs": [
{
"type": "address",
"name": "governance",
"indexed": false
}
],
"anonymous": false,
"type": "event"
},
{
"name": "VaultTagged",
"inputs": [
{
"type": "address",
"name": "vault",
"indexed": false
},
{
"type": "string",
"name": "tag",
"indexed": false
}
],
"anonymous": false,
"type": "event"
},
{
"outputs": [],
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"name": "setGovernance",
"outputs": [],
"inputs": [
{
"type": "address",
"name": "governance"
}
],
"stateMutability": "nonpayable",
"type": "function",
"gas": 36218
},
{
"name": "acceptGovernance",
"outputs": [],
"inputs": [],
"stateMutability": "nonpayable",
"type": "function",
"gas": 37490
},
{
"name": "latestRelease",
"outputs": [
{
"type": "string",
"name": ""
}
],
"inputs": [],
"stateMutability": "view",
"type": "function",
"gas": 6804
},
{
"name": "latestVault",
"outputs": [
{
"type": "address",
"name": ""
}
],
"inputs": [
{
"type": "address",
"name": "token"
}
],
"stateMutability": "view",
"type": "function",
"gas": 2560
},
{
"name": "newRelease",
"outputs": [],
"inputs": [
{
"type": "address",
"name": "vault"
}
],
"stateMutability": "nonpayable",
"type": "function",
"gas": 166808
},
{
"name": "newVault",
"outputs": [
{
"type": "address",
"name": ""
}
],
"inputs": [
{
"type": "address",
"name": "token"
},
{
"type": "address",
"name": "guardian"
},
{
"type": "address",
"name": "rewards"
},
{
"type": "string",
"name": "name"
},
{
"type": "string",
"name": "symbol"
}
],
"stateMutability": "nonpayable",
"type": "function",
"gas": 136989
},
{
"name": "newExperimentalVault",
"outputs": [
{
"type": "address",
"name": ""
}
],
"inputs": [
{
"type": "address",
"name": "token"
},
{
"type": "address",
"name": "governance"
},
{
"type": "address",
"name": "guardian"
},
{
"type": "address",
"name": "rewards"
},
{
"type": "string",
"name": "name"
},
{
"type": "string",
"name": "symbol"
}
],
"stateMutability": "nonpayable",
"type": "function",
"gas": 61714
},
{
"name": "endorseVault",
"outputs": [],
"inputs": [
{
"type": "address",
"name": "vault"
}
],
"stateMutability": "nonpayable",
"type": "function",
"gas": 88812
},
{
"name": "setBanksy",
"outputs": [],
"inputs": [
{
"type": "address",
"name": "tagger"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"name": "setBanksy",
"outputs": [],
"inputs": [
{
"type": "address",
"name": "tagger"
},
{
"type": "bool",
"name": "allowed"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"name": "tagVault",
"outputs": [],
"inputs": [
{
"type": "address",
"name": "vault"
},
{
"type": "string",
"name": "tag"
}
],
"stateMutability": "nonpayable",
"type": "function",
"gas": 186127
},
{
"name": "nextRelease",
"outputs": [
{
"type": "uint256",
"name": ""
}
],
"inputs": [],
"stateMutability": "view",
"type": "function",
"gas": 1451
},
{
"name": "releases",
"outputs": [
{
"type": "address",
"name": ""
}
],
"inputs": [
{
"type": "uint256",
"name": "arg0"
}
],
"stateMutability": "view",
"type": "function",
"gas": 1596
},
{
"name": "nextDeployment",
"outputs": [
{
"type": "uint256",
"name": ""
}
],
"inputs": [
{
"type": "address",
"name": "arg0"
}
],
"stateMutability": "view",
"type": "function",
"gas": 1726
},
{
"name": "vaults",
"outputs": [
{
"type": "address",
"name": ""
}
],
"inputs": [
{
"type": "address",
"name": "arg0"
},
{
"type": "uint256",
"name": "arg1"
}
],
"stateMutability": "view",
"type": "function",
"gas": 1871
},
{
"name": "governance",
"outputs": [
{
"type": "address",
"name": ""
}
],
"inputs": [],
"stateMutability": "view",
"type": "function",
"gas": 1571
},
{
"name": "tags",
"outputs": [
{
"type": "string",
"name": ""
}
],
"inputs": [
{
"type": "address",
"name": "arg0"
}
],
"stateMutability": "view",
"type": "function",
"gas": 10172
},
{
"name": "banksy",
"outputs": [
{
"type": "bool",
"name": ""
}
],
"inputs": [
{
"type": "address",
"name": "arg0"
}
],
"stateMutability": "view",
"type": "function",
"gas": 1846
}
]
Byte code
0x336004556114ea56341561000a57600080fd5b6004361015610018576114dc565b600035601c5263ab033ea960005114156100525760043560a01c1561003c57600080fd5b600454331461004a57600080fd5b600435600555005b63238efcbc60005114156100a057600554331461006e57600080fd5b3360045533610140527f4f386975ea1c2f7cf1845b08bee00626fbb624ecad16254d63d9bb9ba86526de6020610140a1005b637be0ca5e60005114156101785760606101a0600463258294106101405261015c60016000546001808210156100d557600080fd5b8082039050905060e05260c052604060c020545afa6100f357600080fd5b603f3d1161010057600080fd5b601d6101a06101a05101511061011557600080fd5b6000506101c08051602001806102408284600060045af161013557600080fd5b5050610240518061026001818260206001820306601f82010390500336823750506020610220526040610240510160206001820306601f8201039050610220f350005b63e177dc7060005114156101e45760043560a01c1561019657600080fd5b600360043560e05260c052604060c020600260043560e05260c052604060c020546001808210156101c657600080fd5b8082039050905060e05260c052604060c0205460005260206000f350005b600015610429575b61016052610140526000546101805260006101805111156102d2576060610440600463258294106103e0526103fc610140515afa61022957600080fd5b603f3d1161023657600080fd5b601d6104406104405101511061024b57600080fd5b600050610460602001516060610380600463258294106103205261033c60016101805160018082101561027d57600080fd5b8082039050905060e05260c052604060c020545afa61029b57600080fd5b603f3d116102a857600080fd5b601d610380610380510151106102bd57600080fd5b6000506103a060200151186102d157600080fd5b5b6101405160016101805160e05260c052604060c020556101805160018181830110156102fd57600080fd5b808201905090506000556060610200600463258294106101a0526101bc610140515afa61032957600080fd5b603f3d1161033657600080fd5b601d6102006102005101511061034b57600080fd5b6000506102208051602001806102608284600060045af161036b57600080fd5b5050610140516103005260406102c0526102c051610320526102608051602001806102c051610300018284600060045af16103a557600080fd5b50506102c05161030001518060206102c051610300010101818260206001820306601f820103905003368237505060206102c051610300015160206001820306601f82010390506102c05101016102c052610180517fa6fbd216b6734f34092f1be6b7247e1551a6d4f2d5000c53721cfdc119a5b7cf6102c051610300a261016051565b6000156106b2575b61018052610140526101605260026101405160e05260c052604060c020546101a05260006101a0511115610539576060610460600463258294106104005261041c610160515afa61048157600080fd5b603f3d1161048e57600080fd5b601d610460610460510151106104a357600080fd5b6000506104806020015160606103a0600463258294106103405261035c60036101405160e05260c052604060c0206101a0516001808210156104e457600080fd5b8082039050905060e05260c052604060c020545afa61050257600080fd5b603f3d1161050f57600080fd5b601d6103a06103a05101511061052457600080fd5b6000506103c0602001511861053857600080fd5b5b6101605160036101405160e05260c052604060c0206101a05160e05260c052604060c020556101a051600181818301101561057357600080fd5b8082019050905060026101405160e05260c052604060c020556060610220600463258294106101c0526101dc610160515afa6105ae57600080fd5b603f3d116105bb57600080fd5b601d610220610220510151106105d057600080fd5b6000506102408051602001806102808284600060045af16105f057600080fd5b5050610160516103205260406102e0526102e051610340526102808051602001806102e051610320018284600060045af161062a57600080fd5b50506102e05161032001518060206102e051610320010101818260206001820306601f820103905003368237505060206102e051610320015160206001820306601f82010390506102e05101016102e0526101a051610140517fce089905ba4a4d622553bcb5646fd23e895c256f0376eee04e99e61cec1dc7e86102e051610320a361018051565b6333990d4b60005114156107bb5760043560a01c156106d057600080fd5b60045433146106de57600080fd5b3360206101a06004635aa6e6756101405261015c6004355afa61070057600080fd5b601f3d1161070d57600080fd5b6000506101a0511461071e57600080fd5b6004356101405261014051600658016101ec565b60005060206101a0600463fc0c546a6101405261015c6004355afa61075657600080fd5b601f3d1161076357600080fd5b6000506101a0516101c0526101405161016051610180516101a0516101c0516101c0516101e05260043561020052610200516101e05160065801610431565b6101c0526101a052610180526101605261014052600050005b6000156109d7575b610200526101405261016052610180526101a0526101c0526101e052610220526000610300525b6102205160206001820306601f82010390506103005110151561080c57610825565b61030051610240015261030051602001610300526107ea565b6102a0526000610300525b6102a05160206001820306601f8201039050610300511015156108525761086b565b610300516102c001526103005160200161030052610830565b6000507f6033600c60003960336000f33660006000376110006000366000730000000000610340526c0100000000000000000000000060016000546001808210156108b557600080fd5b8082039050905060e05260c052604060c020540261035b527f5af4602c57600080fd5b6110006000f30000000000000000000000000000000061036f5260606103406000f08061090457600080fd5b61032052610320513b61091657600080fd5b6000600061016460c063a5b81fdf6103405261014051610360526101605161038052610180516103a052806103c0526102208080516020018084610360018284600060045af161096557600080fd5b50508051820160206001820306601f8201039050602001915050806103e0526102a08080516020018084610360018284600060045af16109a457600080fd5b5050506101a0516104005261035c90506000610320515af16109c557600080fd5b61032051600052600051610200515650005b63108ca11e6000511415610c115760043560a01c156109f557600080fd5b60243560a01c15610a0557600080fd5b60443560a01c15610a1557600080fd5b6060606435600401610140376040606435600401351115610a3557600080fd5b60406084356004016101c0376020608435600401351115610a5557600080fd5b6004543314610a6357600080fd5b6101405161016051610180516101a0516101c0516101e051610200516102205160c0600435610240523361026052604435610280526024356102a052806102c0526101408080516020018084610240018284600060045af1610ac457600080fd5b50508051820160206001820306601f8201039050602001915050806102e0526101c08080516020018084610240018284600060045af1610b0357600080fd5b505050506102e051806102400180518060206001820306601f820103905082016103e0525050505b6103006103e0511015610b3d57610b52565b6103e0515160206103e051036103e052610b2b565b6102e0516102c0516102a051610280516102605161024051600658016107c3565b6104005261022052610200526101e0526101c0526101a05261018052610160526101405261040051610220526101405161016051610180516101a0516101c0516101e0516102005161022051600435610240526102205161026052610260516102405160065801610431565b61022052610200526101e0526101c0526101a0526101805261016052610140526000506102205160005260206000f350005b635b73aa0d6000511415610f085760043560a01c15610c2f57600080fd5b60243560a01c15610c3f57600080fd5b60443560a01c15610c4f57600080fd5b60643560a01c15610c5f57600080fd5b6060608435600401610140376040608435600401351115610c7f57600080fd5b604060a4356004016101c037602060a435600401351115610c9f57600080fd5b6101405161016051610180516101a0516101c0516101e051610200516102205160c06004356102405260243561026052606435610280526044356102a052806102c0526101408080516020018084610240018284600060045af1610d0257600080fd5b50508051820160206001820306601f8201039050602001915050806102e0526101c08080516020018084610240018284600060045af1610d4157600080fd5b505050506102e051806102400180518060206001820306601f820103905082016103e0525050505b6103006103e0511015610d7b57610d90565b6103e0515160206103e051036103e052610d69565b6102e0516102c0516102a051610280516102605161024051600658016107c3565b6104005261022052610200526101e0526101c0526101a052610180526101605261014052610400516102205260606102a0600463258294106102405261025c610220515afa610dff57600080fd5b603f3d11610e0c57600080fd5b601d6102a06102a051015110610e2157600080fd5b6000506102c08051602001806103008284600060045af1610e4157600080fd5b5050610220516103a052604061036052610360516103c052610300805160200180610360516103a0018284600060045af1610e7b57600080fd5b5050610360516103a00151806020610360516103a0010101818260206001820306601f82010390500336823750506020610360516103a0015160206001820306601f820103905061036051010161036052336004357f57a9cdc2a05e05f66e76769bdbe88e21ec45d9ee0f97d4cb60395d4c75dcbcda610360516103a0a36102205160005260206000f350005b6329b2e0c660005114156110f65760043560a01c15610f2657600080fd5b6004543314610f3457600080fd5b3360206101a06004635aa6e6756101405261015c6004355afa610f5657600080fd5b601f3d11610f6357600080fd5b6000506101a05114610f7457600080fd5b6060610200600463258294106101a0526101bc6001600054600180821015610f9b57600080fd5b8082039050905060e05260c052604060c020545afa610fb957600080fd5b603f3d11610fc657600080fd5b601d61020061020051015110610fdb57600080fd5b6000506102208051602001806101408284600060045af1610ffb57600080fd5b50506101605160606102c0600463258294106102605261027c6004355afa61102257600080fd5b603f3d1161102f57600080fd5b601d6102c06102c05101511061104457600080fd5b6000506102e0602001511461105857600080fd5b6020610200600463fc0c546a6101a0526101bc6004355afa61107957600080fd5b601f3d1161108657600080fd5b60005061020051610220526101405161016051610180516101a0516101c0516101e0516102005161022051610220516102405260043561026052610260516102405160065801610431565b61022052610200526101e0526101c0526101a052610180526101605261014052600050005b632cad8f9f600051141561110f57600161014052611145565b635e05f6af600051141561113d5760243560011c1561112d57600080fd5b6020602461014037600050611145565b60001561117a575b60043560a01c1561115557600080fd5b600454331461116357600080fd5b61014051600760043560e05260c052604060c02055005b6360bd68f860005114156112f65760043560a01c1561119857600080fd5b60986024356004016101403760786024356004013511156111b857600080fd5b6004543318156111db5760073360e05260c052604060c020546111da57600080fd5b5b61014080600660043560e05260c052604060c02060c052602060c020602082510161012060006005818352015b8261012051602002111561121b5761123d565b61012051602002850151610120518501555b8151600101808352811415611208575b50505050505060043561024052604061020052610200516102605261014080516020018061020051610240018284600060045af161127a57600080fd5b505061020051610240015180602061020051610240010101818260206001820306601f8201039050033682375050602061020051610240015160206001820306601f8201039050610200510101610200527f07bd58794c2ca0ae152f7719eb5f02c654476de972cadec0e8191ae8be42096d61020051610240a1005b63a157190260005114156113125760005460005260206000f350005b63b6a9f40f600051141561133c57600160043560e05260c052604060c0205460005260206000f350005b63ba7ee48c60005114156113765760043560a01c1561135a57600080fd5b600260043560e05260c052604060c0205460005260206000f350005b637bbfc69e60005114156113be5760043560a01c1561139457600080fd5b600360043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f350005b635aa6e67560005114156113da5760045460005260206000f350005b6358b8f84260005114156114a15760043560a01c156113f857600080fd5b600660043560e05260c052604060c0208060c052602060c020610180602082540161012060006005818352015b826101205160200211156114385761145a565b61012051850154610120516020028501525b8151600101808352811415611425575b50505050505061018051806101a001818260206001820306601f82010390500336823750506020610160526040610180510160206001820306601f8201039050610160f350005b63ee711ed560005114156114db5760043560a01c156114bf57600080fd5b600760043560e05260c052604060c0205460005260206000f350005b5b60006000fd5b6100086114ea036100086000396100086114ea036000f3