@vechain/vebetterdao-contracts
Version:
Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.
307 lines (306 loc) • 24.7 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "AppStorageUtils",
"sourceName": "contracts/x-2-earn-apps/libraries/AppStorageUtils.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "creator",
"type": "address"
}
],
"name": "CreatorNFTAlreadyUsed",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "X2EarnAppAlreadyExists",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "X2EarnInvalidAddress",
"type": "error"
},
{
"inputs": [],
"name": "X2EarnInvalidStartIndex",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "X2EarnNonexistentApp",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "creator",
"type": "address"
}
],
"name": "X2EarnUnverifiedCreator",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "address",
"name": "addr",
"type": "address"
},
{
"indexed": false,
"internalType": "string",
"name": "name",
"type": "string"
},
{
"indexed": false,
"internalType": "bool",
"name": "appAvailableForAllocationVoting",
"type": "bool"
}
],
"name": "AppAdded",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "app",
"outputs": [
{
"components": [
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"internalType": "address",
"name": "teamWalletAddress",
"type": "address"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "metadataURI",
"type": "string"
},
{
"internalType": "uint256",
"name": "createdAtTimestamp",
"type": "uint256"
},
{
"internalType": "bool",
"name": "appAvailableForAllocationVoting",
"type": "bool"
}
],
"internalType": "struct X2EarnAppsDataTypes.AppWithDetailsReturnType",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "appExists",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
}
],
"name": "appSubmitted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "apps",
"outputs": [
{
"components": [
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"internalType": "address",
"name": "teamWalletAddress",
"type": "address"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "metadataURI",
"type": "string"
},
{
"internalType": "uint256",
"name": "createdAtTimestamp",
"type": "uint256"
},
{
"internalType": "bool",
"name": "appAvailableForAllocationVoting",
"type": "bool"
}
],
"internalType": "struct X2EarnAppsDataTypes.AppWithDetailsReturnType[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "appIds",
"type": "bytes32[]"
}
],
"name": "getAppsInfo",
"outputs": [
{
"components": [
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"internalType": "address",
"name": "teamWalletAddress",
"type": "address"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "metadataURI",
"type": "string"
},
{
"internalType": "uint256",
"name": "createdAtTimestamp",
"type": "uint256"
},
{
"internalType": "bool",
"name": "appAvailableForAllocationVoting",
"type": "bool"
}
],
"internalType": "struct X2EarnAppsDataTypes.AppWithDetailsReturnType[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "appName",
"type": "string"
}
],
"name": "hashAppName",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"bytecode": "0x61113461003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100775760003560e01c806334b0e6b31461007c578063607bfb24146100a257806370325edf146100c5578063785d6e18146100e557806383459fee14610105578063cd7d1e4314610118578063f770337914610138575b600080fd5b61008f61008a366004610c83565b610140565b6040519081526020015b60405180910390f35b6100b56100b0366004610cbf565b610170565b6040519015158152602001610099565b8180156100d157600080fd5b5061008f6100e0366004610cf4565b610190565b6100f86100f3366004610cbf565b6102a9565b6040516100999190610e0e565b6100b5610113366004610cbf565b6104fb565b61012b610126366004610e21565b61051d565b6040516100999190610ec6565b61012b6107f5565b6000816040516020016101539190610f28565b604051602081830303815290604052805190602001209050919050565b600061017a610ad6565b6000928352602052506040902060020154151590565b60008061019b610ad6565b90506001600160a01b0385166101cf5784604051630ea81b3f60e21b81526004016101c69190610f44565b60405180910390fd5b6001600160a01b0384166101f85783604051630ea81b3f60e21b81526004016101c69190610f44565b60008360405160200161020b9190610f28565b60408051601f1981840301815291815281516020928301206000818152928590529120549091501561025357604051636b4fdeb360e01b8152600481018290526024016101c6565b60408051606081018252828152602080820187815260008385018190528581529186905292902081518155915190919060018201906102929082610fe1565b506040919091015160029091015595945050505050565b6102b1610b8a565b60006102bb610ad6565b905060006102c7610afa565b905060006102d3610b1e565b6000868152602085905260409020549091506103055760405163018f58af60e31b8152600481018690526024016101c6565b60008581526020848152604080832081516060810190925280548252600181018054929391929184019161033890610f58565b80601f016020809104026020016040519081016040528092919081815260200182805461036490610f58565b80156103b15780601f10610386576101008083540402835291602001916103b1565b820191906000526020600020905b81548152906001019060200180831161039457829003601f168201915b5050505050815260200160028201548152505090506000816040015160001415905060008180156104035750600088815260028501602052604090206103f690610b42565b6001600160d01b03166001145b6040805160c0810182528551815260008b8152600389016020908152838220546001600160a01b03168184015280880151838501528c825260058a019052919091208054929350909160608301919061045b90610f58565b80601f016020809104026020016040519081016040528092919081815260200182805461048790610f58565b80156104d45780601f106104a9576101008083540402835291602001916104d4565b820191906000526020600020905b8154815290600101906020018083116104b757829003601f168201915b50505050508152602001846040015181526020018215158152509650505050505050919050565b600080610506610ad6565b600093845260205260409092205490911415919050565b60606000610529610ad6565b90506000610535610afa565b90506000610541610b1e565b85519091506000816001600160401b0381111561056057610560610bce565b60405190808252806020026020018201604052801561059957816020015b610586610b8a565b81526020019060019003908161057e5790505b50905060005b828110156107ea5760008660000160008a84815181106105c1576105c16110a0565b60200260200101518152602001908152602001600020604051806060016040529081600082015481526020016001820180546105fc90610f58565b80601f016020809104026020016040519081016040528092919081815260200182805461062890610f58565b80156106755780601f1061064a57610100808354040283529160200191610675565b820191906000526020600020905b81548152906001019060200180831161065857829003601f168201915b5050505050815260200160028201548152505090506000816040015160001415905060008180156106c957508251600090815260028801602052604090206106bc90610b42565b6001600160d01b03166001145b6040805160c081018252855181528551600090815260038c016020908152838220546001600160a01b03168184015280880151838501528751825260058d019052919091208054929350909160608301919061072490610f58565b80601f016020809104026020016040519081016040528092919081815260200182805461075090610f58565b801561079d5780601f106107725761010080835404028352916020019161079d565b820191906000526020600020905b81548152906001019060200180831161078057829003601f168201915b50505050508152602001846040015181526020018215158152508585815181106107c9576107c96110a0565b602002602001018190525050505080806107e2906110cc565b91505061059f565b509695505050505050565b60606000610801610ad6565b9050600061080d610afa565b90506000610819610b1e565b60018401549091506000816001600160401b0381111561083b5761083b610bce565b60405190808252806020026020018201604052801561087457816020015b610861610b8a565b8152602001906001900390816108595790505b50905060005b82811015610acc576000866001018281548110610899576108996110a0565b906000526020600020015490506000876000016000838152602001908152602001600020604051806060016040529081600082015481526020016001820180546108e290610f58565b80601f016020809104026020016040519081016040528092919081815260200182805461090e90610f58565b801561095b5780601f106109305761010080835404028352916020019161095b565b820191906000526020600020905b81548152906001019060200180831161093e57829003601f168201915b5050505050815260200160028201548152505090506000816040015160001415905060008180156109ad5750600084815260028901602052604090206109a090610b42565b6001600160d01b03166001145b6040805160c08101825285518152600087815260038d016020908152838220546001600160a01b031681840152808801518385015288825260058e0190529190912080549293509091606083019190610a0590610f58565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3190610f58565b8015610a7e5780601f10610a5357610100808354040283529160200191610a7e565b820191906000526020600020905b815481529060010190602001808311610a6157829003601f168201915b5050505050815260200184604001518152602001821515815250868681518110610aaa57610aaa6110a0565b6020026020010181905250505050508080610ac4906110cc565b91505061087a565b5095945050505050565b7fb6909058bd527140b8d55a44344c5e42f1f148f1b3b16df7641882df8dd7290090565b7f5830f0e95c01712d916c34d9e2fa42e9f749b325b67bce7382d70bb99c62350090565b7fb5b8d618af1ffb8d5bcc4bd23f445ba34ed08d7a16d1e1b5411cfbe7913e590090565b80546000908015610b8057610b6a83610b5c6001846110e5565b600091825260209091200190565b54600160301b90046001600160d01b0316610b83565b60005b9392505050565b6040518060c001604052806000801916815260200160006001600160a01b031681526020016060815260200160608152602001600081526020016000151581525090565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610c0c57610c0c610bce565b604052919050565b600082601f830112610c2557600080fd5b81356001600160401b03811115610c3e57610c3e610bce565b610c51601f8201601f1916602001610be4565b818152846020838601011115610c6657600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610c9557600080fd5b81356001600160401b03811115610cab57600080fd5b610cb784828501610c14565b949350505050565b600060208284031215610cd157600080fd5b5035919050565b80356001600160a01b0381168114610cef57600080fd5b919050565b600080600060608486031215610d0957600080fd5b610d1284610cd8565b9250610d2060208501610cd8565b915060408401356001600160401b03811115610d3b57600080fd5b610d4786828701610c14565b9150509250925092565b60005b83811015610d6c578181015183820152602001610d54565b50506000910152565b60008151808452610d8d816020860160208601610d51565b601f01601f19169290920160200192915050565b8051825260018060a01b0360208201511660208301526000604082015160c06040850152610dd260c0850182610d75565b905060608301518482036060860152610deb8282610d75565b9150506080830151608085015260a0830151151560a08501528091505092915050565b602081526000610b836020830184610da1565b60006020808385031215610e3457600080fd5b82356001600160401b0380821115610e4b57600080fd5b818501915085601f830112610e5f57600080fd5b813581811115610e7157610e71610bce565b8060051b9150610e82848301610be4565b8181529183018401918481019088841115610e9c57600080fd5b938501935b83851015610eba57843582529385019390850190610ea1565b98975050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015610f1b57603f19888603018452610f09858351610da1565b94509285019290850190600101610eed565b5092979650505050505050565b60008251610f3a818460208701610d51565b9190910192915050565b6001600160a01b0391909116815260200190565b600181811c90821680610f6c57607f821691505b602082108103610f8c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610fdc57600081815260208120601f850160051c81016020861015610fb95750805b601f850160051c820191505b81811015610fd857828155600101610fc5565b5050505b505050565b81516001600160401b03811115610ffa57610ffa610bce565b61100e816110088454610f58565b84610f92565b602080601f831160018114611043576000841561102b5750858301515b600019600386901b1c1916600185901b178555610fd8565b600085815260208120601f198616915b8281101561107257888601518255948401946001909101908401611053565b50858210156110905787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016110de576110de6110b6565b5060010190565b818103818111156110f8576110f86110b6565b9291505056fea264697066735822122025a11b352805a04c1692705021ae4087bc4966ed7bc6293cd354339aa06affc964736f6c63430008140033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100775760003560e01c806334b0e6b31461007c578063607bfb24146100a257806370325edf146100c5578063785d6e18146100e557806383459fee14610105578063cd7d1e4314610118578063f770337914610138575b600080fd5b61008f61008a366004610c83565b610140565b6040519081526020015b60405180910390f35b6100b56100b0366004610cbf565b610170565b6040519015158152602001610099565b8180156100d157600080fd5b5061008f6100e0366004610cf4565b610190565b6100f86100f3366004610cbf565b6102a9565b6040516100999190610e0e565b6100b5610113366004610cbf565b6104fb565b61012b610126366004610e21565b61051d565b6040516100999190610ec6565b61012b6107f5565b6000816040516020016101539190610f28565b604051602081830303815290604052805190602001209050919050565b600061017a610ad6565b6000928352602052506040902060020154151590565b60008061019b610ad6565b90506001600160a01b0385166101cf5784604051630ea81b3f60e21b81526004016101c69190610f44565b60405180910390fd5b6001600160a01b0384166101f85783604051630ea81b3f60e21b81526004016101c69190610f44565b60008360405160200161020b9190610f28565b60408051601f1981840301815291815281516020928301206000818152928590529120549091501561025357604051636b4fdeb360e01b8152600481018290526024016101c6565b60408051606081018252828152602080820187815260008385018190528581529186905292902081518155915190919060018201906102929082610fe1565b506040919091015160029091015595945050505050565b6102b1610b8a565b60006102bb610ad6565b905060006102c7610afa565b905060006102d3610b1e565b6000868152602085905260409020549091506103055760405163018f58af60e31b8152600481018690526024016101c6565b60008581526020848152604080832081516060810190925280548252600181018054929391929184019161033890610f58565b80601f016020809104026020016040519081016040528092919081815260200182805461036490610f58565b80156103b15780601f10610386576101008083540402835291602001916103b1565b820191906000526020600020905b81548152906001019060200180831161039457829003601f168201915b5050505050815260200160028201548152505090506000816040015160001415905060008180156104035750600088815260028501602052604090206103f690610b42565b6001600160d01b03166001145b6040805160c0810182528551815260008b8152600389016020908152838220546001600160a01b03168184015280880151838501528c825260058a019052919091208054929350909160608301919061045b90610f58565b80601f016020809104026020016040519081016040528092919081815260200182805461048790610f58565b80156104d45780601f106104a9576101008083540402835291602001916104d4565b820191906000526020600020905b8154815290600101906020018083116104b757829003601f168201915b50505050508152602001846040015181526020018215158152509650505050505050919050565b600080610506610ad6565b600093845260205260409092205490911415919050565b60606000610529610ad6565b90506000610535610afa565b90506000610541610b1e565b85519091506000816001600160401b0381111561056057610560610bce565b60405190808252806020026020018201604052801561059957816020015b610586610b8a565b81526020019060019003908161057e5790505b50905060005b828110156107ea5760008660000160008a84815181106105c1576105c16110a0565b60200260200101518152602001908152602001600020604051806060016040529081600082015481526020016001820180546105fc90610f58565b80601f016020809104026020016040519081016040528092919081815260200182805461062890610f58565b80156106755780601f1061064a57610100808354040283529160200191610675565b820191906000526020600020905b81548152906001019060200180831161065857829003601f168201915b5050505050815260200160028201548152505090506000816040015160001415905060008180156106c957508251600090815260028801602052604090206106bc90610b42565b6001600160d01b03166001145b6040805160c081018252855181528551600090815260038c016020908152838220546001600160a01b03168184015280880151838501528751825260058d019052919091208054929350909160608301919061072490610f58565b80601f016020809104026020016040519081016040528092919081815260200182805461075090610f58565b801561079d5780601f106107725761010080835404028352916020019161079d565b820191906000526020600020905b81548152906001019060200180831161078057829003601f168201915b50505050508152602001846040015181526020018215158152508585815181106107c9576107c96110a0565b602002602001018190525050505080806107e2906110cc565b91505061059f565b509695505050505050565b60606000610801610ad6565b9050600061080d610afa565b90506000610819610b1e565b60018401549091506000816001600160401b0381111561083b5761083b610bce565b60405190808252806020026020018201604052801561087457816020015b610861610b8a565b8152602001906001900390816108595790505b50905060005b82811015610acc576000866001018281548110610899576108996110a0565b906000526020600020015490506000876000016000838152602001908152602001600020604051806060016040529081600082015481526020016001820180546108e290610f58565b80601f016020809104026020016040519081016040528092919081815260200182805461090e90610f58565b801561095b5780601f106109305761010080835404028352916020019161095b565b820191906000526020600020905b81548152906001019060200180831161093e57829003601f168201915b5050505050815260200160028201548152505090506000816040015160001415905060008180156109ad5750600084815260028901602052604090206109a090610b42565b6001600160d01b03166001145b6040805160c08101825285518152600087815260038d016020908152838220546001600160a01b031681840152808801518385015288825260058e0190529190912080549293509091606083019190610a0590610f58565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3190610f58565b8015610a7e5780601f10610a5357610100808354040283529160200191610a7e565b820191906000526020600020905b815481529060010190602001808311610a6157829003601f168201915b5050505050815260200184604001518152602001821515815250868681518110610aaa57610aaa6110a0565b6020026020010181905250505050508080610ac4906110cc565b91505061087a565b5095945050505050565b7fb6909058bd527140b8d55a44344c5e42f1f148f1b3b16df7641882df8dd7290090565b7f5830f0e95c01712d916c34d9e2fa42e9f749b325b67bce7382d70bb99c62350090565b7fb5b8d618af1ffb8d5bcc4bd23f445ba34ed08d7a16d1e1b5411cfbe7913e590090565b80546000908015610b8057610b6a83610b5c6001846110e5565b600091825260209091200190565b54600160301b90046001600160d01b0316610b83565b60005b9392505050565b6040518060c001604052806000801916815260200160006001600160a01b031681526020016060815260200160608152602001600081526020016000151581525090565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610c0c57610c0c610bce565b604052919050565b600082601f830112610c2557600080fd5b81356001600160401b03811115610c3e57610c3e610bce565b610c51601f8201601f1916602001610be4565b818152846020838601011115610c6657600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610c9557600080fd5b81356001600160401b03811115610cab57600080fd5b610cb784828501610c14565b949350505050565b600060208284031215610cd157600080fd5b5035919050565b80356001600160a01b0381168114610cef57600080fd5b919050565b600080600060608486031215610d0957600080fd5b610d1284610cd8565b9250610d2060208501610cd8565b915060408401356001600160401b03811115610d3b57600080fd5b610d4786828701610c14565b9150509250925092565b60005b83811015610d6c578181015183820152602001610d54565b50506000910152565b60008151808452610d8d816020860160208601610d51565b601f01601f19169290920160200192915050565b8051825260018060a01b0360208201511660208301526000604082015160c06040850152610dd260c0850182610d75565b905060608301518482036060860152610deb8282610d75565b9150506080830151608085015260a0830151151560a08501528091505092915050565b602081526000610b836020830184610da1565b60006020808385031215610e3457600080fd5b82356001600160401b0380821115610e4b57600080fd5b818501915085601f830112610e5f57600080fd5b813581811115610e7157610e71610bce565b8060051b9150610e82848301610be4565b8181529183018401918481019088841115610e9c57600080fd5b938501935b83851015610eba57843582529385019390850190610ea1565b98975050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015610f1b57603f19888603018452610f09858351610da1565b94509285019290850190600101610eed565b5092979650505050505050565b60008251610f3a818460208701610d51565b9190910192915050565b6001600160a01b0391909116815260200190565b600181811c90821680610f6c57607f821691505b602082108103610f8c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610fdc57600081815260208120601f850160051c81016020861015610fb95750805b601f850160051c820191505b81811015610fd857828155600101610fc5565b5050505b505050565b81516001600160401b03811115610ffa57610ffa610bce565b61100e816110088454610f58565b84610f92565b602080601f831160018114611043576000841561102b5750858301515b600019600386901b1c1916600185901b178555610fd8565b600085815260208120601f198616915b8281101561107257888601518255948401946001909101908401611053565b50858210156110905787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016110de576110de6110b6565b5060010190565b818103818111156110f8576110f86110b6565b9291505056fea264697066735822122025a11b352805a04c1692705021ae4087bc4966ed7bc6293cd354339aa06affc964736f6c63430008140033",
"linkReferences": {},
"deployedLinkReferences": {}
}