From 08888eb71981aba1cae9193490320d3d2230f067 Mon Sep 17 00:00:00 2001 From: jadapema Date: Fri, 10 Jan 2025 12:49:59 -0600 Subject: [PATCH] feat: adapt new protocol contracts --- src/config-global.ts | 2 + src/config/abi/AccessAgg.json | 1916 +----- src/config/abi/AccessWorkflow.json | 3115 +--------- src/config/abi/LedgerVault.json | 5327 +---------------- src/config/abi/PoliciesAgg.json | 3862 +----------- src/config/abi/RightsPolicyAuthorizer.json | 4246 +------------ src/config/abi/SubscriptionCampaign.json | 1 + src/config/abi/SubscriptionPolicy.json | 4927 +-------------- src/hooks/use-authorize-policy.ts | 3 +- src/hooks/use-get-active-licenses.ts | 92 + ...-policies.ts => use-get-policies-terms.ts} | 9 +- ...ation.ts => use-get-policy-attestation.ts} | 58 +- src/hooks/use-get-policy-terms.ts | 4 +- src/hooks/use-has-access.ts | 8 +- src/hooks/use-is-active-campaign.ts | 83 + src/hooks/use-is-policy-authorized.ts | 4 +- src/hooks/use-subscribe.ts | 2 +- .../publication/publication-comment-item.tsx | 2 - src/sections/user/profile-header.tsx | 8 +- 19 files changed, 236 insertions(+), 23433 deletions(-) create mode 100644 src/config/abi/SubscriptionCampaign.json create mode 100644 src/hooks/use-get-active-licenses.ts rename src/hooks/{use-get-authorized-holder-policies.ts => use-get-policies-terms.ts} (91%) rename src/hooks/{use-get-attestation.ts => use-get-policy-attestation.ts} (50%) create mode 100644 src/hooks/use-is-active-campaign.ts diff --git a/src/config-global.ts b/src/config-global.ts index 382b670e..12d284ce 100644 --- a/src/config-global.ts +++ b/src/config-global.ts @@ -22,6 +22,8 @@ export const GLOBAL_CONSTANTS = { process.env.VITE_POLICIES_AGG_ADDRESS || import.meta.env.VITE_POLICIES_AGG_ADDRESS || '', LEDGER_VAULT_ADDRESS: process.env.VITE_LEDGER_VAULT_ADDRESS || import.meta.env.VITE_LEDGER_VAULT_ADDRESS || '', + SUBSCRIPTION_CAMPAIGN_ADDRESS: + process.env.VITE_SUBSCRIPTION_CAMPAIGN_ADDRESS || import.meta.env.VITE_SUBSCRIPTION_CAMPAIGN_ADDRESS || '', OKLINK_API_KEY: process.env.VITE_OKLINK_API_KEY || import.meta.env.VITE_OKLINK_API_KEY || '', RIGHT_POLICY_AUTHORIZER: process.env.VITE_RIGHT_POLICY_AUTHORIZER || import.meta.env.VITE_RIGHT_POLICY_AUTHORIZER || '', diff --git a/src/config/abi/AccessAgg.json b/src/config/abi/AccessAgg.json index 9b096760..cdb834aa 100644 --- a/src/config/abi/AccessAgg.json +++ b/src/config/abi/AccessAgg.json @@ -1,1915 +1 @@ -{ - "abi": [ - { - "type": "constructor", - "inputs": [{ "name": "rightsPolicyManager", "type": "address", "internalType": "address" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "RIGHTS_POLICY_MANAGER", - "inputs": [], - "outputs": [ - { "name": "", "type": "address", "internalType": "contract IRightsPolicyManager" } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UPGRADE_INTERFACE_VERSION", - "inputs": [], - "outputs": [{ "name": "", "type": "string", "internalType": "string" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "authority", - "inputs": [], - "outputs": [{ "name": "", "type": "address", "internalType": "address" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "initialize", - "inputs": [{ "name": "accessManager", "type": "address", "internalType": "address" }], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "isAccessAllowedByAsset", - "inputs": [ - { "name": "account", "type": "address", "internalType": "address" }, - { "name": "assetId", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "isAccessAllowedByHolder", - "inputs": [ - { "name": "account", "type": "address", "internalType": "address" }, - { "name": "holder", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "isConsumingScheduledOp", - "inputs": [], - "outputs": [{ "name": "", "type": "bytes4", "internalType": "bytes4" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "proxiableUUID", - "inputs": [], - "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "setAuthority", - "inputs": [{ "name": "newAuthority", "type": "address", "internalType": "address" }], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "upgradeToAndCall", - "inputs": [ - { "name": "newImplementation", "type": "address", "internalType": "address" }, - { "name": "data", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [], - "stateMutability": "payable" - }, - { - "type": "event", - "name": "AuthorityUpdated", - "inputs": [ - { "name": "authority", "type": "address", "indexed": false, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Initialized", - "inputs": [ - { "name": "version", "type": "uint64", "indexed": false, "internalType": "uint64" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Upgraded", - "inputs": [ - { "name": "implementation", "type": "address", "indexed": true, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "error", - "name": "AccessManagedInvalidAuthority", - "inputs": [{ "name": "authority", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "AccessManagedRequiredDelay", - "inputs": [ - { "name": "caller", "type": "address", "internalType": "address" }, - { "name": "delay", "type": "uint32", "internalType": "uint32" } - ] - }, - { - "type": "error", - "name": "AccessManagedUnauthorized", - "inputs": [{ "name": "caller", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "AddressEmptyCode", - "inputs": [{ "name": "target", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "ERC1967InvalidImplementation", - "inputs": [{ "name": "implementation", "type": "address", "internalType": "address" }] - }, - { "type": "error", "name": "ERC1967NonPayable", "inputs": [] }, - { "type": "error", "name": "FailedCall", "inputs": [] }, - { "type": "error", "name": "InvalidInitialization", "inputs": [] }, - { - "type": "error", - "name": "InvalidUnauthorizedOperation", - "inputs": [{ "name": "", "type": "string", "internalType": "string" }] - }, - { "type": "error", "name": "NotInitializing", "inputs": [] }, - { "type": "error", "name": "UUPSUnauthorizedCallContext", "inputs": [] }, - { - "type": "error", - "name": "UUPSUnsupportedProxiableUUID", - "inputs": [{ "name": "slot", "type": "bytes32", "internalType": "bytes32" }] - } - ], - "bytecode": { - "object": "0x60c03461014557601f6111fc38819003918201601f19168301916001600160401b038311848410176101495780849260209460405283398101031261014557516001600160a01b0381169081900361014557306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610136576002600160401b03196001600160401b038216016100cd575b5060a05260405161109e908161015e8239608051818181610820015261093f015260a05181818160d101526105470152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009b565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461089857806352d1902d146107db5780637a9e5e4b146106e65780638fb3603714610635578063929cd2e0146105bf578063a1a2dac6146104a6578063ad3cb1cc14610425578063bf7e214f146103b5578063c4d66de8146100f95763f1bdc45214610087575f80fd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557610130610d48565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ad575b60011490816103a3575b15908161039a575b5061037257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561031d575b506101f3610f78565b6101fb610f78565b610203610f78565b61020b610f78565b61021481610ecd565b61021c610f78565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561028a57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101ea565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610181565b303b159150610179565b84915061016f565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576104a2604051610464604082610d6b565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610e13565b0390f35b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761052e60406104e2610d48565b8151906024356020830152602082526104fb8383610d6b565b825193849283927fbe5fb16600000000000000000000000000000000000000000000000000000000845260048401610e9d565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156105b4576020915f91610584575b506040519015158152f35b6105a6915060403d6040116105ad575b61059e8183610d6b565b810190610e63565b5082610579565b503d610594565b6040513d5f823e3d90fd5b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576105f6610d48565b6024359073ffffffffffffffffffffffffffffffffffffffff82168092036100f55761052e916040918251916020830152602082526104fb8383610d6b565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156106de5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6106b4565b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761071d610d48565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036107af57803b1561076d5761076b90610ecd565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108705760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576108ca610d48565b6024359067ffffffffffffffff82116100f557366023830112156100f5578160040135906108f782610dd9565b916109056040519384610d6b565b808352602083019336602483830101116100f557815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d06575b50610870576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa9081156105b4575f91610cbb575b5015610c375773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c03575b50610a7657847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610bd85750823b15610bad57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610b7b575f809161076b945190845af43d15610b73573d91610b5783610dd9565b92610b656040519485610d6b565b83523d5f602085013e610fcf565b606091610fcf565b50505034610b8557005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c2f575b81610c1f60209383610d6b565b810103126100f557519086610a45565b3d9150610c12565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610cfe575b81610cd660409383610d6b565b810103126100f5576020610ce982610e56565b91015163ffffffff8116036100f557846109f0565b3d9150610cc9565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614158461096a565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100f557565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dac57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610dac57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b519081151582036100f557565b91908260409103126100f5576020610e7a83610e56565b92015173ffffffffffffffffffffffffffffffffffffffff811681036100f55790565b60409073ffffffffffffffffffffffffffffffffffffffff610eca94931681528160208201520190610e13565b90565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615610fa757565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061100c5750805115610fe457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061105f575b61101d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561101556fea26469706673582212202e5754fb7e75dbb169594500b936583cd6d90b9799eb24010bce9d850919e7de64736f6c634300081a0033", - "sourceMap": "474:2431:2:-:0;;;;;;;;;;;;;-1:-1:-1;;474:2431:2;;;;-1:-1:-1;;;;;474:2431:2;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;474:2431:2;;;;;;;;1171:4:56;1163:13;;8837:64:55;474:2431:2;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;474:2431:2;;7985:34:55;7981:146;;-1:-1:-1;1020:65:2;;;474:2431;;;;;;;;1163:13:56;474:2431:2;;;;;;;;;;1020:65;474:2431;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;474:2431:2;-1:-1:-1;;;;;474:2431:2;;;8837:64:55;474:2431:2;;;;;;8087:29:55;;474:2431:2;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;474:2431:2;-1:-1:-1;474:2431:2;;;;;;-1:-1:-1;474:2431:2;;;;;-1:-1:-1;474:2431:2", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461089857806352d1902d146107db5780637a9e5e4b146106e65780638fb3603714610635578063929cd2e0146105bf578063a1a2dac6146104a6578063ad3cb1cc14610425578063bf7e214f146103b5578063c4d66de8146100f95763f1bdc45214610087575f80fd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557610130610d48565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ad575b60011490816103a3575b15908161039a575b5061037257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561031d575b506101f3610f78565b6101fb610f78565b610203610f78565b61020b610f78565b61021481610ecd565b61021c610f78565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561028a57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101ea565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610181565b303b159150610179565b84915061016f565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576104a2604051610464604082610d6b565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610e13565b0390f35b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761052e60406104e2610d48565b8151906024356020830152602082526104fb8383610d6b565b825193849283927fbe5fb16600000000000000000000000000000000000000000000000000000000845260048401610e9d565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156105b4576020915f91610584575b506040519015158152f35b6105a6915060403d6040116105ad575b61059e8183610d6b565b810190610e63565b5082610579565b503d610594565b6040513d5f823e3d90fd5b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576105f6610d48565b6024359073ffffffffffffffffffffffffffffffffffffffff82168092036100f55761052e916040918251916020830152602082526104fb8383610d6b565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156106de5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6106b4565b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761071d610d48565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036107af57803b1561076d5761076b90610ecd565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108705760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576108ca610d48565b6024359067ffffffffffffffff82116100f557366023830112156100f5578160040135906108f782610dd9565b916109056040519384610d6b565b808352602083019336602483830101116100f557815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d06575b50610870576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa9081156105b4575f91610cbb575b5015610c375773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c03575b50610a7657847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610bd85750823b15610bad57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610b7b575f809161076b945190845af43d15610b73573d91610b5783610dd9565b92610b656040519485610d6b565b83523d5f602085013e610fcf565b606091610fcf565b50505034610b8557005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c2f575b81610c1f60209383610d6b565b810103126100f557519086610a45565b3d9150610c12565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610cfe575b81610cd660409383610d6b565b810103126100f5576020610ce982610e56565b91015163ffffffff8116036100f557846109f0565b3d9150610cc9565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614158461096a565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100f557565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dac57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610dac57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b519081151582036100f557565b91908260409103126100f5576020610e7a83610e56565b92015173ffffffffffffffffffffffffffffffffffffffff811681036100f55790565b60409073ffffffffffffffffffffffffffffffffffffffff610eca94931681528160208201520190610e13565b90565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615610fa757565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061100c5750805115610fe457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061105f575b61101d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561101556fea26469706673582212202e5754fb7e75dbb169594500b936583cd6d90b9799eb24010bce9d850919e7de64736f6c634300081a0033", - "sourceMap": "474:2431:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;628:59;474:2431;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8837:64:55;474:2431:2;;;;;;4301:16:55;474:2431:2;;;;4726:16:55;;:34;;;;474:2431:2;4805:1:55;4790:16;:50;;;;474:2431:2;4855:13:55;:30;;;;474:2431:2;4851:91:55;;;474:2431:2;;4805:1:55;474:2431:2;;;;;8837:64:55;474:2431:2;4979:67:55;;474:2431:2;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;474:2431:2;;3295:62:102;474:2431:2;;;3295:62:102;474:2431:2;5066:101:55;;474:2431:2;5066:101:55;474:2431:2;8837:64:55;474:2431:2;;8837:64:55;474:2431:2;5142:14:55;474:2431:2;;;4805:1:55;474:2431:2;;5142:14:55;474:2431:2;4979:67:55;474:2431:2;;;;8837:64:55;474:2431:2;4979:67:55;;;4851:91;4908:23;474:2431:2;4908:23:55;474:2431:2;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;474:2431:2;;;;;;;;;;;;;1782:71:54;474:2431:2;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2429:56;474:2431;;;:::i;:::-;;;;;;;2382:19;;474:2431;;2382:19;;;;;;:::i;:::-;474:2431;;2429:56;;;;;474:2431;2429:56;;474:2431;2429:56;;;:::i;:::-;;:21;474:2431;2429:21;474:2431;2429:56;;;;;;474:2431;2429:56;474:2431;2429:56;;;474:2431;;;;;;;;;;2429:56;;;;474:2431;2429:56;474:2431;2429:56;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;474:2431;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1902:56;474:2431;;;;;1856:18;474:2431;1856:18;;474:2431;;1856:18;;;;;;:::i;474:2431::-;;;;;;;;;;;1782:71:54;474:2431:2;;;;;4698:71:54;;;474:2431:2;;4698:71:54;474:2431:2;;;;;;;;4698:71:54;474:2431:2;;4698:71:54;;474:2431:2;;;;;;;;;;;;;:::i;:::-;;1782:71:54;474:2431:2;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;474:2431:2;4355:110:54;474:2431:2;4411:43:54;;474:2431:2;4411:43:54;474:2431:2;;;;;4411:43:54;4254:92;4302:33;474:2431:2;4302:33:54;966:10:57;474:2431:2;;;;4302:33:54;474:2431:2;;;;;;;;;;;;5115:6:56;474:2431:2;5106:4:56;5098:23;5094:145;;474:2431:2;;;811:66:68;474:2431:2;;;5094:145:56;5199:29;474:2431:2;5199:29:56;474:2431:2;;5199:29:56;474:2431:2;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:56;474:2431:2;4683:4:56;;4675:23;:120;;;;;474:2431:2;4658:251:56;;;3058:30:102;474:2431:2;;3295:62:102;474:2431:2;;;;3058:30:102;;;;474:2431:2;3058:30:102;;474:2431:2;;3058:30:102;;474:2431:2;1893:10:102;474:2431:2;;;;3058:30:102;;;;;;;474:2431:2;3058:30:102;;;474:2431:2;1869:35:102;;1865:140;;474:2431:2;;;;;;;6156:52:56;;474:2431:2;6156:52:56;474:2431:2;6156:52:56;;;;474:2431:2;;6156:52:56;;;474:2431:2;-1:-1:-1;6152:437:56;;6518:60;;474:2431:2;6518:60:56;474:2431:2;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;474:2431:2;;811:66:68;474:2431:2;;;811:66:68;474:2431:2;2407:36:68;474:2431:2;2407:36:68;;474:2431:2;;2458:15:68;:11;;474:2431:2;4049:25:75;;4091:55;4049:25;;;;;;474:2431:2;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4091:55:75;:::i;474:2431:2:-;;;4091:55:75;:::i;2454:148:68:-;6163:9;;;;6159:70;;474:2431:2;6159:70:68;6199:19;474:2431:2;6199:19:68;474:2431:2;;6199:19:68;1744:119;1805:47;474:2431:2;1805:47:68;474:2431:2;;;;1805:47:68;6246:120:56;6317:34;474:2431:2;6317:34:56;474:2431:2;;;;6317:34:56;6156:52;;;;474:2431:2;6156:52:56;;474:2431:2;6156:52:56;;;;;;474:2431:2;6156:52:56;;;:::i;:::-;;;474:2431:2;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;474:2431:2;;1927:67:102;;;474:2431:2;;1927:67:102;;520:1:100;474:2431:2;;520:1:100;;474:2431:2;520:1:100;3058:30:102;474:2431:2;;520:1:100;;;;;;1927:67:102;3058:30;;;474:2431:2;3058:30:102;;474:2431:2;3058:30:102;;;;;;474:2431:2;3058:30:102;;;:::i;:::-;;;474:2431:2;;;;;;;;:::i;:::-;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;4675:120:56;474:2431:2;;;811:66:68;474:2431:2;;4753:42:56;;4675:120;;;474:2431:2;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;474:2431:2;;;;;-1:-1:-1;474:2431:2;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;474:2431:2;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;4964:220:54:-;474:2431:2;;5147:30:54;4964:220;474:2431:2;;;1782:71:54;474:2431:2;;;1782:71:54;474:2431:2;;;;;;5147:30:54;4964:220::o;7084:141:55:-;474:2431:2;8837:64:55;474:2431:2;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;474:2431:2;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;474:2431:2;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;474:2431:2;4917:24:75;;4862:1;4917:24;474:2431:2;4917:24:75;474:2431:2;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;", - "linkReferences": {}, - "immutableReferences": { - "103": [ - { "start": 209, "length": 32 }, - { "start": 1351, "length": 32 } - ], - "43541": [ - { "start": 2080, "length": 32 }, - { "start": 2367, "length": 32 } - ] - } - }, - "methodIdentifiers": { - "RIGHTS_POLICY_MANAGER()": "f1bdc452", - "UPGRADE_INTERFACE_VERSION()": "ad3cb1cc", - "authority()": "bf7e214f", - "initialize(address)": "c4d66de8", - "isAccessAllowedByAsset(address,uint256)": "a1a2dac6", - "isAccessAllowedByHolder(address,address)": "929cd2e0", - "isConsumingScheduledOp()": "8fb36037", - "proxiableUUID()": "52d1902d", - "setAuthority(address)": "7a9e5e4b", - "upgradeToAndCall(address,bytes)": "4f1ef286" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"isAccessAllowedByAsset\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isAccessAllowedByHolder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"initialize(address)\":{\"details\":\"Sets up the contract for usage.\",\"params\":{\"accessManager\":\"Address of the Access Manager contract used for permission handling.\"}},\"isAccessAllowedByAsset(address,uint256)\":{\"params\":{\"account\":\"Address of the account to verify.\",\"assetId\":\"ID of the asset used as criteria.\"},\"returns\":{\"_0\":\"active True if the account has access; otherwise, false.\"}},\"isAccessAllowedByHolder(address,address)\":{\"params\":{\"account\":\"Address of the account to verify.\",\"holder\":\"Address of the rights holder used as criteria.\"},\"returns\":{\"_0\":\"active True if the account has access; otherwise, false.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"RIGHTS_POLICY_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"isAccessAllowedByAsset(address,uint256)\":{\"notice\":\"Checks if an account has access to a specific asset ID.\"},\"isAccessAllowedByHolder(address,address)\":{\"notice\":\"Checks if an account has access rights based on a holder's criteria.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/aggregation/AccessAgg.sol\":\"AccessAgg\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/aggregation/AccessAgg.sol\":{\"keccak256\":\"0xac84fdeac803313a0de33ee07e3ec0b9f115b5aa80976f401b296c513774b28e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec0ac0b41d4bfb64700a638ebd4a47e883cb872dba088f2472f160ee70b57eb8\",\"dweb:/ipfs/QmVFnvcMLTVbFxFEvDw7545vvnqZ7U4TiPU7Y8urQSyR56\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}", - "metadata": { - "compiler": { "version": "0.8.26+commit.8a97fa7a" }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { "internalType": "address", "name": "rightsPolicyManager", "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [{ "internalType": "address", "name": "authority", "type": "address" }], - "type": "error", - "name": "AccessManagedInvalidAuthority" - }, - { - "inputs": [ - { "internalType": "address", "name": "caller", "type": "address" }, - { "internalType": "uint32", "name": "delay", "type": "uint32" } - ], - "type": "error", - "name": "AccessManagedRequiredDelay" - }, - { - "inputs": [{ "internalType": "address", "name": "caller", "type": "address" }], - "type": "error", - "name": "AccessManagedUnauthorized" - }, - { - "inputs": [{ "internalType": "address", "name": "target", "type": "address" }], - "type": "error", - "name": "AddressEmptyCode" - }, - { - "inputs": [{ "internalType": "address", "name": "implementation", "type": "address" }], - "type": "error", - "name": "ERC1967InvalidImplementation" - }, - { "inputs": [], "type": "error", "name": "ERC1967NonPayable" }, - { "inputs": [], "type": "error", "name": "FailedCall" }, - { "inputs": [], "type": "error", "name": "InvalidInitialization" }, - { - "inputs": [{ "internalType": "string", "name": "", "type": "string" }], - "type": "error", - "name": "InvalidUnauthorizedOperation" - }, - { "inputs": [], "type": "error", "name": "NotInitializing" }, - { "inputs": [], "type": "error", "name": "UUPSUnauthorizedCallContext" }, - { - "inputs": [{ "internalType": "bytes32", "name": "slot", "type": "bytes32" }], - "type": "error", - "name": "UUPSUnsupportedProxiableUUID" - }, - { - "inputs": [ - { "internalType": "address", "name": "authority", "type": "address", "indexed": false } - ], - "type": "event", - "name": "AuthorityUpdated", - "anonymous": false - }, - { - "inputs": [ - { "internalType": "uint64", "name": "version", "type": "uint64", "indexed": false } - ], - "type": "event", - "name": "Initialized", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address", - "indexed": true - } - ], - "type": "event", - "name": "Upgraded", - "anonymous": false - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "RIGHTS_POLICY_MANAGER", - "outputs": [ - { "internalType": "contract IRightsPolicyManager", "name": "", "type": "address" } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "UPGRADE_INTERFACE_VERSION", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "authority", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }] - }, - { - "inputs": [{ "internalType": "address", "name": "accessManager", "type": "address" }], - "stateMutability": "nonpayable", - "type": "function", - "name": "initialize" - }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "assetId", "type": "uint256" } - ], - "stateMutability": "view", - "type": "function", - "name": "isAccessAllowedByAsset", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "address", "name": "holder", "type": "address" } - ], - "stateMutability": "view", - "type": "function", - "name": "isAccessAllowedByHolder", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "isConsumingScheduledOp", - "outputs": [{ "internalType": "bytes4", "name": "", "type": "bytes4" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "proxiableUUID", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] - }, - { - "inputs": [{ "internalType": "address", "name": "newAuthority", "type": "address" }], - "stateMutability": "nonpayable", - "type": "function", - "name": "setAuthority" - }, - { - "inputs": [ - { "internalType": "address", "name": "newImplementation", "type": "address" }, - { "internalType": "bytes", "name": "data", "type": "bytes" } - ], - "stateMutability": "payable", - "type": "function", - "name": "upgradeToAndCall" - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "authority()": { "details": "Returns the current authority." }, - "constructor": { "custom:oz-upgrades-unsafe-allow": "constructor" }, - "initialize(address)": { - "details": "Sets up the contract for usage.", - "params": { - "accessManager": "Address of the Access Manager contract used for permission handling." - } - }, - "isAccessAllowedByAsset(address,uint256)": { - "params": { - "account": "Address of the account to verify.", - "assetId": "ID of the asset used as criteria." - }, - "returns": { "_0": "active True if the account has access; otherwise, false." } - }, - "isAccessAllowedByHolder(address,address)": { - "params": { - "account": "Address of the account to verify.", - "holder": "Address of the rights holder used as criteria." - }, - "returns": { "_0": "active True if the account has access; otherwise, false." } - }, - "isConsumingScheduledOp()": { - "details": "Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls." - }, - "proxiableUUID()": { - "details": "Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier." - }, - "setAuthority(address)": { - "details": "Transfers control to a new authority. The caller must be the current authority." - }, - "upgradeToAndCall(address,bytes)": { - "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall", - "details": "Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event." - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "initialize(address)": { "notice": "Initializes the proxy state." }, - "isAccessAllowedByAsset(address,uint256)": { - "notice": "Checks if an account has access to a specific asset ID." - }, - "isAccessAllowedByHolder(address,address)": { - "notice": "Checks if an account has access rights based on a holder's criteria." - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - "@account-abstraction/=node_modules/@account-abstraction/", - "@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/", - "@ethsign/=node_modules/@ethsign/", - "@openzeppelin/=node_modules/@openzeppelin/", - "@synaps3/=node_modules/@synaps3/types/contracts/", - "@uniswap/=node_modules/@uniswap/", - "base64-sol/=node_modules/base64-sol/", - "forge-std/=lib/forge-std/src/", - "hardhat/=node_modules/hardhat/", - "solady/=lib/solady/src/" - ], - "optimizer": { "enabled": true, "runs": 20000 }, - "metadata": { "bytecodeHash": "ipfs" }, - "compilationTarget": { "contracts/aggregation/AccessAgg.sol": "AccessAgg" }, - "evmVersion": "cancun", - "libraries": {}, - "viaIR": true - }, - "sources": { - "contracts/aggregation/AccessAgg.sol": { - "keccak256": "0xac84fdeac803313a0de33ee07e3ec0b9f115b5aa80976f401b296c513774b28e", - "urls": [ - "bzz-raw://ec0ac0b41d4bfb64700a638ebd4a47e883cb872dba088f2472f160ee70b57eb8", - "dweb:/ipfs/QmVFnvcMLTVbFxFEvDw7545vvnqZ7U4TiPU7Y8urQSyR56" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol": { - "keccak256": "0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373", - "urls": [ - "bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447", - "dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { - "keccak256": "0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b", - "urls": [ - "bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609", - "dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol": { - "keccak256": "0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27", - "urls": [ - "bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e", - "dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { - "keccak256": "0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397", - "urls": [ - "bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9", - "dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol": { - "keccak256": "0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4", - "urls": [ - "bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e", - "dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol": { - "keccak256": "0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6", - "urls": [ - "bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694", - "dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol": { - "keccak256": "0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2", - "urls": [ - "bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4", - "dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol": { - "keccak256": "0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030", - "urls": [ - "bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c", - "dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol": { - "keccak256": "0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486", - "urls": [ - "bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d", - "dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol": { - "keccak256": "0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d", - "urls": [ - "bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196", - "dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol": { - "keccak256": "0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06", - "urls": [ - "bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c", - "dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol": { - "keccak256": "0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c", - "urls": [ - "bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa", - "dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Address.sol": { - "keccak256": "0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5", - "urls": [ - "bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23", - "dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Errors.sol": { - "keccak256": "0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123", - "urls": [ - "bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf", - "dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Panic.sol": { - "keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a", - "urls": [ - "bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a", - "dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol": { - "keccak256": "0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97", - "urls": [ - "bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b", - "dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/math/Math.sol": { - "keccak256": "0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea", - "urls": [ - "bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d", - "dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol": { - "keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54", - "urls": [ - "bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8", - "dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/types/Time.sol": { - "keccak256": "0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc", - "urls": [ - "bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6", - "dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol": { - "keccak256": "0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f", - "urls": [ - "bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e", - "dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol": { - "keccak256": "0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e", - "urls": [ - "bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6", - "dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/primitives/Constants.sol": { - "keccak256": "0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e", - "urls": [ - "bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1", - "dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol": { - "keccak256": "0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df", - "urls": [ - "bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2", - "dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "storageLayout": { "storage": [], "types": {} }, - "ast": { - "absolutePath": "contracts/aggregation/AccessAgg.sol", - "id": 203, - "exportedSymbols": { - "AccessAgg": [202], - "AccessControlledUpgradeable": [51361], - "IRightsPolicyManager": [50447], - "Initializable": [43521], - "UUPSUpgradeable": [43703] - }, - "nodeType": "SourceUnit", - "src": "32:2874:2", - "nodes": [ - { - "id": 85, - "nodeType": "PragmaDirective", - "src": "32:23:2", - "nodes": [], - "literals": ["solidity", "0.8", ".26"] - }, - { - "id": 87, - "nodeType": "ImportDirective", - "src": "57:98:2", - "nodes": [], - "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "nameLocation": "-1:-1:-1", - "scope": 203, - "sourceUnit": 43522, - "symbolAliases": [ - { - "foreign": { - "id": 86, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43521, - "src": "66:13:2", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 89, - "nodeType": "ImportDirective", - "src": "156:102:2", - "nodes": [], - "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 203, - "sourceUnit": 43704, - "symbolAliases": [ - { - "foreign": { - "id": 88, - "name": "UUPSUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43703, - "src": "165:15:2", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 91, - "nodeType": "ImportDirective", - "src": "260:115:2", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol", - "file": "@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 203, - "sourceUnit": 51362, - "symbolAliases": [ - { - "foreign": { - "id": 90, - "name": "AccessControlledUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51361, - "src": "269:27:2", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 93, - "nodeType": "ImportDirective", - "src": "376:96:2", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol", - "file": "@synaps3/core/interfaces/rights/IRightsPolicyManager.sol", - "nameLocation": "-1:-1:-1", - "scope": 203, - "sourceUnit": 50448, - "symbolAliases": [ - { - "foreign": { - "id": 92, - "name": "IRightsPolicyManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50447, - "src": "385:20:2", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 202, - "nodeType": "ContractDefinition", - "src": "474:2431:2", - "nodes": [ - { - "id": 103, - "nodeType": "VariableDeclaration", - "src": "628:59:2", - "nodes": [], - "constant": false, - "documentation": { - "id": 100, - "nodeType": "StructuredDocumentation", - "src": "562:61:2", - "text": "@custom:oz-upgrades-unsafe-allow state-variable-immutable" - }, - "functionSelector": "f1bdc452", - "mutability": "immutable", - "name": "RIGHTS_POLICY_MANAGER", - "nameLocation": "666:21:2", - "scope": 202, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - }, - "typeName": { - "id": 102, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 101, - "name": "IRightsPolicyManager", - "nameLocations": ["628:20:2"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50447, - "src": "628:20:2" - }, - "referencedDeclaration": 50447, - "src": "628:20:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - } - }, - "visibility": "public" - }, - { - "id": 119, - "nodeType": "FunctionDefinition", - "src": "747:345:2", - "nodes": [], - "body": { - "id": 118, - "nodeType": "Block", - "src": "788:304:2", - "nodes": [], - "statements": [ - { - "documentation": "https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5", - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 109, - "name": "_disableInitializers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43489, - "src": "988:20:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "988:22:2", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 111, - "nodeType": "ExpressionStatement", - "src": "988:22:2" - }, - { - "expression": { - "id": 116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 112, - "name": "RIGHTS_POLICY_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "1020:21:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 114, - "name": "rightsPolicyManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "1065:19:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 113, - "name": "IRightsPolicyManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50447, - "src": "1044:20:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IRightsPolicyManager_$50447_$", - "typeString": "type(contract IRightsPolicyManager)" - } - }, - "id": 115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1044:41:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - } - }, - "src": "1020:65:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - } - }, - "id": 117, - "nodeType": "ExpressionStatement", - "src": "1020:65:2" - } - ] - }, - "documentation": { - "id": 104, - "nodeType": "StructuredDocumentation", - "src": "694:48:2", - "text": "@custom:oz-upgrades-unsafe-allow constructor" - }, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 106, - "mutability": "mutable", - "name": "rightsPolicyManager", - "nameLocation": "767:19:2", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "759:27:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 105, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "759:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "758:29:2" - }, - "returnParameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [], - "src": "788:0:2" - }, - "scope": 202, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 135, - "nodeType": "FunctionDefinition", - "src": "1286:151:2", - "nodes": [], - "body": { - "id": 134, - "nodeType": "Block", - "src": "1348:89:2", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 127, - "name": "__UUPSUpgradeable_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43575, - "src": "1358:22:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1358:24:2", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 129, - "nodeType": "ExpressionStatement", - "src": "1358:24:2" - }, - { - "expression": { - "arguments": [ - { - "id": 131, - "name": "accessManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "1416:13:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], - "id": 130, - "name": "__AccessControlled_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51296, - "src": "1392:23:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1392:38:2", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 133, - "nodeType": "ExpressionStatement", - "src": "1392:38:2" - } - ] - }, - "documentation": { - "id": 120, - "nodeType": "StructuredDocumentation", - "src": "1098:183:2", - "text": "@notice Initializes the proxy state.\n @dev Sets up the contract for usage.\n @param accessManager Address of the Access Manager contract used for permission handling." - }, - "functionSelector": "c4d66de8", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 125, - "kind": "modifierInvocation", - "modifierName": { - "id": 124, - "name": "initializer", - "nameLocations": ["1336:11:2"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43375, - "src": "1336:11:2" - }, - "nodeType": "ModifierInvocation", - "src": "1336:11:2" - } - ], - "name": "initialize", - "nameLocation": "1295:10:2", - "parameters": { - "id": 123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 122, - "mutability": "mutable", - "name": "accessManager", - "nameLocation": "1314:13:2", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1306:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 121, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1306:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "1305:23:2" - }, - "returnParameters": { - "id": 126, - "nodeType": "ParameterList", - "parameters": [], - "src": "1348:0:2" - }, - "scope": 202, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 163, - "nodeType": "FunctionDefinition", - "src": "1727:261:2", - "nodes": [], - "body": { - "id": 162, - "nodeType": "Block", - "src": "1822:166:2", - "nodes": [], - "statements": [ - { - "assignments": [146], - "declarations": [ - { - "constant": false, - "id": 146, - "mutability": "mutable", - "name": "criteria", - "nameLocation": "1845:8:2", - "nodeType": "VariableDeclaration", - "scope": 162, - "src": "1832:21:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 145, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1832:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 151, - "initialValue": { - "arguments": [ - { - "id": 149, - "name": "holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "1867:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], - "expression": { - "id": 147, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1856:3:2", - "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } - }, - "id": 148, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1860:6:2", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "1856:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1856:18:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1832:42:2" - }, - { - "assignments": [153, null], - "declarations": [ - { - "constant": false, - "id": 153, - "mutability": "mutable", - "name": "active", - "nameLocation": "1890:6:2", - "nodeType": "VariableDeclaration", - "scope": 162, - "src": "1885:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "typeName": { - "id": 152, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1885:4:2", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "visibility": "internal" - }, - null - ], - "id": 159, - "initialValue": { - "arguments": [ - { - "id": 156, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "1940:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 157, - "name": "criteria", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "1949:8:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } - ], - "expression": { - "id": 154, - "name": "RIGHTS_POLICY_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "1902:21:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - } - }, - "id": 155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1924:15:2", - "memberName": "getActivePolicy", - "nodeType": "MemberAccess", - "referencedDeclaration": 50421, - "src": "1902:37:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_address_$", - "typeString": "function (address,bytes memory) view external returns (bool,address)" - } - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1902:56:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", - "typeString": "tuple(bool,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1884:74:2" - }, - { - "expression": { - "id": 160, - "name": "active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "1975:6:2", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "functionReturnParameters": 144, - "id": 161, - "nodeType": "Return", - "src": "1968:13:2" - } - ] - }, - "documentation": { - "id": 136, - "nodeType": "StructuredDocumentation", - "src": "1443:279:2", - "text": "@notice Checks if an account has access rights based on a holder's criteria.\n @param account Address of the account to verify.\n @param holder Address of the rights holder used as criteria.\n @return active True if the account has access; otherwise, false." - }, - "functionSelector": "929cd2e0", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isAccessAllowedByHolder", - "nameLocation": "1736:23:2", - "parameters": { - "id": 141, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 138, - "mutability": "mutable", - "name": "account", - "nameLocation": "1768:7:2", - "nodeType": "VariableDeclaration", - "scope": 163, - "src": "1760:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1760:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 140, - "mutability": "mutable", - "name": "holder", - "nameLocation": "1785:6:2", - "nodeType": "VariableDeclaration", - "scope": 163, - "src": "1777:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1777:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "1759:33:2" - }, - "returnParameters": { - "id": 144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 143, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 163, - "src": "1816:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "typeName": { - "id": 142, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1816:4:2", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "visibility": "internal" - } - ], - "src": "1815:6:2" - }, - "scope": 202, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 191, - "nodeType": "FunctionDefinition", - "src": "2253:262:2", - "nodes": [], - "body": { - "id": 190, - "nodeType": "Block", - "src": "2348:167:2", - "nodes": [], - "statements": [ - { - "assignments": [174], - "declarations": [ - { - "constant": false, - "id": 174, - "mutability": "mutable", - "name": "criteria", - "nameLocation": "2371:8:2", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "2358:21:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 173, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2358:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 179, - "initialValue": { - "arguments": [ - { - "id": 177, - "name": "assetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "2393:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], - "expression": { - "id": 175, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2382:3:2", - "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } - }, - "id": 176, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2386:6:2", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "2382:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2382:19:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2358:43:2" - }, - { - "assignments": [181, null], - "declarations": [ - { - "constant": false, - "id": 181, - "mutability": "mutable", - "name": "active", - "nameLocation": "2417:6:2", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "2412:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "typeName": { - "id": 180, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2412:4:2", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "visibility": "internal" - }, - null - ], - "id": 187, - "initialValue": { - "arguments": [ - { - "id": 184, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "2467:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 185, - "name": "criteria", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 174, - "src": "2476:8:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } - ], - "expression": { - "id": 182, - "name": "RIGHTS_POLICY_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2429:21:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - } - }, - "id": 183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2451:15:2", - "memberName": "getActivePolicy", - "nodeType": "MemberAccess", - "referencedDeclaration": 50421, - "src": "2429:37:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_address_$", - "typeString": "function (address,bytes memory) view external returns (bool,address)" - } - }, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2429:56:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", - "typeString": "tuple(bool,address)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2411:74:2" - }, - { - "expression": { - "id": 188, - "name": "active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2502:6:2", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "functionReturnParameters": 172, - "id": 189, - "nodeType": "Return", - "src": "2495:13:2" - } - ] - }, - "documentation": { - "id": 164, - "nodeType": "StructuredDocumentation", - "src": "1994:254:2", - "text": "@notice Checks if an account has access to a specific asset ID.\n @param account Address of the account to verify.\n @param assetId ID of the asset used as criteria.\n @return active True if the account has access; otherwise, false." - }, - "functionSelector": "a1a2dac6", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isAccessAllowedByAsset", - "nameLocation": "2262:22:2", - "parameters": { - "id": 169, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 166, - "mutability": "mutable", - "name": "account", - "nameLocation": "2293:7:2", - "nodeType": "VariableDeclaration", - "scope": 191, - "src": "2285:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 165, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2285:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 168, - "mutability": "mutable", - "name": "assetId", - "nameLocation": "2310:7:2", - "nodeType": "VariableDeclaration", - "scope": 191, - "src": "2302:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 167, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2302:7:2", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - } - ], - "src": "2284:34:2" - }, - "returnParameters": { - "id": 172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 171, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 191, - "src": "2342:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "typeName": { - "id": 170, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2342:4:2", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "visibility": "internal" - } - ], - "src": "2341:6:2" - }, - "scope": 202, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 201, - "nodeType": "FunctionDefinition", - "src": "2819:84:2", - "nodes": [], - "body": { - "id": 200, - "nodeType": "Block", - "src": "2901:2:2", - "nodes": [], - "statements": [] - }, - "baseFunctions": [43657], - "documentation": { - "id": 192, - "nodeType": "StructuredDocumentation", - "src": "2521:293:2", - "text": "@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-" - }, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 198, - "kind": "modifierInvocation", - "modifierName": { - "id": 197, - "name": "onlyAdmin", - "nameLocations": ["2891:9:2"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 51279, - "src": "2891:9:2" - }, - "nodeType": "ModifierInvocation", - "src": "2891:9:2" - } - ], - "name": "_authorizeUpgrade", - "nameLocation": "2828:17:2", - "overrides": { - "id": 196, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "2882:8:2" - }, - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 194, - "mutability": "mutable", - "name": "newImplementation", - "nameLocation": "2854:17:2", - "nodeType": "VariableDeclaration", - "scope": 201, - "src": "2846:25:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 193, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2846:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "2845:27:2" - }, - "returnParameters": { - "id": 199, - "nodeType": "ParameterList", - "parameters": [], - "src": "2901:0:2" - }, - "scope": 202, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 94, - "name": "Initializable", - "nameLocations": ["496:13:2"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43521, - "src": "496:13:2" - }, - "id": 95, - "nodeType": "InheritanceSpecifier", - "src": "496:13:2" - }, - { - "baseName": { - "id": 96, - "name": "UUPSUpgradeable", - "nameLocations": ["511:15:2"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43703, - "src": "511:15:2" - }, - "id": 97, - "nodeType": "InheritanceSpecifier", - "src": "511:15:2" - }, - { - "baseName": { - "id": 98, - "name": "AccessControlledUpgradeable", - "nameLocations": ["528:27:2"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 51361, - "src": "528:27:2" - }, - "id": 99, - "nodeType": "InheritanceSpecifier", - "src": "528:27:2" - } - ], - "canonicalName": "AccessAgg", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [202, 51361, 43267, 43871, 43749, 43703, 44440, 43521], - "name": "AccessAgg", - "nameLocation": "483:9:2", - "scope": 203, - "usedErrors": [ - 43284, 43287, 43548, 43553, 43842, 43848, 43852, 44498, 44511, 45462, 45724, 51261 - ], - "usedEvents": [43292, 43838, 44413] - } - ], - "license": "MIT" - }, - "id": 2 -} +{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyManager","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getActiveLicenses","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct AccessAgg.PolicyLicense[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"license","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getActiveLicenses","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct AccessAgg.PolicyLicense[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"license","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getActivePoliciesLicenses","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct AccessAgg.PolicyLicense[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"license","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAccessAllowed","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isAccessAllowed","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60c03461014c57601f61158838819003918201601f19168301916001600160401b038311848410176101505780849260209460405283398101031261014c57516001600160a01b0381169081900361014c57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1661013d576002600160401b03196001600160401b038216016100d4575b5060a052604051611423908161016582396080518181816107780152610810015260a05181818160d7015281816104fb01526110100152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009b565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c9081632b1e6e8f14610c33575080634bad81cb14610bf45780634f1ef286146107f057806352d1902d146107515780637a9e5e4b1461067a5780638fb36037146105e757806396ba154d14610594578063ac3e8fb014610478578063ad3cb1cc14610419578063bf7e214f146103c7578063c4d66de814610129578063d3f4c5af146100ff5763f1bdc452146100ab575f80fd5b346100fb575f6003193601126100fb57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100fb5761012561011961011336610dea565b90610fbe565b60405191829182610ccb565b0390f35b346100fb5760206003193601126100fb57610142610c85565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103bf575b60011490816103b5575b1590816103ac575b5061038457818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561032f575b506102056112fd565b61020d6112fd565b6102156112fd565b61021d6112fd565b61022681611252565b61022e6112fd565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561029c57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101fc565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610193565b303b15915061018b565b849150610181565b346100fb575f6003193601126100fb57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100fb575f6003193601126100fb5761012560405161043a604082610d6f565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610e74565b346100fb5760406003193601126100fb576104e26040610496610c85565b8151906024356020830152602082526104af8383610d6f565b825193849283927fbe5fb16600000000000000000000000000000000000000000000000000000000845260048401610f09565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610589575f905f92610557575b5060408051911515825273ffffffffffffffffffffffffffffffffffffffff929092166020820152f35b905061057b915060403d604011610582575b6105738183610d6f565b810190610ee5565b908261052d565b503d610569565b6040513d5f823e3d90fd5b346100fb5760406003193601126100fb576104e260406105b2610c85565b6105ba610ca8565b9073ffffffffffffffffffffffffffffffffffffffff835192166020830152602082526104af8383610d6f565b346100fb575f6003193601126100fb577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156106725760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610648565b346100fb5760206003193601126100fb57610693610c85565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361072557803b156106e3576106e190611252565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100fb575f6003193601126100fb5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107c85760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b6107f936610dea565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610bb2575b506107c8576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610589575f91610b67575b5015610ae35773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610aaf575b5061094757837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610a845750813b15610a5957807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610a28575f808360206106e195519101845af4610a22610f8f565b91611354565b505034610a3157005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610adb575b81610acb60209383610d6f565b810103126100fb57519085610916565b3d9150610abe565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610baa575b81610b8260409383610d6f565b810103126100fb576020610b9582610eb7565b91015163ffffffff8116036100fb57836108c1565b3d9150610b75565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614158361083b565b346100fb5760406003193601126100fb57610125610119610c13610c85565b60405190602435602083015260208252610c2e604083610d6f565b610fbe565b346100fb5760406003193601126100fb5761011961012591610c53610c85565b73ffffffffffffffffffffffffffffffffffffffff610c70610ca8565b16602083015260208252610c2e604083610d6f565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100fb57565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036100fb57565b60206040818301928281528451809452019201905f5b818110610cee5750505090565b8251805173ffffffffffffffffffffffffffffffffffffffff1685526020908101518186015260409094019390920191600101610ce1565b6040810190811067ffffffffffffffff821117610d4257604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610d4257604052565b67ffffffffffffffff8111610d4257601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060406003198301126100fb5760043573ffffffffffffffffffffffffffffffffffffffff811681036100fb579160243567ffffffffffffffff81116100fb57816023820112156100fb57806004013590610e4482610db0565b92610e526040519485610d6f565b828452602483830101116100fb57815f92602460209301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b519081151582036100fb57565b519073ffffffffffffffffffffffffffffffffffffffff821682036100fb57565b91908260409103126100fb57610f066020610eff84610eb7565b9301610ec4565b90565b60409073ffffffffffffffffffffffffffffffffffffffff610f0694931681528160208201520190610e74565b67ffffffffffffffff8111610d425760051b60200190565b8051821015610f625760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3d15610fb9573d90610fa082610db0565b91610fae6040519384610d6f565b82523d5f602084013e565b606090565b90604051907f8720327e0000000000000000000000000000000000000000000000000000000082525f8280610ff7848760048401610f09565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa918215610589575f926111b7575b508151927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061108761107186610f36565b9561107f6040519788610d6f565b808752610f36565b015f5b8181106111945750508251925f5b8481106110a757505050505090565b73ffffffffffffffffffffffffffffffffffffffff6110c68284610f4e565b5116905f8060405160208101907e9e11ff000000000000000000000000000000000000000000000000000000008252611133816111078b8b60248401610f09565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610d6f565b5190855afa50611141610f8f565b916020838051810103126100fb5760206001930151801561118d576040519161116983610d26565b8252602082015261117a8289610f4e565b526111858188610f4e565b505b01611098565b5050611187565b6020906040516111a381610d26565b5f81525f838201528282890101520161108a565b9091503d805f833e6111c98183610d6f565b8101906020818303126100fb5780519067ffffffffffffffff82116100fb57019080601f830112156100fb57815161120081610f36565b9261120e6040519485610d6f565b81845260208085019260051b8201019283116100fb57602001905b82821061123a57505050905f611040565b6020809161124784610ec4565b815201910190611229565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561132c57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611391575080511561136957805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806113e4575b6113a2575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561139a56fea2646970667358221220124dbdd55f540bc886e65d82c794f433641dfe9a407ab7d4848bb808874156a464736f6c634300081a0033","sourceMap":"801:5617:0:-:0;;;;;;;;;;;;;-1:-1:-1;;801:5617:0;;;;-1:-1:-1;;;;;801:5617:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;801:5617:0;;;;;;;;1171:4:43;1163:13;;8837:64:42;801:5617:0;;;;;;7896:76:42;;-1:-1:-1;;;;;;;;;;;801:5617:0;;7985:34:42;7981:146;;-1:-1:-1;1811:65:0;;;801:5617;;;;;;;;1163:13:43;801:5617:0;;;;;;;;;;1811:65;801:5617;;;;;;;;;;;;;;;;7981:146:42;-1:-1:-1;;;;;;801:5617:0;-1:-1:-1;;;;;801:5617:0;;;8837:64:42;801:5617:0;;;;;;8087:29:42;;801:5617:0;;8087:29:42;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:42;;-1:-1:-1;7938:23:42;801:5617:0;-1:-1:-1;801:5617:0;;;;;;-1:-1:-1;801:5617:0;;;;;-1:-1:-1;801:5617:0","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c9081632b1e6e8f14610c33575080634bad81cb14610bf45780634f1ef286146107f057806352d1902d146107515780637a9e5e4b1461067a5780638fb36037146105e757806396ba154d14610594578063ac3e8fb014610478578063ad3cb1cc14610419578063bf7e214f146103c7578063c4d66de814610129578063d3f4c5af146100ff5763f1bdc452146100ab575f80fd5b346100fb575f6003193601126100fb57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100fb5761012561011961011336610dea565b90610fbe565b60405191829182610ccb565b0390f35b346100fb5760206003193601126100fb57610142610c85565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103bf575b60011490816103b5575b1590816103ac575b5061038457818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561032f575b506102056112fd565b61020d6112fd565b6102156112fd565b61021d6112fd565b61022681611252565b61022e6112fd565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561029c57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101fc565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610193565b303b15915061018b565b849150610181565b346100fb575f6003193601126100fb57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100fb575f6003193601126100fb5761012560405161043a604082610d6f565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610e74565b346100fb5760406003193601126100fb576104e26040610496610c85565b8151906024356020830152602082526104af8383610d6f565b825193849283927fbe5fb16600000000000000000000000000000000000000000000000000000000845260048401610f09565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610589575f905f92610557575b5060408051911515825273ffffffffffffffffffffffffffffffffffffffff929092166020820152f35b905061057b915060403d604011610582575b6105738183610d6f565b810190610ee5565b908261052d565b503d610569565b6040513d5f823e3d90fd5b346100fb5760406003193601126100fb576104e260406105b2610c85565b6105ba610ca8565b9073ffffffffffffffffffffffffffffffffffffffff835192166020830152602082526104af8383610d6f565b346100fb575f6003193601126100fb577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156106725760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610648565b346100fb5760206003193601126100fb57610693610c85565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361072557803b156106e3576106e190611252565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100fb575f6003193601126100fb5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107c85760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b6107f936610dea565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610bb2575b506107c8576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610589575f91610b67575b5015610ae35773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610aaf575b5061094757837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610a845750813b15610a5957807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610a28575f808360206106e195519101845af4610a22610f8f565b91611354565b505034610a3157005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610adb575b81610acb60209383610d6f565b810103126100fb57519085610916565b3d9150610abe565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610baa575b81610b8260409383610d6f565b810103126100fb576020610b9582610eb7565b91015163ffffffff8116036100fb57836108c1565b3d9150610b75565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614158361083b565b346100fb5760406003193601126100fb57610125610119610c13610c85565b60405190602435602083015260208252610c2e604083610d6f565b610fbe565b346100fb5760406003193601126100fb5761011961012591610c53610c85565b73ffffffffffffffffffffffffffffffffffffffff610c70610ca8565b16602083015260208252610c2e604083610d6f565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100fb57565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036100fb57565b60206040818301928281528451809452019201905f5b818110610cee5750505090565b8251805173ffffffffffffffffffffffffffffffffffffffff1685526020908101518186015260409094019390920191600101610ce1565b6040810190811067ffffffffffffffff821117610d4257604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610d4257604052565b67ffffffffffffffff8111610d4257601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060406003198301126100fb5760043573ffffffffffffffffffffffffffffffffffffffff811681036100fb579160243567ffffffffffffffff81116100fb57816023820112156100fb57806004013590610e4482610db0565b92610e526040519485610d6f565b828452602483830101116100fb57815f92602460209301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b519081151582036100fb57565b519073ffffffffffffffffffffffffffffffffffffffff821682036100fb57565b91908260409103126100fb57610f066020610eff84610eb7565b9301610ec4565b90565b60409073ffffffffffffffffffffffffffffffffffffffff610f0694931681528160208201520190610e74565b67ffffffffffffffff8111610d425760051b60200190565b8051821015610f625760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3d15610fb9573d90610fa082610db0565b91610fae6040519384610d6f565b82523d5f602084013e565b606090565b90604051907f8720327e0000000000000000000000000000000000000000000000000000000082525f8280610ff7848760048401610f09565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa918215610589575f926111b7575b508151927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061108761107186610f36565b9561107f6040519788610d6f565b808752610f36565b015f5b8181106111945750508251925f5b8481106110a757505050505090565b73ffffffffffffffffffffffffffffffffffffffff6110c68284610f4e565b5116905f8060405160208101907e9e11ff000000000000000000000000000000000000000000000000000000008252611133816111078b8b60248401610f09565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610d6f565b5190855afa50611141610f8f565b916020838051810103126100fb5760206001930151801561118d576040519161116983610d26565b8252602082015261117a8289610f4e565b526111858188610f4e565b505b01611098565b5050611187565b6020906040516111a381610d26565b5f81525f838201528282890101520161108a565b9091503d805f833e6111c98183610d6f565b8101906020818303126100fb5780519067ffffffffffffffff82116100fb57019080601f830112156100fb57815161120081610f36565b9261120e6040519485610d6f565b81845260208085019260051b8201019283116100fb57602001905b82821061123a57505050905f611040565b6020809161124784610ec4565b815201910190611229565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561132c57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611391575080511561136957805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806113e4575b6113a2575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561139a56fea2646970667358221220124dbdd55f540bc886e65d82c794f433641dfe9a407ab7d4848bb808874156a464736f6c634300081a0033","sourceMap":"801:5617:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;801:5617:0;;;;;;;;;1383:59;801:5617;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;801:5617:0;;;;;;;:::i;:::-;8837:64:42;801:5617:0;;;;;;4301:16:42;801:5617:0;;;;4726:16:42;;:34;;;;801:5617:0;4805:1:42;4790:16;:50;;;;801:5617:0;4855:13:42;:30;;;;801:5617:0;4851:91:42;;;801:5617:0;;4805:1:42;801:5617:0;;;;;8837:64:42;801:5617:0;4979:67:42;;801:5617:0;6893:76:42;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:41;;;:::i;:::-;6893:76:42;;:::i;:::-;801:5617:0;;3298:62:95;801:5617:0;;;3298:62:95;801:5617:0;5066:101:42;;801:5617:0;5066:101:42;801:5617:0;8837:64:42;801:5617:0;;8837:64:42;801:5617:0;5142:14:42;801:5617:0;;;4805:1:42;801:5617:0;;5142:14:42;801:5617:0;4979:67:42;801:5617:0;;;;8837:64:42;801:5617:0;4979:67:42;;;4851:91;4908:23;801:5617:0;4908:23:42;801:5617:0;;4908:23:42;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:42;;4726:34;;;-1:-1:-1;4726:34:42;;801:5617:0;;;;;-1:-1:-1;;801:5617:0;;;;;;;1782:71:41;801:5617:0;;;;;;;;;;;;;-1:-1:-1;;801:5617:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;801:5617:0;;;;;4782:56;801:5617;;;:::i;:::-;;;;;;;4708:19;;801:5617;;4708:19;;;;;;:::i;:::-;801:5617;;4782:56;;;;;801:5617;4782:56;;801:5617;4782:56;;;:::i;:::-;;:21;801:5617;4782:21;801:5617;4782:56;;;;;;;801:5617;;;4782:56;;;801:5617;-1:-1:-1;801:5617:0;;;;;;;;;;;;;;;;;;4782:56;;;;;;801:5617;4782:56;801:5617;4782:56;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;801:5617;;;;;;;;;;;;;;-1:-1:-1;;801:5617:0;;;;;4130:56;801:5617;;;:::i;:::-;;;:::i;:::-;;;;;;;;4051:18;;801:5617;;4051:18;;;;;;:::i;801:5617::-;;;;;-1:-1:-1;;801:5617:0;;;;;1782:71:41;801:5617:0;;;;;4698:71:41;;;801:5617:0;;4698:71:41;801:5617:0;;;;;;;;4698:71:41;801:5617:0;;4698:71:41;;801:5617:0;;;;;-1:-1:-1;;801:5617:0;;;;;;;:::i;:::-;;1782:71:41;801:5617:0;;966:10:44;4258:21:41;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;801:5617:0;4355:110:41;801:5617:0;4411:43:41;;801:5617:0;4411:43:41;801:5617:0;;;;;4411:43:41;4254:92;4302:33;801:5617:0;4302:33:41;966:10:44;801:5617:0;;;;4302:33:41;801:5617:0;;;;;-1:-1:-1;;801:5617:0;;;;;;5115:6:43;801:5617:0;5106:4:43;5098:23;5094:145;;801:5617:0;;;811:66:56;801:5617:0;;;5094:145:43;5199:29;801:5617:0;5199:29:43;801:5617:0;;5199:29:43;801:5617:0;;;;:::i;:::-;;4692:6:43;801:5617:0;4683:4:43;;4675:23;:120;;;;;801:5617:0;4658:251:43;;;3061:30:95;801:5617:0;;3298:62:95;801:5617:0;;;;3061:30:95;;;;801:5617:0;3061:30:95;;801:5617:0;;3061:30:95;;801:5617:0;1896:10:95;801:5617:0;;;;3061:30:95;;;;;;;801:5617:0;3061:30:95;;;801:5617:0;1872:35:95;;1868:140;;801:5617:0;;;;;;;6156:52:43;;801:5617:0;6156:52:43;801:5617:0;6156:52:43;;;;801:5617:0;;6156:52:43;;;801:5617:0;-1:-1:-1;6152:437:43;;6518:60;;801:5617:0;6518:60:43;801:5617:0;;;;6518:60:43;6152:437;6250:40;811:66:56;6250:40:43;;;6246:120;;1748:29:56;;;:34;1744:119;;801:5617:0;;811:66:56;801:5617:0;;;811:66:56;801:5617:0;2407:36:56;801:5617:0;2407:36:56;;801:5617:0;;2458:15:56;:11;;801:5617:0;4049:25:63;;801:5617:0;4091:55:63;4049:25;;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:56:-;6163:9;;;6159:70;;801:5617:0;6159:70:56;6199:19;801:5617:0;6199:19:56;801:5617:0;;6199:19:56;1744:119;1805:47;801:5617:0;1805:47:56;801:5617:0;;;;1805:47:56;6246:120:43;6317:34;801:5617:0;6317:34:43;801:5617:0;;;;6317:34:43;6156:52;;;;801:5617:0;6156:52:43;;801:5617:0;6156:52:43;;;;;;801:5617:0;6156:52:43;;;:::i;:::-;;;801:5617:0;;;;;6156:52:43;;;;;;;-1:-1:-1;6156:52:43;;1868:140:95;1930:67;801:5617:0;;1930:67:95;;;801:5617:0;;1930:67:95;;520:1:93;;801:5617:0;520:1:93;;801:5617:0;520:1:93;3061:30:95;801:5617:0;;520:1:93;;;;;;1930:67:95;3061:30;;;801:5617:0;3061:30:95;;801:5617:0;3061:30:95;;;;;;801:5617:0;3061:30:95;;;:::i;:::-;;;801:5617:0;;;;;;;;:::i;:::-;;;;;;;;;;3061:30:95;;;;;;-1:-1:-1;3061:30:95;;4675:120:43;801:5617:0;;;811:66:56;801:5617:0;;4753:42:43;;4675:120;;;801:5617:0;;;;;-1:-1:-1;;801:5617:0;;;;;;3455:44;801:5617;;:::i;:::-;;;;;;;3381:19;;801:5617;;3381:19;;;801:5617;3381:19;;:::i;:::-;3455:44;:::i;801:5617::-;;;;;-1:-1:-1;;801:5617:0;;;;;2853:44;801:5617;;;;:::i;:::-;;;;:::i;:::-;;;2774:18;;801:5617;;2774:18;;;801:5617;2774:18;;:::i;801:5617::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;801:5617:0;;;;;-1:-1:-1;801:5617:0;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;801:5617:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;801:5617:0;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;801:5617:0;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;801:5617:0;;;;:::o;:::-;;;:::o;5075:953::-;;801:5617;;5255:58;801:5617;5255:58;;;;;;;;;;;;:::i;:::-;;:21;801:5617;5255:21;801:5617;5255:58;;;;;;;;;;;5075:953;801:5617;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;5255:58;801:5617;;;;;;;;;;5456:13;5255:58;5471:15;;;;;;6006;;;;;5075:953;:::o;5488:20::-;801:5617;5548:11;;;;:::i;:::-;801:5617;;;5255:58;801:5617;;;;5637:55;;;;;;;;;;;;;;;:::i;:::-;;801:5617;5637:55;;;;;;:::i;:::-;5732:34;;;;;;;;:::i;:::-;801:5617;;;;;5804:29;;801:5617;;;;;884:1:90;5804:29:0;;801:5617;5851:14;;5847:28;;801:5617;;;;;;:::i;:::-;;;;5925:60;;801:5617;5911:74;;;;:::i;:::-;;;;;;:::i;:::-;;5456:13;801:5617;5456:13;;5847:28;5867:8;;;;801:5617;;;;;;;;:::i;:::-;5255:58;801:5617;;5255:58;801:5617;;;;;;;;;;;;;5255:58;;;;;;;;;;;;;:::i;:::-;;;801:5617;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;5255:58;;;;;;;801:5617;;;;;;;:::i;:::-;;;;;;;;;4964:220:41;801:5617:0;;5147:30:41;4964:220;801:5617:0;;;1782:71:41;801:5617:0;;;1782:71:41;801:5617:0;;;;;;5147:30:41;4964:220::o;7084:141:42:-;801:5617:0;8837:64:42;801:5617:0;;;;7150:18:42;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:42;;-1:-1:-1;7191:17:42;4421:582:63;;4593:8;;-1:-1:-1;801:5617:0;;5674:21:63;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;801:5617:0;;4841:22:63;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;801:5617:0;4917:24:63;;4862:1;4917:24;801:5617:0;4917:24:63;801:5617:0;;4862:1:63;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"33":[{"start":215,"length":32},{"start":1275,"length":32},{"start":4112,"length":32}],"40433":[{"start":1912,"length":32},{"start":2064,"length":32}]}},"methodIdentifiers":{"RIGHTS_POLICY_MANAGER()":"f1bdc452","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","getActiveLicenses(address,address)":"2b1e6e8f","getActiveLicenses(address,uint256)":"4bad81cb","getActivePoliciesLicenses(address,bytes)":"d3f4c5af","initialize(address)":"c4d66de8","isAccessAllowed(address,address)":"96ba154d","isAccessAllowed(address,uint256)":"ac3e8fb0","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getActiveLicenses\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"license\",\"type\":\"uint256\"}],\"internalType\":\"struct AccessAgg.PolicyLicense[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getActiveLicenses\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"license\",\"type\":\"uint256\"}],\"internalType\":\"struct AccessAgg.PolicyLicense[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"getActivePoliciesLicenses\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"license\",\"type\":\"uint256\"}],\"internalType\":\"struct AccessAgg.PolicyLicense[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isAccessAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"isAccessAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Uses UUPS upgradeable proxy pattern and centralized access control.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"details\":\"Disables initializers to ensure proper proxy usage.\",\"params\":{\"rightsPolicyManager\":\"Address of the Rights Policy Manager contract.\"}},\"getActiveLicenses(address,address)\":{\"details\":\"Uses the asset holder address as the criteria for license retrieval.\",\"params\":{\"account\":\"The address of the account to check.\",\"holder\":\"The address of the rights holder used as the criteria.\"},\"returns\":{\"_0\":\"An array of PolicyLicense structures.\"}},\"getActiveLicenses(address,uint256)\":{\"details\":\"Uses the asset ID as the criteria for license retrieval.\",\"params\":{\"account\":\"The address of the account to check.\",\"assetId\":\"The ID of the asset used as the criteria.\"},\"returns\":{\"_0\":\"An array of PolicyLicense structures.\"}},\"getActivePoliciesLicenses(address,bytes)\":{\"params\":{\"account\":\"The address of the account to check.\",\"criteria\":\"Encoded criteria used to filter active policies.\"}},\"initialize(address)\":{\"details\":\"Sets up the contract for usage and ensures AccessManager is properly set.\",\"params\":{\"accessManager\":\"Address of the Access Manager contract used for permission handling.\"}},\"isAccessAllowed(address,address)\":{\"details\":\"Uses the holder address as the search criteria.\",\"params\":{\"account\":\"The address of the account to verify.\",\"holder\":\"The address of the rights holder used as criteria.\"},\"returns\":{\"_0\":\"active True if the account has access; otherwise, false.\",\"_1\":\"address The address of the active policy.\"}},\"isAccessAllowed(address,uint256)\":{\"details\":\"Uses the asset ID as the search criteria.\",\"params\":{\"account\":\"The address of the account to verify.\",\"assetId\":\"The ID of the asset used as criteria.\"},\"returns\":{\"_0\":\"active True if the account has access; otherwise, false.\",\"_1\":\"address The address of the active policy.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"RIGHTS_POLICY_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\",\"details\":\"This variable is immutable and set at deployment time.\"}},\"title\":\"Access Aggregator\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"RIGHTS_POLICY_MANAGER()\":{\"notice\":\"Address of the Rights Policy Manager contract.\"},\"constructor\":{\"notice\":\"Constructor to initialize the immutable Rights Policy Manager.\"},\"getActiveLicenses(address,address)\":{\"notice\":\"Retrieves all active licenses for a given account and asset holder.\"},\"getActiveLicenses(address,uint256)\":{\"notice\":\"Retrieves all active licenses for a given account and asset ID.\"},\"getActivePoliciesLicenses(address,bytes)\":{\"notice\":\"Retrieves active policies and their corresponding licenses for an account.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"isAccessAllowed(address,address)\":{\"notice\":\"Checks if an account has access rights based on a holder's criteria.\"},\"isAccessAllowed(address,uint256)\":{\"notice\":\"Checks if an account has access to a specific asset ID.\"}},\"notice\":\"This contract aggregates access control logic for licenses and policies.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/aggregation/AccessAgg.sol\":\"AccessAgg\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/aggregation/AccessAgg.sol\":{\"keccak256\":\"0xf24aac1fe180b4931fc80fa612f1bb45e31044b3e49ec14c568931056dc5ec27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7deead2c10965c53b2d50fadbdf1da8d9ea946b41445076b89bd12af00e40679\",\"dweb:/ipfs/QmNS7a2hKWRWk58V6stTZuRYWGtapUasdzFkUGcE5SxZok\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0x6bb2e4f5f93d957e5fc351e98155c0c038da3a31dd125e22e06f8cca0d0aa332\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0cb7da10029a309b52c9df25d9d59c3e0404faa156716d0805d540d0a3518915\",\"dweb:/ipfs/QmXgxHWuaQXRnBgAPiPA4hkWcHpcwLgg4d672gTkP793fd\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xc058362d6b4d98d26f283ecf94b386d95d62346d9ef1c8fb22f6f5dd1fd7ba87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a831853a4551cdc78b6cef32134017978bb27e73f73de57062a9eff9d3e836f\",\"dweb:/ipfs/QmYnLR3TRb2umAFxmPFn2fW6baSbfgYqaNm2tgoqyoby7d\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x882f7c8f53621d83eaa7e8277379add8f40f8fb0352e6c5c5b8fae4f39c21cf4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f8638cb48fb32ea42b167b909b3d5fecd2ba14c7affdda956d9d5f547636789\",\"dweb:/ipfs/Qmdc5wXqQVCN91ussACQwCi2k6nZaCfsFC6g2nvL7hnKNv\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x9c0dbb09ad90b98817849666e45a70c371676cbe187709f76021bfd6f7d0bb57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb5dafd14005606dd486c8ea5aea374160a59224c03b9687a504360f1c5d190a\",\"dweb:/ipfs/QmVvn3SLREtxwehgxkGg1QE1eMw5QRk5R6kG8qyGujbCTf\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0x5d99ec9405886a20eeff6ea243c1d94b5994a474338b866d74ffa9bbfa9473f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1de4b84ddb631eee3d1eb0f921f0d0d20be3f6e808b8b2a21082436816884095\",\"dweb:/ipfs/QmaKZ938AabVXewdFBVtV8SFD4eWJq59AsdoV3aBMY7cmB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getActiveLicenses","outputs":[{"internalType":"struct AccessAgg.PolicyLicense[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"uint256","name":"license","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getActiveLicenses","outputs":[{"internalType":"struct AccessAgg.PolicyLicense[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"uint256","name":"license","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"getActivePoliciesLicenses","outputs":[{"internalType":"struct AccessAgg.PolicyLicense[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"uint256","name":"license","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isAccessAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isAccessAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor","details":"Disables initializers to ensure proper proxy usage.","params":{"rightsPolicyManager":"Address of the Rights Policy Manager contract."}},"getActiveLicenses(address,address)":{"details":"Uses the asset holder address as the criteria for license retrieval.","params":{"account":"The address of the account to check.","holder":"The address of the rights holder used as the criteria."},"returns":{"_0":"An array of PolicyLicense structures."}},"getActiveLicenses(address,uint256)":{"details":"Uses the asset ID as the criteria for license retrieval.","params":{"account":"The address of the account to check.","assetId":"The ID of the asset used as the criteria."},"returns":{"_0":"An array of PolicyLicense structures."}},"getActivePoliciesLicenses(address,bytes)":{"params":{"account":"The address of the account to check.","criteria":"Encoded criteria used to filter active policies."}},"initialize(address)":{"details":"Sets up the contract for usage and ensures AccessManager is properly set.","params":{"accessManager":"Address of the Access Manager contract used for permission handling."}},"isAccessAllowed(address,address)":{"details":"Uses the holder address as the search criteria.","params":{"account":"The address of the account to verify.","holder":"The address of the rights holder used as criteria."},"returns":{"_0":"active True if the account has access; otherwise, false.","_1":"address The address of the active policy."}},"isAccessAllowed(address,uint256)":{"details":"Uses the asset ID as the search criteria.","params":{"account":"The address of the account to verify.","assetId":"The ID of the asset used as criteria."},"returns":{"_0":"active True if the account has access; otherwise, false.","_1":"address The address of the active policy."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"RIGHTS_POLICY_MANAGER()":{"notice":"Address of the Rights Policy Manager contract."},"constructor":{"notice":"Constructor to initialize the immutable Rights Policy Manager."},"getActiveLicenses(address,address)":{"notice":"Retrieves all active licenses for a given account and asset holder."},"getActiveLicenses(address,uint256)":{"notice":"Retrieves all active licenses for a given account and asset ID."},"getActivePoliciesLicenses(address,bytes)":{"notice":"Retrieves active policies and their corresponding licenses for an account."},"initialize(address)":{"notice":"Initializes the proxy state."},"isAccessAllowed(address,address)":{"notice":"Checks if an account has access rights based on a holder's criteria."},"isAccessAllowed(address,uint256)":{"notice":"Checks if an account has access to a specific asset ID."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/aggregation/AccessAgg.sol":"AccessAgg"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/aggregation/AccessAgg.sol":{"keccak256":"0xf24aac1fe180b4931fc80fa612f1bb45e31044b3e49ec14c568931056dc5ec27","urls":["bzz-raw://7deead2c10965c53b2d50fadbdf1da8d9ea946b41445076b89bd12af00e40679","dweb:/ipfs/QmNS7a2hKWRWk58V6stTZuRYWGtapUasdzFkUGcE5SxZok"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0x6bb2e4f5f93d957e5fc351e98155c0c038da3a31dd125e22e06f8cca0d0aa332","urls":["bzz-raw://0cb7da10029a309b52c9df25d9d59c3e0404faa156716d0805d540d0a3518915","dweb:/ipfs/QmXgxHWuaQXRnBgAPiPA4hkWcHpcwLgg4d672gTkP793fd"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xc058362d6b4d98d26f283ecf94b386d95d62346d9ef1c8fb22f6f5dd1fd7ba87","urls":["bzz-raw://4a831853a4551cdc78b6cef32134017978bb27e73f73de57062a9eff9d3e836f","dweb:/ipfs/QmYnLR3TRb2umAFxmPFn2fW6baSbfgYqaNm2tgoqyoby7d"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x882f7c8f53621d83eaa7e8277379add8f40f8fb0352e6c5c5b8fae4f39c21cf4","urls":["bzz-raw://1f8638cb48fb32ea42b167b909b3d5fecd2ba14c7affdda956d9d5f547636789","dweb:/ipfs/Qmdc5wXqQVCN91ussACQwCi2k6nZaCfsFC6g2nvL7hnKNv"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x9c0dbb09ad90b98817849666e45a70c371676cbe187709f76021bfd6f7d0bb57","urls":["bzz-raw://fb5dafd14005606dd486c8ea5aea374160a59224c03b9687a504360f1c5d190a","dweb:/ipfs/QmVvn3SLREtxwehgxkGg1QE1eMw5QRk5R6kG8qyGujbCTf"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0x5d99ec9405886a20eeff6ea243c1d94b5994a474338b866d74ffa9bbfa9473f0","urls":["bzz-raw://1de4b84ddb631eee3d1eb0f921f0d0d20be3f6e808b8b2a21082436816884095","dweb:/ipfs/QmaKZ938AabVXewdFBVtV8SFD4eWJq59AsdoV3aBMY7cmB"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/aggregation/AccessAgg.sol","id":286,"exportedSymbols":{"AccessAgg":[285],"AccessControlledUpgradeable":[48582],"IPolicy":[47548],"IRightsPolicyManager":[47652],"Initializable":[40413],"LoopOps":[47966],"UUPSUpgradeable":[40595]},"nodeType":"SourceUnit","src":"32:6387:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:23:0","nodes":[],"literals":["solidity","0.8",".26"]},{"id":3,"nodeType":"ImportDirective","src":"57:98:0","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":286,"sourceUnit":40414,"symbolAliases":[{"foreign":{"id":2,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40413,"src":"66:13:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5,"nodeType":"ImportDirective","src":"156:102:0","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":286,"sourceUnit":40596,"symbolAliases":[{"foreign":{"id":4,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40595,"src":"165:15:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7,"nodeType":"ImportDirective","src":"259:115:0","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":286,"sourceUnit":48583,"symbolAliases":[{"foreign":{"id":6,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48582,"src":"268:27:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":9,"nodeType":"ImportDirective","src":"376:96:0","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyManager.sol","nameLocation":"-1:-1:-1","scope":286,"sourceUnit":47653,"symbolAliases":[{"foreign":{"id":8,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47652,"src":"385:20:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11,"nodeType":"ImportDirective","src":"473:72:0","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":286,"sourceUnit":47549,"symbolAliases":[{"foreign":{"id":10,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47548,"src":"482:7:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13,"nodeType":"ImportDirective","src":"546:62:0","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":286,"sourceUnit":47967,"symbolAliases":[{"foreign":{"id":12,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47966,"src":"555:7:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":285,"nodeType":"ContractDefinition","src":"801:5617:0","nodes":[{"id":23,"nodeType":"UsingForDirective","src":"889:26:0","nodes":[],"global":false,"libraryName":{"id":21,"name":"LoopOps","nameLocations":["895:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":47966,"src":"895:7:0"},"typeName":{"id":22,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":29,"nodeType":"StructDefinition","src":"1027:153:0","nodes":[],"canonicalName":"AccessAgg.PolicyLicense","documentation":{"id":24,"nodeType":"StructuredDocumentation","src":"921:101:0","text":"@notice Data structure representing the relationship between a policy and its associated license."},"members":[{"constant":false,"id":26,"mutability":"mutable","name":"policy","nameLocation":"1066:6:0","nodeType":"VariableDeclaration","scope":29,"src":"1058:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25,"name":"address","nodeType":"ElementaryTypeName","src":"1058:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28,"mutability":"mutable","name":"license","nameLocation":"1124:7:0","nodeType":"VariableDeclaration","scope":29,"src":"1116:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27,"name":"uint256","nodeType":"ElementaryTypeName","src":"1116:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"PolicyLicense","nameLocation":"1034:13:0","scope":285,"visibility":"public"},{"id":33,"nodeType":"VariableDeclaration","src":"1383:59:0","nodes":[],"constant":false,"documentation":{"id":30,"nodeType":"StructuredDocumentation","src":"1186:192:0","text":"@notice Address of the Rights Policy Manager contract.\n @dev This variable is immutable and set at deployment time.\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f1bdc452","mutability":"immutable","name":"RIGHTS_POLICY_MANAGER","nameLocation":"1421:21:0","scope":285,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$47652","typeString":"contract IRightsPolicyManager"},"typeName":{"id":32,"nodeType":"UserDefinedTypeName","pathNode":{"id":31,"name":"IRightsPolicyManager","nameLocations":["1383:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":47652,"src":"1383:20:0"},"referencedDeclaration":47652,"src":"1383:20:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$47652","typeString":"contract IRightsPolicyManager"}},"visibility":"public"},{"id":49,"nodeType":"FunctionDefinition","src":"1728:155:0","nodes":[],"body":{"id":48,"nodeType":"Block","src":"1769:114:0","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":39,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40381,"src":"1779:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":40,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1779:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41,"nodeType":"ExpressionStatement","src":"1779:22:0"},{"expression":{"id":46,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33,"src":"1811:21:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$47652","typeString":"contract IRightsPolicyManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44,"name":"rightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36,"src":"1856:19:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47652,"src":"1835:20:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyManager_$47652_$","typeString":"type(contract IRightsPolicyManager)"}},"id":45,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1835:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$47652","typeString":"contract IRightsPolicyManager"}},"src":"1811:65:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$47652","typeString":"contract IRightsPolicyManager"}},"id":47,"nodeType":"ExpressionStatement","src":"1811:65:0"}]},"documentation":{"id":34,"nodeType":"StructuredDocumentation","src":"1449:274:0","text":"@notice Constructor to initialize the immutable Rights Policy Manager.\n @dev Disables initializers to ensure proper proxy usage.\n @param rightsPolicyManager Address of the Rights Policy Manager contract.\n @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":37,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36,"mutability":"mutable","name":"rightsPolicyManager","nameLocation":"1748:19:0","nodeType":"VariableDeclaration","scope":49,"src":"1740:27:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35,"name":"address","nodeType":"ElementaryTypeName","src":"1740:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1739:29:0"},"returnParameters":{"id":38,"nodeType":"ParameterList","parameters":[],"src":"1769:0:0"},"scope":285,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":65,"nodeType":"FunctionDefinition","src":"2119:151:0","nodes":[],"body":{"id":64,"nodeType":"Block","src":"2181:89:0","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":57,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40467,"src":"2191:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":58,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2191:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59,"nodeType":"ExpressionStatement","src":"2191:24:0"},{"expression":{"arguments":[{"id":61,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52,"src":"2249:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48517,"src":"2225:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":62,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2225:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63,"nodeType":"ExpressionStatement","src":"2225:38:0"}]},"documentation":{"id":50,"nodeType":"StructuredDocumentation","src":"1889:225:0","text":"@notice Initializes the proxy state.\n @dev Sets up the contract for usage and ensures AccessManager is properly set.\n @param accessManager Address of the Access Manager contract used for permission handling."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":55,"kind":"modifierInvocation","modifierName":{"id":54,"name":"initializer","nameLocations":["2169:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":40267,"src":"2169:11:0"},"nodeType":"ModifierInvocation","src":"2169:11:0"}],"name":"initialize","nameLocation":"2128:10:0","parameters":{"id":53,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52,"mutability":"mutable","name":"accessManager","nameLocation":"2147:13:0","nodeType":"VariableDeclaration","scope":65,"src":"2139:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51,"name":"address","nodeType":"ElementaryTypeName","src":"2139:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2138:23:0"},"returnParameters":{"id":56,"nodeType":"ParameterList","parameters":[],"src":"2181:0:0"},"scope":285,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":90,"nodeType":"FunctionDefinition","src":"2633:271:0","nodes":[],"body":{"id":89,"nodeType":"Block","src":"2740:164:0","nodes":[],"statements":[{"assignments":[78],"declarations":[{"constant":false,"id":78,"mutability":"mutable","name":"criteria","nameLocation":"2763:8:0","nodeType":"VariableDeclaration","scope":89,"src":"2750:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":77,"name":"bytes","nodeType":"ElementaryTypeName","src":"2750:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":83,"initialValue":{"arguments":[{"id":81,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70,"src":"2785:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":79,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2774:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2778:6:0","memberName":"encode","nodeType":"MemberAccess","src":"2774:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":82,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2774:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2750:42:0"},{"expression":{"arguments":[{"id":85,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68,"src":"2879:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":86,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"2888:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":84,"name":"getActivePoliciesLicenses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"2853:25:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_struct$_PolicyLicense_$29_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,bytes memory) view returns (struct AccessAgg.PolicyLicense memory[] memory)"}},"id":87,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2853:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyLicense_$29_memory_ptr_$dyn_memory_ptr","typeString":"struct AccessAgg.PolicyLicense memory[] memory"}},"functionReturnParameters":76,"id":88,"nodeType":"Return","src":"2846:51:0"}]},"documentation":{"id":66,"nodeType":"StructuredDocumentation","src":"2276:352:0","text":"@notice Retrieves all active licenses for a given account and asset holder.\n @dev Uses the asset holder address as the criteria for license retrieval.\n @param account The address of the account to check.\n @param holder The address of the rights holder used as the criteria.\n @return An array of PolicyLicense structures."},"functionSelector":"2b1e6e8f","implemented":true,"kind":"function","modifiers":[],"name":"getActiveLicenses","nameLocation":"2642:17:0","parameters":{"id":71,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68,"mutability":"mutable","name":"account","nameLocation":"2668:7:0","nodeType":"VariableDeclaration","scope":90,"src":"2660:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67,"name":"address","nodeType":"ElementaryTypeName","src":"2660:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70,"mutability":"mutable","name":"holder","nameLocation":"2685:6:0","nodeType":"VariableDeclaration","scope":90,"src":"2677:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2659:33:0"},"returnParameters":{"id":76,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90,"src":"2716:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyLicense_$29_memory_ptr_$dyn_memory_ptr","typeString":"struct AccessAgg.PolicyLicense[]"},"typeName":{"baseType":{"id":73,"nodeType":"UserDefinedTypeName","pathNode":{"id":72,"name":"PolicyLicense","nameLocations":["2716:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":29,"src":"2716:13:0"},"referencedDeclaration":29,"src":"2716:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyLicense_$29_storage_ptr","typeString":"struct AccessAgg.PolicyLicense"}},"id":74,"nodeType":"ArrayTypeName","src":"2716:15:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyLicense_$29_storage_$dyn_storage_ptr","typeString":"struct AccessAgg.PolicyLicense[]"}},"visibility":"internal"}],"src":"2715:24:0"},"scope":285,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":115,"nodeType":"FunctionDefinition","src":"3239:267:0","nodes":[],"body":{"id":114,"nodeType":"Block","src":"3347:159:0","nodes":[],"statements":[{"assignments":[103],"declarations":[{"constant":false,"id":103,"mutability":"mutable","name":"criteria","nameLocation":"3370:8:0","nodeType":"VariableDeclaration","scope":114,"src":"3357:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":102,"name":"bytes","nodeType":"ElementaryTypeName","src":"3357:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":108,"initialValue":{"arguments":[{"id":106,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"3392:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":104,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3381:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3385:6:0","memberName":"encode","nodeType":"MemberAccess","src":"3381:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3381:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3357:43:0"},{"expression":{"arguments":[{"id":110,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93,"src":"3481:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":111,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"3490:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":109,"name":"getActivePoliciesLicenses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"3455:25:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_struct$_PolicyLicense_$29_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,bytes memory) view returns (struct AccessAgg.PolicyLicense memory[] memory)"}},"id":112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3455:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyLicense_$29_memory_ptr_$dyn_memory_ptr","typeString":"struct AccessAgg.PolicyLicense memory[] memory"}},"functionReturnParameters":101,"id":113,"nodeType":"Return","src":"3448:51:0"}]},"documentation":{"id":91,"nodeType":"StructuredDocumentation","src":"2910:324:0","text":"@notice Retrieves all active licenses for a given account and asset ID.\n @dev Uses the asset ID as the criteria for license retrieval.\n @param account The address of the account to check.\n @param assetId The ID of the asset used as the criteria.\n @return An array of PolicyLicense structures."},"functionSelector":"4bad81cb","implemented":true,"kind":"function","modifiers":[],"name":"getActiveLicenses","nameLocation":"3248:17:0","parameters":{"id":96,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93,"mutability":"mutable","name":"account","nameLocation":"3274:7:0","nodeType":"VariableDeclaration","scope":115,"src":"3266:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":92,"name":"address","nodeType":"ElementaryTypeName","src":"3266:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":95,"mutability":"mutable","name":"assetId","nameLocation":"3291:7:0","nodeType":"VariableDeclaration","scope":115,"src":"3283:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":94,"name":"uint256","nodeType":"ElementaryTypeName","src":"3283:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3265:34:0"},"returnParameters":{"id":101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":115,"src":"3323:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyLicense_$29_memory_ptr_$dyn_memory_ptr","typeString":"struct AccessAgg.PolicyLicense[]"},"typeName":{"baseType":{"id":98,"nodeType":"UserDefinedTypeName","pathNode":{"id":97,"name":"PolicyLicense","nameLocations":["3323:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":29,"src":"3323:13:0"},"referencedDeclaration":29,"src":"3323:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyLicense_$29_storage_ptr","typeString":"struct AccessAgg.PolicyLicense"}},"id":99,"nodeType":"ArrayTypeName","src":"3323:15:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyLicense_$29_storage_$dyn_storage_ptr","typeString":"struct AccessAgg.PolicyLicense[]"}},"visibility":"internal"}],"src":"3322:24:0"},"scope":285,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":141,"nodeType":"FunctionDefinition","src":"3923:270:0","nodes":[],"body":{"id":140,"nodeType":"Block","src":"4017:176:0","nodes":[],"statements":[{"assignments":[128],"declarations":[{"constant":false,"id":128,"mutability":"mutable","name":"criteria","nameLocation":"4040:8:0","nodeType":"VariableDeclaration","scope":140,"src":"4027:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":127,"name":"bytes","nodeType":"ElementaryTypeName","src":"4027:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":133,"initialValue":{"arguments":[{"id":131,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"4062:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":129,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4051:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4055:6:0","memberName":"encode","nodeType":"MemberAccess","src":"4051:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4051:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4027:42:0"},{"expression":{"arguments":[{"id":136,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"4168:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":137,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"4177:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":134,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33,"src":"4130:21:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$47652","typeString":"contract IRightsPolicyManager"}},"id":135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4152:15:0","memberName":"getActivePolicy","nodeType":"MemberAccess","referencedDeclaration":47615,"src":"4130:37:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_address_$","typeString":"function (address,bytes memory) view external returns (bool,address)"}},"id":138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4130:56:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"functionReturnParameters":126,"id":139,"nodeType":"Return","src":"4123:63:0"}]},"documentation":{"id":116,"nodeType":"StructuredDocumentation","src":"3512:406:0","text":"@notice Checks if an account has access rights based on a holder's criteria.\n @dev Uses the holder address as the search criteria.\n @param account The address of the account to verify.\n @param holder The address of the rights holder used as criteria.\n @return active True if the account has access; otherwise, false.\n @return address The address of the active policy."},"functionSelector":"96ba154d","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowed","nameLocation":"3932:15:0","parameters":{"id":121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"mutability":"mutable","name":"account","nameLocation":"3956:7:0","nodeType":"VariableDeclaration","scope":141,"src":"3948:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":117,"name":"address","nodeType":"ElementaryTypeName","src":"3948:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120,"mutability":"mutable","name":"holder","nameLocation":"3973:6:0","nodeType":"VariableDeclaration","scope":141,"src":"3965:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119,"name":"address","nodeType":"ElementaryTypeName","src":"3965:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3947:33:0"},"returnParameters":{"id":126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":141,"src":"4002:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":122,"name":"bool","nodeType":"ElementaryTypeName","src":"4002:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":141,"src":"4008:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":124,"name":"address","nodeType":"ElementaryTypeName","src":"4008:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4001:15:0"},"scope":285,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":167,"nodeType":"FunctionDefinition","src":"4579:266:0","nodes":[],"body":{"id":166,"nodeType":"Block","src":"4674:171:0","nodes":[],"statements":[{"assignments":[154],"declarations":[{"constant":false,"id":154,"mutability":"mutable","name":"criteria","nameLocation":"4697:8:0","nodeType":"VariableDeclaration","scope":166,"src":"4684:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":153,"name":"bytes","nodeType":"ElementaryTypeName","src":"4684:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":159,"initialValue":{"arguments":[{"id":157,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"4719:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":155,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4708:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:6:0","memberName":"encode","nodeType":"MemberAccess","src":"4708:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4708:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4684:43:0"},{"expression":{"arguments":[{"id":162,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"4820:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":163,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":154,"src":"4829:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":160,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33,"src":"4782:21:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$47652","typeString":"contract IRightsPolicyManager"}},"id":161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4804:15:0","memberName":"getActivePolicy","nodeType":"MemberAccess","referencedDeclaration":47615,"src":"4782:37:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_address_$","typeString":"function (address,bytes memory) view external returns (bool,address)"}},"id":164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4782:56:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"functionReturnParameters":152,"id":165,"nodeType":"Return","src":"4775:63:0"}]},"documentation":{"id":142,"nodeType":"StructuredDocumentation","src":"4199:375:0","text":"@notice Checks if an account has access to a specific asset ID.\n @dev Uses the asset ID as the search criteria.\n @param account The address of the account to verify.\n @param assetId The ID of the asset used as criteria.\n @return active True if the account has access; otherwise, false.\n @return address The address of the active policy."},"functionSelector":"ac3e8fb0","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowed","nameLocation":"4588:15:0","parameters":{"id":147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":144,"mutability":"mutable","name":"account","nameLocation":"4612:7:0","nodeType":"VariableDeclaration","scope":167,"src":"4604:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":143,"name":"address","nodeType":"ElementaryTypeName","src":"4604:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":146,"mutability":"mutable","name":"assetId","nameLocation":"4629:7:0","nodeType":"VariableDeclaration","scope":167,"src":"4621:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":145,"name":"uint256","nodeType":"ElementaryTypeName","src":"4621:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4603:34:0"},"returnParameters":{"id":152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":149,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":167,"src":"4659:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":148,"name":"bool","nodeType":"ElementaryTypeName","src":"4659:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":151,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":167,"src":"4665:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":150,"name":"address","nodeType":"ElementaryTypeName","src":"4665:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4658:15:0"},"scope":285,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":274,"nodeType":"FunctionDefinition","src":"5075:953:0","nodes":[],"body":{"id":273,"nodeType":"Block","src":"5217:811:0","nodes":[],"statements":[{"assignments":[183],"declarations":[{"constant":false,"id":183,"mutability":"mutable","name":"policies","nameLocation":"5244:8:0","nodeType":"VariableDeclaration","scope":273,"src":"5227:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":181,"name":"address","nodeType":"ElementaryTypeName","src":"5227:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":182,"nodeType":"ArrayTypeName","src":"5227:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":189,"initialValue":{"arguments":[{"id":186,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":170,"src":"5295:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":187,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"5304:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":184,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33,"src":"5255:21:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$47652","typeString":"contract IRightsPolicyManager"}},"id":185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5277:17:0","memberName":"getActivePolicies","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"5255:39:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (address,bytes memory) view external returns (address[] memory)"}},"id":188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5255:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5227:86:0"},{"assignments":[194],"declarations":[{"constant":false,"id":194,"mutability":"mutable","name":"licenses","nameLocation":"5346:8:0","nodeType":"VariableDeclaration","scope":273,"src":"5323:31:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyLicense_$29_memory_ptr_$dyn_memory_ptr","typeString":"struct AccessAgg.PolicyLicense[]"},"typeName":{"baseType":{"id":192,"nodeType":"UserDefinedTypeName","pathNode":{"id":191,"name":"PolicyLicense","nameLocations":["5323:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":29,"src":"5323:13:0"},"referencedDeclaration":29,"src":"5323:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyLicense_$29_storage_ptr","typeString":"struct AccessAgg.PolicyLicense"}},"id":193,"nodeType":"ArrayTypeName","src":"5323:15:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyLicense_$29_storage_$dyn_storage_ptr","typeString":"struct AccessAgg.PolicyLicense[]"}},"visibility":"internal"}],"id":202,"initialValue":{"arguments":[{"expression":{"id":199,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":183,"src":"5377:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5386:6:0","memberName":"length","nodeType":"MemberAccess","src":"5377:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5357:19:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_PolicyLicense_$29_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct AccessAgg.PolicyLicense memory[] memory)"},"typeName":{"baseType":{"id":196,"nodeType":"UserDefinedTypeName","pathNode":{"id":195,"name":"PolicyLicense","nameLocations":["5361:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":29,"src":"5361:13:0"},"referencedDeclaration":29,"src":"5361:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyLicense_$29_storage_ptr","typeString":"struct AccessAgg.PolicyLicense"}},"id":197,"nodeType":"ArrayTypeName","src":"5361:15:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyLicense_$29_storage_$dyn_storage_ptr","typeString":"struct AccessAgg.PolicyLicense[]"}}},"id":201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5357:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyLicense_$29_memory_ptr_$dyn_memory_ptr","typeString":"struct AccessAgg.PolicyLicense memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5323:70:0"},{"assignments":[204],"declarations":[{"constant":false,"id":204,"mutability":"mutable","name":"policiesLen","nameLocation":"5411:11:0","nodeType":"VariableDeclaration","scope":273,"src":"5403:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":203,"name":"uint256","nodeType":"ElementaryTypeName","src":"5403:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":207,"initialValue":{"expression":{"id":205,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":183,"src":"5425:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5434:6:0","memberName":"length","nodeType":"MemberAccess","src":"5425:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5403:37:0"},{"body":{"id":269,"nodeType":"Block","src":"5510:486:0","statements":[{"assignments":[222],"declarations":[{"constant":false,"id":222,"mutability":"mutable","name":"policyAddress","nameLocation":"5532:13:0","nodeType":"VariableDeclaration","scope":269,"src":"5524:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":221,"name":"address","nodeType":"ElementaryTypeName","src":"5524:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":226,"initialValue":{"baseExpression":{"id":223,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":183,"src":"5548:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":225,"indexExpression":{"id":224,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"5557:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5548:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5524:35:0"},{"assignments":[228],"declarations":[{"constant":false,"id":228,"mutability":"mutable","name":"callData","nameLocation":"5626:8:0","nodeType":"VariableDeclaration","scope":269,"src":"5613:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":227,"name":"bytes","nodeType":"ElementaryTypeName","src":"5613:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":237,"initialValue":{"arguments":[{"expression":{"id":231,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47548,"src":"5652:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$47548_$","typeString":"type(contract IPolicy)"}},"id":232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5660:10:0","memberName":"getLicense","nodeType":"MemberAccess","referencedDeclaration":47532,"src":"5652:18:0","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_address_$_t_bytes_calldata_ptr_$returns$_t_uint256_$","typeString":"function IPolicy.getLicense(address,bytes calldata) view returns (uint256)"}},{"components":[{"id":233,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":170,"src":"5673:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":234,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"5682:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":235,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5672:19:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_memory_ptr_$","typeString":"tuple(address,bytes memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_view$_t_address_$_t_bytes_calldata_ptr_$returns$_t_uint256_$","typeString":"function IPolicy.getLicense(address,bytes calldata) view returns (uint256)"},{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_memory_ptr_$","typeString":"tuple(address,bytes memory)"}],"expression":{"id":229,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5637:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5641:10:0","memberName":"encodeCall","nodeType":"MemberAccess","src":"5637:14:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5637:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5613:79:0"},{"assignments":[null,239],"declarations":[null,{"constant":false,"id":239,"mutability":"mutable","name":"result","nameLocation":"5722:6:0","nodeType":"VariableDeclaration","scope":269,"src":"5709:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":238,"name":"bytes","nodeType":"ElementaryTypeName","src":"5709:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":244,"initialValue":{"arguments":[{"id":242,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":228,"src":"5757:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":240,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"5732:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5746:10:0","memberName":"staticcall","nodeType":"MemberAccess","src":"5732:24:0","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5732:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5706:60:0"},{"assignments":[246],"declarations":[{"constant":false,"id":246,"mutability":"mutable","name":"licenseId","nameLocation":"5792:9:0","nodeType":"VariableDeclaration","scope":269,"src":"5784:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":245,"name":"uint256","nodeType":"ElementaryTypeName","src":"5784:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":254,"initialValue":{"arguments":[{"id":249,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":239,"src":"5815:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5824:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":250,"name":"uint256","nodeType":"ElementaryTypeName","src":"5824:7:0","typeDescriptions":{}}}],"id":252,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5823:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":247,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5804:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5808:6:0","memberName":"decode","nodeType":"MemberAccess","src":"5804:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5804:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5784:49:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":255,"name":"licenseId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"5851:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5864:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5851:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":259,"nodeType":"IfStatement","src":"5847:28:0","trueBody":{"id":258,"nodeType":"Continue","src":"5867:8:0"}},{"expression":{"id":267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":260,"name":"licenses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":194,"src":"5911:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyLicense_$29_memory_ptr_$dyn_memory_ptr","typeString":"struct AccessAgg.PolicyLicense memory[] memory"}},"id":262,"indexExpression":{"id":261,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"5920:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5911:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyLicense_$29_memory_ptr","typeString":"struct AccessAgg.PolicyLicense memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":264,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"5949:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":265,"name":"licenseId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"5973:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":263,"name":"PolicyLicense","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"5925:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PolicyLicense_$29_storage_ptr_$","typeString":"type(struct AccessAgg.PolicyLicense storage pointer)"}},"id":266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5941:6:0","5964:7:0"],"names":["policy","license"],"nodeType":"FunctionCall","src":"5925:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyLicense_$29_memory_ptr","typeString":"struct AccessAgg.PolicyLicense memory"}},"src":"5911:74:0","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyLicense_$29_memory_ptr","typeString":"struct AccessAgg.PolicyLicense memory"}},"id":268,"nodeType":"ExpressionStatement","src":"5911:74:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":212,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"5471:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":213,"name":"policiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":204,"src":"5475:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5471:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":270,"initializationExpression":{"assignments":[209],"declarations":[{"constant":false,"id":209,"mutability":"mutable","name":"i","nameLocation":"5464:1:0","nodeType":"VariableDeclaration","scope":270,"src":"5456:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":208,"name":"uint256","nodeType":"ElementaryTypeName","src":"5456:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":211,"initialValue":{"hexValue":"30","id":210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5468:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5456:13:0"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":215,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"5488:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":216,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"5492:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5494:12:0","memberName":"uncheckedInc","nodeType":"MemberAccess","referencedDeclaration":47949,"src":"5492:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5492:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5488:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":220,"nodeType":"ExpressionStatement","src":"5488:20:0"},"nodeType":"ForStatement","src":"5451:545:0"},{"expression":{"id":271,"name":"licenses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":194,"src":"6013:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyLicense_$29_memory_ptr_$dyn_memory_ptr","typeString":"struct AccessAgg.PolicyLicense memory[] memory"}},"functionReturnParameters":178,"id":272,"nodeType":"Return","src":"6006:15:0"}]},"documentation":{"id":168,"nodeType":"StructuredDocumentation","src":"4851:219:0","text":"@notice Retrieves active policies and their corresponding licenses for an account.\n @param account The address of the account to check.\n @param criteria Encoded criteria used to filter active policies."},"functionSelector":"d3f4c5af","implemented":true,"kind":"function","modifiers":[],"name":"getActivePoliciesLicenses","nameLocation":"5084:25:0","parameters":{"id":173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":170,"mutability":"mutable","name":"account","nameLocation":"5127:7:0","nodeType":"VariableDeclaration","scope":274,"src":"5119:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":169,"name":"address","nodeType":"ElementaryTypeName","src":"5119:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":172,"mutability":"mutable","name":"criteria","nameLocation":"5157:8:0","nodeType":"VariableDeclaration","scope":274,"src":"5144:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":171,"name":"bytes","nodeType":"ElementaryTypeName","src":"5144:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5109:62:0"},"returnParameters":{"id":178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":177,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":274,"src":"5193:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyLicense_$29_memory_ptr_$dyn_memory_ptr","typeString":"struct AccessAgg.PolicyLicense[]"},"typeName":{"baseType":{"id":175,"nodeType":"UserDefinedTypeName","pathNode":{"id":174,"name":"PolicyLicense","nameLocations":["5193:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":29,"src":"5193:13:0"},"referencedDeclaration":29,"src":"5193:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyLicense_$29_storage_ptr","typeString":"struct AccessAgg.PolicyLicense"}},"id":176,"nodeType":"ArrayTypeName","src":"5193:15:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyLicense_$29_storage_$dyn_storage_ptr","typeString":"struct AccessAgg.PolicyLicense[]"}},"visibility":"internal"}],"src":"5192:24:0"},"scope":285,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":284,"nodeType":"FunctionDefinition","src":"6332:84:0","nodes":[],"body":{"id":283,"nodeType":"Block","src":"6414:2:0","nodes":[],"statements":[]},"baseFunctions":[40549],"documentation":{"id":275,"nodeType":"StructuredDocumentation","src":"6034:293:0","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":281,"kind":"modifierInvocation","modifierName":{"id":280,"name":"onlyAdmin","nameLocations":["6404:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":48500,"src":"6404:9:0"},"nodeType":"ModifierInvocation","src":"6404:9:0"}],"name":"_authorizeUpgrade","nameLocation":"6341:17:0","overrides":{"id":279,"nodeType":"OverrideSpecifier","overrides":[],"src":"6395:8:0"},"parameters":{"id":278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":277,"mutability":"mutable","name":"newImplementation","nameLocation":"6367:17:0","nodeType":"VariableDeclaration","scope":284,"src":"6359:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":276,"name":"address","nodeType":"ElementaryTypeName","src":"6359:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6358:27:0"},"returnParameters":{"id":282,"nodeType":"ParameterList","parameters":[],"src":"6414:0:0"},"scope":285,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":15,"name":"Initializable","nameLocations":["823:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":40413,"src":"823:13:0"},"id":16,"nodeType":"InheritanceSpecifier","src":"823:13:0"},{"baseName":{"id":17,"name":"UUPSUpgradeable","nameLocations":["838:15:0"],"nodeType":"IdentifierPath","referencedDeclaration":40595,"src":"838:15:0"},"id":18,"nodeType":"InheritanceSpecifier","src":"838:15:0"},{"baseName":{"id":19,"name":"AccessControlledUpgradeable","nameLocations":["855:27:0"],"nodeType":"IdentifierPath","referencedDeclaration":48582,"src":"855:27:0"},"id":20,"nodeType":"InheritanceSpecifier","src":"855:27:0"}],"canonicalName":"AccessAgg","contractDependencies":[],"contractKind":"contract","documentation":{"id":14,"nodeType":"StructuredDocumentation","src":"610:191:0","text":"@title Access Aggregator\n @notice This contract aggregates access control logic for licenses and policies.\n @dev Uses UUPS upgradeable proxy pattern and centralized access control."},"fullyImplemented":true,"linearizedBaseContracts":[285,48582,40159,40939,40641,40595,41508,40413],"name":"AccessAgg","nameLocation":"810:9:0","scope":286,"usedErrors":[40176,40179,40440,40445,40910,40916,40920,41566,41579,42530,42792,48482],"usedEvents":[40184,40906,41481]}],"license":"MIT"},"id":0} \ No newline at end of file diff --git a/src/config/abi/AccessWorkflow.json b/src/config/abi/AccessWorkflow.json index 3df9448f..6eed72aa 100644 --- a/src/config/abi/AccessWorkflow.json +++ b/src/config/abi/AccessWorkflow.json @@ -1,3114 +1 @@ -{ - "abi": [ - { - "type": "constructor", - "inputs": [ - { "name": "rightsPolicyManager", "type": "address", "internalType": "address" }, - { "name": "agreementManager", "type": "address", "internalType": "address" }, - { "name": "mmc", "type": "address", "internalType": "address" } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "AGREEMENT_MANAGER", - "inputs": [], - "outputs": [{ "name": "", "type": "address", "internalType": "contract IAgreementManager" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "MMC", - "inputs": [], - "outputs": [{ "name": "", "type": "address", "internalType": "contract IERC20" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "RIGHTS_POLICY_MANAGER", - "inputs": [], - "outputs": [ - { "name": "", "type": "address", "internalType": "contract IRightsPolicyManager" } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UPGRADE_INTERFACE_VERSION", - "inputs": [], - "outputs": [{ "name": "", "type": "string", "internalType": "string" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "authority", - "inputs": [], - "outputs": [{ "name": "", "type": "address", "internalType": "address" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "initialize", - "inputs": [{ "name": "accessManager", "type": "address", "internalType": "address" }], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "isConsumingScheduledOp", - "inputs": [], - "outputs": [{ "name": "", "type": "bytes4", "internalType": "bytes4" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "proxiableUUID", - "inputs": [], - "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "registerAccessAgreement", - "inputs": [ - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { "name": "holder", "type": "address", "internalType": "address" }, - { "name": "policyAddress", "type": "address", "internalType": "address" }, - { "name": "parties", "type": "address[]", "internalType": "address[]" }, - { "name": "payload", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [{ "name": "", "type": "uint256[]", "internalType": "uint256[]" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "setAuthority", - "inputs": [{ "name": "newAuthority", "type": "address", "internalType": "address" }], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "upgradeToAndCall", - "inputs": [ - { "name": "newImplementation", "type": "address", "internalType": "address" }, - { "name": "data", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [], - "stateMutability": "payable" - }, - { - "type": "event", - "name": "AccessAgreementCreated", - "inputs": [ - { "name": "holder", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "policyAddress", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "proof", "type": "uint256", "indexed": false, "internalType": "uint256" }, - { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "AuthorityUpdated", - "inputs": [ - { "name": "authority", "type": "address", "indexed": false, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Initialized", - "inputs": [ - { "name": "version", "type": "uint64", "indexed": false, "internalType": "uint64" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Upgraded", - "inputs": [ - { "name": "implementation", "type": "address", "indexed": true, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "error", - "name": "AccessManagedInvalidAuthority", - "inputs": [{ "name": "authority", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "AccessManagedRequiredDelay", - "inputs": [ - { "name": "caller", "type": "address", "internalType": "address" }, - { "name": "delay", "type": "uint32", "internalType": "uint32" } - ] - }, - { - "type": "error", - "name": "AccessManagedUnauthorized", - "inputs": [{ "name": "caller", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "AddressEmptyCode", - "inputs": [{ "name": "target", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "ERC1967InvalidImplementation", - "inputs": [{ "name": "implementation", "type": "address", "internalType": "address" }] - }, - { "type": "error", "name": "ERC1967NonPayable", "inputs": [] }, - { "type": "error", "name": "FailedCall", "inputs": [] }, - { "type": "error", "name": "InvalidInitialization", "inputs": [] }, - { - "type": "error", - "name": "InvalidUnauthorizedOperation", - "inputs": [{ "name": "", "type": "string", "internalType": "string" }] - }, - { "type": "error", "name": "NotInitializing", "inputs": [] }, - { "type": "error", "name": "UUPSUnauthorizedCallContext", "inputs": [] }, - { - "type": "error", - "name": "UUPSUnsupportedProxiableUUID", - "inputs": [{ "name": "slot", "type": "bytes32", "internalType": "bytes32" }] - } - ], - "bytecode": { - "object": "0x6101003461018b57601f61156c38819003918201601f19168301916001600160401b0383118484101761018f5780849260609460405283398101031261018b57610048816101a3565b90610061604061005a602084016101a3565b92016101a3565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1661017c576002600160401b03196001600160401b03821601610113575b506001600160a01b0390811660a05290811660c0521660e0526040516113b490816101b882396080518181816105fd01526106fe015260a05181818160c00152610c66015260c051818181610d820152611121015260e051818181610b400152610cd20152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f6100ac565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361018b5756fe6080806040526004361015610012575f80fd5b5f3560e01c908162efe0c3146110f757508063290ed22114610b6457806344dea5a714610b145780634f1ef2861461067557806352d1902d146105d65780637a9e5e4b146104ff5780638fb360371461046c578063ad3cb1cc146103d8578063bf7e214f14610386578063c4d66de8146100e85763f1bdc45214610094575f80fd5b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100e45760206003193601126100e457610101611145565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161037e575b6001149081610374575b15908161036b575b5061034357818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102ee575b506101c461128e565b6101cc61128e565b6101d461128e565b6101dc61128e565b6101e5816111e3565b6101ed61128e565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561025b57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101bb565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610152565b303b15915061014a565b849150610140565b346100e4575f6003193601126100e457602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100e4575f6003193601126100e45760408051906103f78183611168565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100e4575f6003193601126100e4577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156104f75760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6104cd565b346100e45760206003193601126100e457610518611145565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036105aa57803b1561056857610566906111e3565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100e4575f6003193601126100e45773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361064d5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60406003193601126100e457610689611145565b6024359067ffffffffffffffff82116100e457366023830112156100e4578160040135906106b6826111a9565b916106c46040519384611168565b808352602083019336602483830101116100e457815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610ad2575b5061064d576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610ac7575f91610a7a575b50156109f65773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f91816109c2575b5061083557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036109975750823b1561096c57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561093a575f8091610566945190845af43d15610932573d91610916836111a9565b926109246040519485611168565b83523d5f602085013e6112e5565b6060916112e5565b5050503461094457005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116109ee575b816109de60209383611168565b810103126100e457519086610804565b3d91506109d1565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610abf575b81610a9560409383611168565b810103126100e45780519081151582036100e4576020015163ffffffff8116036100e457846107af565b3d9150610a88565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610729565b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100e45760a06003193601126100e45760043560243573ffffffffffffffffffffffffffffffffffffffff81168091036100e4576044359073ffffffffffffffffffffffffffffffffffffffff82168092036100e4576064359267ffffffffffffffff84116100e457366023850112156100e45783600401359067ffffffffffffffff82116100e4573660248360051b870101116100e4576084359467ffffffffffffffff86116100e457366023870112156100e457856004013567ffffffffffffffff81116100e45736602482890101116100e457821561109957851561103b578315610fdd57959273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016966040519485927f3f5d1b6f0000000000000000000000000000000000000000000000000000000084528060a4850187600487015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248701528b604487015260a0606487015252602460c485019501905f905b808210610f9d57505050837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f846020979560248896600319888c9a0301608489015282875201878601375f8682860101520116010301815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1918215610ac7575f92610f67575b505f80956064604051809881937f9f7434f40000000000000000000000000000000000000000000000000000000083528760048401528860248401528960448401525af1948515610ac7575f95610e79575b507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899160409182519182526020820152a36040518091602082016020835281518091526020604084019201905f5b818110610e60575050500390f35b8251845285945060209384019390920191600101610e52565b9094503d805f833e610e8b8183611168565b8101906020818303126100e45780519067ffffffffffffffff82116100e457019080601f830112156100e45781519167ffffffffffffffff8311610f3a578260051b9060405193610edf6020840186611168565b84526020808501928201019283116100e457602001905b828210610f2a5750919591507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899050610e04565b8151815260209182019101610ef6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b9491506020853d602011610f95575b81610f8360209383611168565b810103126100e457935190935f610db2565b3d9150610f76565b9195909293945085359073ffffffffffffffffffffffffffffffffffffffff82168092036100e45760208160019382935201960192018794939291610d11565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f506172746965732063616e6e6f7420626520656d7074790000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f506f6c69637920616464726573732063616e6e6f74206265207a65726f0000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f416d6f756e742063616e6e6f74206265207a65726f00000000000000000000006044820152fd5b346100e4575f6003193601126100e45760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100e457565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f3a57604052565b67ffffffffffffffff8111610f3a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156112bd57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061132257508051156112fa57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611375575b611333575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561132b56fea26469706673582212205820754a04ca0b0a3942409cfe71d6906ffd4bbcc7ea28d600bd6aadded56c0764736f6c634300081a0033", - "sourceMap": "1218:3646:6:-:0;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;-1:-1:-1;;;;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:56;;1163:13;;8837:64:55;1218:3646:6;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;1218:3646:6;;7985:34:55;7981:146;;-1:-1:-1;;;;;;;1218:3646:6;;;;2527:65;1218:3646;;;2602:55;;1218:3646;2667:17;;1218:3646;;;;;;;;1163:13:56;1218:3646:6;;;;;;;;;;2527:65;1218:3646;;;;;;;;;;2602:55;1218:3646;;;;;;;;;;2667:17;1218:3646;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;1218:3646:6;-1:-1:-1;;;;;1218:3646:6;;;8837:64:55;1218:3646:6;;;;;;8087:29:55;;1218:3646:6;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;1218:3646:6;-1:-1:-1;1218:3646:6;;;;;;-1:-1:-1;1218:3646:6;;;;;-1:-1:-1;1218:3646:6;;;;-1:-1:-1;;;;;1218:3646:6;;;;;;:::o", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x6080806040526004361015610012575f80fd5b5f3560e01c908162efe0c3146110f757508063290ed22114610b6457806344dea5a714610b145780634f1ef2861461067557806352d1902d146105d65780637a9e5e4b146104ff5780638fb360371461046c578063ad3cb1cc146103d8578063bf7e214f14610386578063c4d66de8146100e85763f1bdc45214610094575f80fd5b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100e45760206003193601126100e457610101611145565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161037e575b6001149081610374575b15908161036b575b5061034357818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102ee575b506101c461128e565b6101cc61128e565b6101d461128e565b6101dc61128e565b6101e5816111e3565b6101ed61128e565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561025b57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101bb565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610152565b303b15915061014a565b849150610140565b346100e4575f6003193601126100e457602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100e4575f6003193601126100e45760408051906103f78183611168565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100e4575f6003193601126100e4577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156104f75760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6104cd565b346100e45760206003193601126100e457610518611145565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036105aa57803b1561056857610566906111e3565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100e4575f6003193601126100e45773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361064d5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60406003193601126100e457610689611145565b6024359067ffffffffffffffff82116100e457366023830112156100e4578160040135906106b6826111a9565b916106c46040519384611168565b808352602083019336602483830101116100e457815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610ad2575b5061064d576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610ac7575f91610a7a575b50156109f65773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f91816109c2575b5061083557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036109975750823b1561096c57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561093a575f8091610566945190845af43d15610932573d91610916836111a9565b926109246040519485611168565b83523d5f602085013e6112e5565b6060916112e5565b5050503461094457005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116109ee575b816109de60209383611168565b810103126100e457519086610804565b3d91506109d1565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610abf575b81610a9560409383611168565b810103126100e45780519081151582036100e4576020015163ffffffff8116036100e457846107af565b3d9150610a88565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610729565b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100e45760a06003193601126100e45760043560243573ffffffffffffffffffffffffffffffffffffffff81168091036100e4576044359073ffffffffffffffffffffffffffffffffffffffff82168092036100e4576064359267ffffffffffffffff84116100e457366023850112156100e45783600401359067ffffffffffffffff82116100e4573660248360051b870101116100e4576084359467ffffffffffffffff86116100e457366023870112156100e457856004013567ffffffffffffffff81116100e45736602482890101116100e457821561109957851561103b578315610fdd57959273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016966040519485927f3f5d1b6f0000000000000000000000000000000000000000000000000000000084528060a4850187600487015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248701528b604487015260a0606487015252602460c485019501905f905b808210610f9d57505050837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f846020979560248896600319888c9a0301608489015282875201878601375f8682860101520116010301815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1918215610ac7575f92610f67575b505f80956064604051809881937f9f7434f40000000000000000000000000000000000000000000000000000000083528760048401528860248401528960448401525af1948515610ac7575f95610e79575b507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899160409182519182526020820152a36040518091602082016020835281518091526020604084019201905f5b818110610e60575050500390f35b8251845285945060209384019390920191600101610e52565b9094503d805f833e610e8b8183611168565b8101906020818303126100e45780519067ffffffffffffffff82116100e457019080601f830112156100e45781519167ffffffffffffffff8311610f3a578260051b9060405193610edf6020840186611168565b84526020808501928201019283116100e457602001905b828210610f2a5750919591507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899050610e04565b8151815260209182019101610ef6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b9491506020853d602011610f95575b81610f8360209383611168565b810103126100e457935190935f610db2565b3d9150610f76565b9195909293945085359073ffffffffffffffffffffffffffffffffffffffff82168092036100e45760208160019382935201960192018794939291610d11565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f506172746965732063616e6e6f7420626520656d7074790000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f506f6c69637920616464726573732063616e6e6f74206265207a65726f0000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f416d6f756e742063616e6e6f74206265207a65726f00000000000000000000006044820152fd5b346100e4575f6003193601126100e45760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100e457565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f3a57604052565b67ffffffffffffffff8111610f3a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156112bd57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061132257508051156112fa57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611375575b611333575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561132b56fea26469706673582212205820754a04ca0b0a3942409cfe71d6906ffd4bbcc7ea28d600bd6aadded56c0764736f6c634300081a0033", - "sourceMap": "1218:3646:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;1414:59;1218:3646;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;8837:64:55;1218:3646:6;;;;;;4301:16:55;1218:3646:6;;;;4726:16:55;;:34;;;;1218:3646:6;4805:1:55;4790:16;:50;;;;1218:3646:6;4855:13:55;:30;;;;1218:3646:6;4851:91:55;;;1218:3646:6;;4805:1:55;1218:3646:6;;;;;8837:64:55;1218:3646:6;4979:67:55;;1218:3646:6;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;1218:3646:6;;3295:62:102;1218:3646:6;;;3295:62:102;1218:3646:6;5066:101:55;;1218:3646:6;5066:101:55;1218:3646:6;8837:64:55;1218:3646:6;;8837:64:55;1218:3646:6;5142:14:55;1218:3646:6;;;4805:1:55;1218:3646:6;;5142:14:55;1218:3646:6;4979:67:55;1218:3646:6;;;;8837:64:55;1218:3646:6;4979:67:55;;;4851:91;4908:23;1218:3646:6;4908:23:55;1218:3646:6;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;1782:71:54;1218:3646:6;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;1782:71:54;1218:3646:6;;;;;4698:71:54;;;1218:3646:6;;4698:71:54;1218:3646:6;;;;;;;;4698:71:54;1218:3646:6;;4698:71:54;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;;1782:71:54;1218:3646:6;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;1218:3646:6;4355:110:54;1218:3646:6;4411:43:54;;1218:3646:6;4411:43:54;1218:3646:6;;;;;4411:43:54;4254:92;4302:33;1218:3646:6;4302:33:54;966:10:57;1218:3646:6;;;;4302:33:54;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;5115:6:56;1218:3646:6;5106:4:56;5098:23;5094:145;;1218:3646:6;;;811:66:68;1218:3646:6;;;5094:145:56;5199:29;1218:3646:6;5199:29:56;1218:3646:6;;5199:29:56;1218:3646:6;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:56;1218:3646:6;4683:4:56;;4675:23;:120;;;;;1218:3646:6;4658:251:56;;;3058:30:102;1218:3646:6;;3295:62:102;1218:3646:6;;;;3058:30:102;;;;1218:3646:6;3058:30:102;;1218:3646:6;;3058:30:102;;1218:3646:6;1893:10:102;1218:3646:6;;;;3058:30:102;;;;;;;1218:3646:6;3058:30:102;;;1218:3646:6;1869:35:102;;1865:140;;1218:3646:6;;;;;;;6156:52:56;;1218:3646:6;6156:52:56;1218:3646:6;6156:52:56;;;;1218:3646:6;;6156:52:56;;;1218:3646:6;-1:-1:-1;6152:437:56;;6518:60;;1218:3646:6;6518:60:56;1218:3646:6;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;1218:3646:6;;811:66:68;1218:3646:6;;;811:66:68;1218:3646:6;2407:36:68;1218:3646:6;2407:36:68;;1218:3646:6;;2458:15:68;:11;;1218:3646:6;4049:25:75;;4091:55;4049:25;;;;;;1218:3646:6;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4091:55:75;:::i;1218:3646:6:-;;;4091:55:75;:::i;2454:148:68:-;6163:9;;;;6159:70;;1218:3646:6;6159:70:68;6199:19;1218:3646:6;6199:19:68;1218:3646:6;;6199:19:68;1744:119;1805:47;1218:3646:6;1805:47:68;1218:3646:6;;;;1805:47:68;6246:120:56;6317:34;1218:3646:6;6317:34:56;1218:3646:6;;;;6317:34:56;6156:52;;;;1218:3646:6;6156:52:56;;1218:3646:6;6156:52:56;;;;;;1218:3646:6;6156:52:56;;;:::i;:::-;;;1218:3646:6;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;1218:3646:6;;1927:67:102;;;1218:3646:6;;1927:67:102;;520:1:100;1218:3646:6;;520:1:100;;1218:3646:6;520:1:100;3058:30:102;1218:3646:6;;520:1:100;;;;;;1927:67:102;3058:30;;;1218:3646:6;3058:30:102;;1218:3646:6;3058:30:102;;;;;;1218:3646:6;3058:30:102;;;:::i;:::-;;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;;1218:3646:6;;;;;;;;;4675:120:56;1218:3646:6;;;811:66:68;1218:3646:6;;4753:42:56;;4675:120;;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;1669:27;1218:3646;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3796:10;;1218:3646;;3850:27;;1218:3646;;3929:18;;1218:3646;;4052:21;;1218:3646;4052:21;1218:3646;;;;4178:77;;;1218:3646;4178:77;;1218:3646;;;;4178:77;1218:3646;4178:77;;1218:3646;;4013:3;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;;4178:77;;:17;1218:3646;;4178:17;1218:3646;4178:77;;;;;;;1218:3646;4178:77;;;1218:3646;;;;;;;;4297:66;;;;1218:3646;4297:66;;;1218:3646;4297:66;;1218:3646;;;;;;;;;;;4297:66;;;;;;;1218:3646;4297:66;;;1218:3646;;4378:60;1218:3646;;;;;;;;;;;;4378:60;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1218:3646:6;;;;;;;;;;;;;4297:66;;;;;;1218:3646;4297:66;;;;;;:::i;:::-;;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4297:66:6;;;-1:-1:-1;4378:60:6;;-1:-1:-1;4297:66:6;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;4178:77;;;;1218:3646;4178:77;;1218:3646;4178:77;;;;;;1218:3646;4178:77;;;:::i;:::-;;;1218:3646;;;;;;4178:77;;1218:3646;4178:77;;;;;-1:-1:-1;4178:77:6;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;1545:52;1218:3646;1545:52;1218:3646;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;4964:220:54:-;1218:3646:6;;5147:30:54;4964:220;1218:3646:6;;;1782:71:54;1218:3646:6;;;1782:71:54;1218:3646:6;;;;;;5147:30:54;4964:220::o;7084:141:55:-;1218:3646:6;8837:64:55;1218:3646:6;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;1218:3646:6;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;1218:3646:6;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;1218:3646:6;4917:24:75;;4862:1;4917:24;1218:3646:6;4917:24:75;1218:3646:6;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;", - "linkReferences": {}, - "immutableReferences": { - "1120": [ - { "start": 192, "length": 32 }, - { "start": 3174, "length": 32 } - ], - "1124": [ - { "start": 3458, "length": 32 }, - { "start": 4385, "length": 32 } - ], - "1128": [ - { "start": 2880, "length": 32 }, - { "start": 3282, "length": 32 } - ], - "43541": [ - { "start": 1533, "length": 32 }, - { "start": 1790, "length": 32 } - ] - } - }, - "methodIdentifiers": { - "AGREEMENT_MANAGER()": "00efe0c3", - "MMC()": "44dea5a7", - "RIGHTS_POLICY_MANAGER()": "f1bdc452", - "UPGRADE_INTERFACE_VERSION()": "ad3cb1cc", - "authority()": "bf7e214f", - "initialize(address)": "c4d66de8", - "isConsumingScheduledOp()": "8fb36037", - "proxiableUUID()": "52d1902d", - "registerAccessAgreement(uint256,address,address,address[],bytes)": "290ed221", - "setAuthority(address)": "7a9e5e4b", - "upgradeToAndCall(address,bytes)": "4f1ef286" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agreementManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mmc\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"AccessAgreementCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AGREEMENT_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAgreementManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MMC\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"registerAccessAgreement\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract provides a unified interface to interact with multiple core protocol components involved in access and policy management.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AccessAgreementCreated(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of MMC tokens used in the agreement.\",\"holder\":\"The address of the rights holder.\",\"policyAddress\":\"The address of the registered policy.\",\"proof\":\"The unique identifier of the agreement.\"}},\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerAccessAgreement(uint256,address,address,address[],bytes)\":{\"details\":\"Encapsulates agreement creation and access policy registration into one cohesive workflow.\",\"params\":{\"amount\":\"The amount of MMC tokens to be used in the agreement.\",\"holder\":\"The address of the rights holder.\",\"parties\":\"An array of addresses representing the parties involved in the agreement.\",\"payload\":\"Additional data required for the agreement creation.\",\"policyAddress\":\"The address of the policy contract being used.\"},\"returns\":{\"_0\":\"attestationIds An array of registered attestations under the agreement.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"AGREEMENT_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"MMC\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_POLICY_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"AccessWorkflow\",\"version\":1},\"userdoc\":{\"events\":{\"AccessAgreementCreated(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a policy agreement workflow is successfully completed.\"}},\"kind\":\"user\",\"methods\":{\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"registerAccessAgreement(uint256,address,address,address[],bytes)\":{\"notice\":\"Creates and registers a new access agreement in a single transaction.\"}},\"notice\":\"Handles comprehensive workflows for access management, including agreement creation, policy registration, and related operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/facades/AccessWorkflow.sol\":\"AccessWorkflow\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/facades/AccessWorkflow.sol\":{\"keccak256\":\"0x7307825991759923678ba86a8ce58e6522e2b13c44db19ebb4574aeef8417508\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df7e3bcf83697db234dcc22b9b13b7ac653b2e87ad1cb70a772f417cc59fd0a8\",\"dweb:/ipfs/QmTVJo6Q4QnUtbu97uE531EjZLUZoVsRnZTKYgiwKUMe3T\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol\":{\"keccak256\":\"0xd6e6eecd11819f0031962e653d55ad529f616f0e4b57751623c2c7481bc4fa67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfe472eae18ebebe8bdb62247dd951143742b963c196d863173d431a27e175ff\",\"dweb:/ipfs/QmTMYXFTcLvim8KS3wwc15uwCDjjWXhDCcdmPQPWnq4qGk\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d\",\"dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}", - "metadata": { - "compiler": { "version": "0.8.26+commit.8a97fa7a" }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { "internalType": "address", "name": "rightsPolicyManager", "type": "address" }, - { "internalType": "address", "name": "agreementManager", "type": "address" }, - { "internalType": "address", "name": "mmc", "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [{ "internalType": "address", "name": "authority", "type": "address" }], - "type": "error", - "name": "AccessManagedInvalidAuthority" - }, - { - "inputs": [ - { "internalType": "address", "name": "caller", "type": "address" }, - { "internalType": "uint32", "name": "delay", "type": "uint32" } - ], - "type": "error", - "name": "AccessManagedRequiredDelay" - }, - { - "inputs": [{ "internalType": "address", "name": "caller", "type": "address" }], - "type": "error", - "name": "AccessManagedUnauthorized" - }, - { - "inputs": [{ "internalType": "address", "name": "target", "type": "address" }], - "type": "error", - "name": "AddressEmptyCode" - }, - { - "inputs": [{ "internalType": "address", "name": "implementation", "type": "address" }], - "type": "error", - "name": "ERC1967InvalidImplementation" - }, - { "inputs": [], "type": "error", "name": "ERC1967NonPayable" }, - { "inputs": [], "type": "error", "name": "FailedCall" }, - { "inputs": [], "type": "error", "name": "InvalidInitialization" }, - { - "inputs": [{ "internalType": "string", "name": "", "type": "string" }], - "type": "error", - "name": "InvalidUnauthorizedOperation" - }, - { "inputs": [], "type": "error", "name": "NotInitializing" }, - { "inputs": [], "type": "error", "name": "UUPSUnauthorizedCallContext" }, - { - "inputs": [{ "internalType": "bytes32", "name": "slot", "type": "bytes32" }], - "type": "error", - "name": "UUPSUnsupportedProxiableUUID" - }, - { - "inputs": [ - { "internalType": "address", "name": "holder", "type": "address", "indexed": true }, - { - "internalType": "address", - "name": "policyAddress", - "type": "address", - "indexed": true - }, - { "internalType": "uint256", "name": "proof", "type": "uint256", "indexed": false }, - { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false } - ], - "type": "event", - "name": "AccessAgreementCreated", - "anonymous": false - }, - { - "inputs": [ - { "internalType": "address", "name": "authority", "type": "address", "indexed": false } - ], - "type": "event", - "name": "AuthorityUpdated", - "anonymous": false - }, - { - "inputs": [ - { "internalType": "uint64", "name": "version", "type": "uint64", "indexed": false } - ], - "type": "event", - "name": "Initialized", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address", - "indexed": true - } - ], - "type": "event", - "name": "Upgraded", - "anonymous": false - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "AGREEMENT_MANAGER", - "outputs": [ - { "internalType": "contract IAgreementManager", "name": "", "type": "address" } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MMC", - "outputs": [{ "internalType": "contract IERC20", "name": "", "type": "address" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "RIGHTS_POLICY_MANAGER", - "outputs": [ - { "internalType": "contract IRightsPolicyManager", "name": "", "type": "address" } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "UPGRADE_INTERFACE_VERSION", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "authority", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }] - }, - { - "inputs": [{ "internalType": "address", "name": "accessManager", "type": "address" }], - "stateMutability": "nonpayable", - "type": "function", - "name": "initialize" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "isConsumingScheduledOp", - "outputs": [{ "internalType": "bytes4", "name": "", "type": "bytes4" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "proxiableUUID", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] - }, - { - "inputs": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "address", "name": "holder", "type": "address" }, - { "internalType": "address", "name": "policyAddress", "type": "address" }, - { "internalType": "address[]", "name": "parties", "type": "address[]" }, - { "internalType": "bytes", "name": "payload", "type": "bytes" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "registerAccessAgreement", - "outputs": [{ "internalType": "uint256[]", "name": "", "type": "uint256[]" }] - }, - { - "inputs": [{ "internalType": "address", "name": "newAuthority", "type": "address" }], - "stateMutability": "nonpayable", - "type": "function", - "name": "setAuthority" - }, - { - "inputs": [ - { "internalType": "address", "name": "newImplementation", "type": "address" }, - { "internalType": "bytes", "name": "data", "type": "bytes" } - ], - "stateMutability": "payable", - "type": "function", - "name": "upgradeToAndCall" - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "authority()": { "details": "Returns the current authority." }, - "constructor": { "custom:oz-upgrades-unsafe-allow": "constructor" }, - "isConsumingScheduledOp()": { - "details": "Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls." - }, - "proxiableUUID()": { - "details": "Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier." - }, - "registerAccessAgreement(uint256,address,address,address[],bytes)": { - "details": "Encapsulates agreement creation and access policy registration into one cohesive workflow.", - "params": { - "amount": "The amount of MMC tokens to be used in the agreement.", - "holder": "The address of the rights holder.", - "parties": "An array of addresses representing the parties involved in the agreement.", - "payload": "Additional data required for the agreement creation.", - "policyAddress": "The address of the policy contract being used." - }, - "returns": { - "_0": "attestationIds An array of registered attestations under the agreement." - } - }, - "setAuthority(address)": { - "details": "Transfers control to a new authority. The caller must be the current authority." - }, - "upgradeToAndCall(address,bytes)": { - "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall", - "details": "Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event." - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "initialize(address)": { "notice": "Initializes the proxy state." }, - "registerAccessAgreement(uint256,address,address,address[],bytes)": { - "notice": "Creates and registers a new access agreement in a single transaction." - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - "@account-abstraction/=node_modules/@account-abstraction/", - "@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/", - "@ethsign/=node_modules/@ethsign/", - "@openzeppelin/=node_modules/@openzeppelin/", - "@synaps3/=node_modules/@synaps3/types/contracts/", - "@uniswap/=node_modules/@uniswap/", - "base64-sol/=node_modules/base64-sol/", - "forge-std/=lib/forge-std/src/", - "hardhat/=node_modules/hardhat/", - "solady/=lib/solady/src/" - ], - "optimizer": { "enabled": true, "runs": 20000 }, - "metadata": { "bytecodeHash": "ipfs" }, - "compilationTarget": { "contracts/facades/AccessWorkflow.sol": "AccessWorkflow" }, - "evmVersion": "cancun", - "libraries": {}, - "viaIR": true - }, - "sources": { - "contracts/facades/AccessWorkflow.sol": { - "keccak256": "0x7307825991759923678ba86a8ce58e6522e2b13c44db19ebb4574aeef8417508", - "urls": [ - "bzz-raw://df7e3bcf83697db234dcc22b9b13b7ac653b2e87ad1cb70a772f417cc59fd0a8", - "dweb:/ipfs/QmTVJo6Q4QnUtbu97uE531EjZLUZoVsRnZTKYgiwKUMe3T" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol": { - "keccak256": "0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373", - "urls": [ - "bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447", - "dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { - "keccak256": "0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b", - "urls": [ - "bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609", - "dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol": { - "keccak256": "0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27", - "urls": [ - "bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e", - "dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { - "keccak256": "0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397", - "urls": [ - "bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9", - "dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol": { - "keccak256": "0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4", - "urls": [ - "bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e", - "dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol": { - "keccak256": "0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6", - "urls": [ - "bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694", - "dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol": { - "keccak256": "0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2", - "urls": [ - "bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4", - "dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol": { - "keccak256": "0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030", - "urls": [ - "bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c", - "dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol": { - "keccak256": "0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7", - "urls": [ - "bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b", - "dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/IERC165.sol": { - "keccak256": "0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724", - "urls": [ - "bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a", - "dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol": { - "keccak256": "0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486", - "urls": [ - "bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d", - "dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/IERC20.sol": { - "keccak256": "0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c", - "urls": [ - "bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba", - "dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol": { - "keccak256": "0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d", - "urls": [ - "bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196", - "dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol": { - "keccak256": "0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06", - "urls": [ - "bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c", - "dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol": { - "keccak256": "0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c", - "urls": [ - "bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa", - "dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "keccak256": "0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7", - "urls": [ - "bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db", - "dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { - "keccak256": "0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310", - "urls": [ - "bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862", - "dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Address.sol": { - "keccak256": "0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5", - "urls": [ - "bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23", - "dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Errors.sol": { - "keccak256": "0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123", - "urls": [ - "bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf", - "dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Panic.sol": { - "keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a", - "urls": [ - "bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a", - "dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol": { - "keccak256": "0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97", - "urls": [ - "bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b", - "dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "keccak256": "0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8", - "urls": [ - "bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621", - "dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/math/Math.sol": { - "keccak256": "0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea", - "urls": [ - "bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d", - "dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol": { - "keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54", - "urls": [ - "bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8", - "dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/types/Time.sol": { - "keccak256": "0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc", - "urls": [ - "bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6", - "dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol": { - "keccak256": "0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f", - "urls": [ - "bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e", - "dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol": { - "keccak256": "0xd6e6eecd11819f0031962e653d55ad529f616f0e4b57751623c2c7481bc4fa67", - "urls": [ - "bzz-raw://cfe472eae18ebebe8bdb62247dd951143742b963c196d863173d431a27e175ff", - "dweb:/ipfs/QmTMYXFTcLvim8KS3wwc15uwCDjjWXhDCcdmPQPWnq4qGk" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol": { - "keccak256": "0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02", - "urls": [ - "bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405", - "dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol": { - "keccak256": "0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e", - "urls": [ - "bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6", - "dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol": { - "keccak256": "0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215", - "urls": [ - "bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d", - "dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX" - ], - "license": "GPL-3.0-or-later" - }, - "node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol": { - "keccak256": "0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411", - "urls": [ - "bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2", - "dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/primitives/Constants.sol": { - "keccak256": "0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e", - "urls": [ - "bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1", - "dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/primitives/Types.sol": { - "keccak256": "0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1", - "urls": [ - "bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf", - "dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol": { - "keccak256": "0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df", - "urls": [ - "bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2", - "dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "storageLayout": { "storage": [], "types": {} }, - "ast": { - "absolutePath": "contracts/facades/AccessWorkflow.sol", - "id": 1289, - "exportedSymbols": { - "AccessControlledUpgradeable": [51361], - "AccessWorkflow": [1288], - "FinancialOps": [50725], - "IAgreementManager": [50235], - "IERC20": [44896], - "IPolicy": [50308], - "IRightsPolicyManager": [50447], - "Initializable": [43521], - "LoopOps": [50745], - "T": [51233], - "UUPSUpgradeable": [43703] - }, - "nodeType": "SourceUnit", - "src": "32:4833:6", - "nodes": [ - { - "id": 1086, - "nodeType": "PragmaDirective", - "src": "32:23:6", - "nodes": [], - "literals": ["solidity", "0.8", ".26"] - }, - { - "id": 1088, - "nodeType": "ImportDirective", - "src": "57:71:6", - "nodes": [], - "absolutePath": "node_modules/@openzeppelin/contracts/interfaces/IERC20.sol", - "file": "@openzeppelin/contracts/interfaces/IERC20.sol", - "nameLocation": "-1:-1:-1", - "scope": 1289, - "sourceUnit": 44431, - "symbolAliases": [ - { - "foreign": { - "id": 1087, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44896, - "src": "66:6:6", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 1090, - "nodeType": "ImportDirective", - "src": "129:98:6", - "nodes": [], - "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "nameLocation": "-1:-1:-1", - "scope": 1289, - "sourceUnit": 43522, - "symbolAliases": [ - { - "foreign": { - "id": 1089, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43521, - "src": "138:13:6", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 1092, - "nodeType": "ImportDirective", - "src": "228:102:6", - "nodes": [], - "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 1289, - "sourceUnit": 43704, - "symbolAliases": [ - { - "foreign": { - "id": 1091, - "name": "UUPSUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43703, - "src": "237:15:6", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 1094, - "nodeType": "ImportDirective", - "src": "331:115:6", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol", - "file": "@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 1289, - "sourceUnit": 51362, - "symbolAliases": [ - { - "foreign": { - "id": 1093, - "name": "AccessControlledUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51361, - "src": "340:27:6", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 1096, - "nodeType": "ImportDirective", - "src": "448:96:6", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol", - "file": "@synaps3/core/interfaces/rights/IRightsPolicyManager.sol", - "nameLocation": "-1:-1:-1", - "scope": 1289, - "sourceUnit": 50448, - "symbolAliases": [ - { - "foreign": { - "id": 1095, - "name": "IRightsPolicyManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50447, - "src": "457:20:6", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 1098, - "nodeType": "ImportDirective", - "src": "545:72:6", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol", - "file": "@synaps3/core/libraries/FinancialOps.sol", - "nameLocation": "-1:-1:-1", - "scope": 1289, - "sourceUnit": 50726, - "symbolAliases": [ - { - "foreign": { - "id": 1097, - "name": "FinancialOps", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50725, - "src": "554:12:6", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 1100, - "nodeType": "ImportDirective", - "src": "618:62:6", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol", - "file": "@synaps3/core/libraries/LoopOps.sol", - "nameLocation": "-1:-1:-1", - "scope": 1289, - "sourceUnit": 50746, - "symbolAliases": [ - { - "foreign": { - "id": 1099, - "name": "LoopOps", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50745, - "src": "627:7:6", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 1102, - "nodeType": "ImportDirective", - "src": "681:93:6", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol", - "file": "@synaps3/core/interfaces/financial/IAgreementManager.sol", - "nameLocation": "-1:-1:-1", - "scope": 1289, - "sourceUnit": 50236, - "symbolAliases": [ - { - "foreign": { - "id": 1101, - "name": "IAgreementManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50235, - "src": "690:17:6", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 1104, - "nodeType": "ImportDirective", - "src": "775:72:6", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol", - "file": "@synaps3/core/interfaces/policies/IPolicy.sol", - "nameLocation": "-1:-1:-1", - "scope": 1289, - "sourceUnit": 50309, - "symbolAliases": [ - { - "foreign": { - "id": 1103, - "name": "IPolicy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50308, - "src": "784:7:6", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 1106, - "nodeType": "ImportDirective", - "src": "848:55:6", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/primitives/Types.sol", - "file": "@synaps3/core/primitives/Types.sol", - "nameLocation": "-1:-1:-1", - "scope": 1289, - "sourceUnit": 51234, - "symbolAliases": [ - { - "foreign": { - "id": 1105, - "name": "T", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51233, - "src": "857:1:6", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 1288, - "nodeType": "ContractDefinition", - "src": "1218:3646:6", - "nodes": [ - { - "id": 1116, - "nodeType": "UsingForDirective", - "src": "1311:31:6", - "nodes": [], - "global": false, - "libraryName": { - "id": 1114, - "name": "FinancialOps", - "nameLocations": ["1317:12:6"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50725, - "src": "1317:12:6" - }, - "typeName": { - "id": 1115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1334:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - } - }, - { - "id": 1120, - "nodeType": "VariableDeclaration", - "src": "1414:59:6", - "nodes": [], - "constant": false, - "documentation": { - "id": 1117, - "nodeType": "StructuredDocumentation", - "src": "1348:61:6", - "text": "@custom:oz-upgrades-unsafe-allow state-variable-immutable" - }, - "functionSelector": "f1bdc452", - "mutability": "immutable", - "name": "RIGHTS_POLICY_MANAGER", - "nameLocation": "1452:21:6", - "scope": 1288, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - }, - "typeName": { - "id": 1119, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1118, - "name": "IRightsPolicyManager", - "nameLocations": ["1414:20:6"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50447, - "src": "1414:20:6" - }, - "referencedDeclaration": 50447, - "src": "1414:20:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - } - }, - "visibility": "public" - }, - { - "id": 1124, - "nodeType": "VariableDeclaration", - "src": "1545:52:6", - "nodes": [], - "constant": false, - "documentation": { - "id": 1121, - "nodeType": "StructuredDocumentation", - "src": "1479:61:6", - "text": "@custom:oz-upgrades-unsafe-allow state-variable-immutable" - }, - "functionSelector": "00efe0c3", - "mutability": "immutable", - "name": "AGREEMENT_MANAGER", - "nameLocation": "1580:17:6", - "scope": 1288, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAgreementManager_$50235", - "typeString": "contract IAgreementManager" - }, - "typeName": { - "id": 1123, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1122, - "name": "IAgreementManager", - "nameLocations": ["1545:17:6"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50235, - "src": "1545:17:6" - }, - "referencedDeclaration": 50235, - "src": "1545:17:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAgreementManager_$50235", - "typeString": "contract IAgreementManager" - } - }, - "visibility": "public" - }, - { - "id": 1128, - "nodeType": "VariableDeclaration", - "src": "1669:27:6", - "nodes": [], - "constant": false, - "documentation": { - "id": 1125, - "nodeType": "StructuredDocumentation", - "src": "1603:61:6", - "text": "@custom:oz-upgrades-unsafe-allow state-variable-immutable" - }, - "functionSelector": "44dea5a7", - "mutability": "immutable", - "name": "MMC", - "nameLocation": "1693:3:6", - "scope": 1288, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$44896", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 1127, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1126, - "name": "IERC20", - "nameLocations": ["1669:6:6"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 44896, - "src": "1669:6:6" - }, - "referencedDeclaration": 44896, - "src": "1669:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$44896", - "typeString": "contract IERC20" - } - }, - "visibility": "public" - }, - { - "id": 1139, - "nodeType": "EventDefinition", - "src": "2041:115:6", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 1129, - "nodeType": "StructuredDocumentation", - "src": "1703:333:6", - "text": "@notice Emitted when a policy agreement workflow is successfully completed.\n @param holder The address of the rights holder.\n @param policyAddress The address of the registered policy.\n @param proof The unique identifier of the agreement.\n @param amount The amount of MMC tokens used in the agreement." - }, - "eventSelector": "8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc407789", - "name": "AccessAgreementCreated", - "nameLocation": "2047:22:6", - "parameters": { - "id": 1138, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1131, - "indexed": true, - "mutability": "mutable", - "name": "holder", - "nameLocation": "2086:6:6", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "2070:22:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1130, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2070:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1133, - "indexed": true, - "mutability": "mutable", - "name": "policyAddress", - "nameLocation": "2110:13:6", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "2094:29:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2094:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1135, - "indexed": false, - "mutability": "mutable", - "name": "proof", - "nameLocation": "2133:5:6", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "2125:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 1134, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2125:7:6", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1137, - "indexed": false, - "mutability": "mutable", - "name": "amount", - "nameLocation": "2148:6:6", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "2140:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 1136, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2140:7:6", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - } - ], - "src": "2069:86:6" - } - }, - { - "id": 1171, - "nodeType": "FunctionDefinition", - "src": "2215:476:6", - "nodes": [], - "body": { - "id": 1170, - "nodeType": "Block", - "src": "2295:396:6", - "nodes": [], - "statements": [ - { - "documentation": "https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5", - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1149, - "name": "_disableInitializers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43489, - "src": "2495:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2495:22:6", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 1151, - "nodeType": "ExpressionStatement", - "src": "2495:22:6" - }, - { - "expression": { - "id": 1156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 1152, - "name": "RIGHTS_POLICY_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1120, - "src": "2527:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 1154, - "name": "rightsPolicyManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1142, - "src": "2572:19:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 1153, - "name": "IRightsPolicyManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50447, - "src": "2551:20:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IRightsPolicyManager_$50447_$", - "typeString": "type(contract IRightsPolicyManager)" - } - }, - "id": 1155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2551:41:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - } - }, - "src": "2527:65:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - } - }, - "id": 1157, - "nodeType": "ExpressionStatement", - "src": "2527:65:6" - }, - { - "expression": { - "id": 1162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 1158, - "name": "AGREEMENT_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1124, - "src": "2602:17:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAgreementManager_$50235", - "typeString": "contract IAgreementManager" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 1160, - "name": "agreementManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1144, - "src": "2640:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 1159, - "name": "IAgreementManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50235, - "src": "2622:17:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IAgreementManager_$50235_$", - "typeString": "type(contract IAgreementManager)" - } - }, - "id": 1161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2622:35:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAgreementManager_$50235", - "typeString": "contract IAgreementManager" - } - }, - "src": "2602:55:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAgreementManager_$50235", - "typeString": "contract IAgreementManager" - } - }, - "id": 1163, - "nodeType": "ExpressionStatement", - "src": "2602:55:6" - }, - { - "expression": { - "id": 1168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 1164, - "name": "MMC", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1128, - "src": "2667:3:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$44896", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 1166, - "name": "mmc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1146, - "src": "2680:3:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 1165, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44896, - "src": "2673:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$44896_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 1167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2673:11:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$44896", - "typeString": "contract IERC20" - } - }, - "src": "2667:17:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$44896", - "typeString": "contract IERC20" - } - }, - "id": 1169, - "nodeType": "ExpressionStatement", - "src": "2667:17:6" - } - ] - }, - "documentation": { - "id": 1140, - "nodeType": "StructuredDocumentation", - "src": "2162:48:6", - "text": "@custom:oz-upgrades-unsafe-allow constructor" - }, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 1147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1142, - "mutability": "mutable", - "name": "rightsPolicyManager", - "nameLocation": "2235:19:6", - "nodeType": "VariableDeclaration", - "scope": 1171, - "src": "2227:27:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1141, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2227:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1144, - "mutability": "mutable", - "name": "agreementManager", - "nameLocation": "2264:16:6", - "nodeType": "VariableDeclaration", - "scope": 1171, - "src": "2256:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1143, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2256:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1146, - "mutability": "mutable", - "name": "mmc", - "nameLocation": "2290:3:6", - "nodeType": "VariableDeclaration", - "scope": 1171, - "src": "2282:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1145, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2282:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "2226:68:6" - }, - "returnParameters": { - "id": 1148, - "nodeType": "ParameterList", - "parameters": [], - "src": "2295:0:6" - }, - "scope": 1288, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 1187, - "nodeType": "FunctionDefinition", - "src": "2742:151:6", - "nodes": [], - "body": { - "id": 1186, - "nodeType": "Block", - "src": "2804:89:6", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1179, - "name": "__UUPSUpgradeable_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43575, - "src": "2814:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2814:24:6", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 1181, - "nodeType": "ExpressionStatement", - "src": "2814:24:6" - }, - { - "expression": { - "arguments": [ - { - "id": 1183, - "name": "accessManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1174, - "src": "2872:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], - "id": 1182, - "name": "__AccessControlled_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51296, - "src": "2848:23:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2848:38:6", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 1185, - "nodeType": "ExpressionStatement", - "src": "2848:38:6" - } - ] - }, - "documentation": { - "id": 1172, - "nodeType": "StructuredDocumentation", - "src": "2697:40:6", - "text": "@notice Initializes the proxy state." - }, - "functionSelector": "c4d66de8", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 1177, - "kind": "modifierInvocation", - "modifierName": { - "id": 1176, - "name": "initializer", - "nameLocations": ["2792:11:6"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43375, - "src": "2792:11:6" - }, - "nodeType": "ModifierInvocation", - "src": "2792:11:6" - } - ], - "name": "initialize", - "nameLocation": "2751:10:6", - "parameters": { - "id": 1175, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1174, - "mutability": "mutable", - "name": "accessManager", - "nameLocation": "2770:13:6", - "nodeType": "VariableDeclaration", - "scope": 1187, - "src": "2762:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1173, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2762:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "2761:23:6" - }, - "returnParameters": { - "id": 1178, - "nodeType": "ParameterList", - "parameters": [], - "src": "2804:0:6" - }, - "scope": 1288, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 1277, - "nodeType": "FunctionDefinition", - "src": "3558:916:6", - "nodes": [], - "body": { - "id": 1276, - "nodeType": "Block", - "src": "3778:696:6", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1206, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "3796:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 1207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3805:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3796:10:6", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - { - "hexValue": "416d6f756e742063616e6e6f74206265207a65726f", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3808:23:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b", - "typeString": "literal_string \"Amount cannot be zero\"" - }, - "value": "Amount cannot be zero" - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" }, - { - "typeIdentifier": "t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b", - "typeString": "literal_string \"Amount cannot be zero\"" - } - ], - "id": 1205, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [-18, -18, -18], - "referencedDeclaration": -18, - "src": "3788:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3788:44:6", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 1211, - "nodeType": "ExpressionStatement", - "src": "3788:44:6" - }, - { - "expression": { - "arguments": [ - { - "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1213, - "name": "policyAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "3850:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 1216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3875:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } - ], - "id": 1215, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3867:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1214, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3867:7:6", - "typeDescriptions": {} - } - }, - "id": 1217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3867:10:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3850:27:6", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - { - "hexValue": "506f6c69637920616464726573732063616e6e6f74206265207a65726f", - "id": 1219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3879:31:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a6661da13a8d67bc98e42ccc9fa9bc111e1eed8bd8a52fe22b2daae01e33d93", - "typeString": "literal_string \"Policy address cannot be zero\"" - }, - "value": "Policy address cannot be zero" - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" }, - { - "typeIdentifier": "t_stringliteral_8a6661da13a8d67bc98e42ccc9fa9bc111e1eed8bd8a52fe22b2daae01e33d93", - "typeString": "literal_string \"Policy address cannot be zero\"" - } - ], - "id": 1212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [-18, -18, -18], - "referencedDeclaration": -18, - "src": "3842:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3842:69:6", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 1221, - "nodeType": "ExpressionStatement", - "src": "3842:69:6" - }, - { - "expression": { - "arguments": [ - { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 1223, - "name": "parties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "3929:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 1224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3937:6:6", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "3929:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 1225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3946:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3929:18:6", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - { - "hexValue": "506172746965732063616e6e6f7420626520656d707479", - "id": 1227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3949:25:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d35ccab2b07909e583991ce966a16acaa97b44c1d919c7f20eecf9f30f3804ae", - "typeString": "literal_string \"Parties cannot be empty\"" - }, - "value": "Parties cannot be empty" - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" }, - { - "typeIdentifier": "t_stringliteral_d35ccab2b07909e583991ce966a16acaa97b44c1d919c7f20eecf9f30f3804ae", - "typeString": "literal_string \"Parties cannot be empty\"" - } - ], - "id": 1222, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [-18, -18, -18], - "referencedDeclaration": -18, - "src": "3921:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3921:54:6", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 1229, - "nodeType": "ExpressionStatement", - "src": "3921:54:6" - }, - { - "assignments": [1231], - "declarations": [ - { - "constant": false, - "id": 1231, - "mutability": "mutable", - "name": "currency", - "nameLocation": "3994:8:6", - "nodeType": "VariableDeclaration", - "scope": 1276, - "src": "3986:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1230, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3986:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 1236, - "initialValue": { - "arguments": [ - { - "id": 1234, - "name": "MMC", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1128, - "src": "4013:3:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$44896", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$44896", - "typeString": "contract IERC20" - } - ], - "id": 1233, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4005:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1232, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4005:7:6", - "typeDescriptions": {} - } - }, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4005:12:6", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3986:31:6" - }, - { - "assignments": [1238], - "declarations": [ - { - "constant": false, - "id": 1238, - "mutability": "mutable", - "name": "broker", - "nameLocation": "4035:6:6", - "nodeType": "VariableDeclaration", - "scope": 1276, - "src": "4027:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1237, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4027:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 1243, - "initialValue": { - "arguments": [ - { - "id": 1241, - "name": "RIGHTS_POLICY_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1120, - "src": "4052:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - } - ], - "id": 1240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4044:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1239, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4044:7:6", - "typeDescriptions": {} - } - }, - "id": 1242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4044:30:6", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4027:47:6" - }, - { - "assignments": [1245], - "declarations": [ - { - "constant": false, - "id": 1245, - "mutability": "mutable", - "name": "proof", - "nameLocation": "4170:5:6", - "nodeType": "VariableDeclaration", - "scope": 1276, - "src": "4162:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1244, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4162:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1254, - "initialValue": { - "arguments": [ - { - "id": 1248, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "4212:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1249, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1231, - "src": "4220:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1250, - "name": "broker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "4230:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1251, - "name": "parties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "4238:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "id": 1252, - "name": "payload", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "4247:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_address", "typeString": "address" }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } - ], - "expression": { - "id": 1246, - "name": "AGREEMENT_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1124, - "src": "4178:17:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAgreementManager_$50235", - "typeString": "contract IAgreementManager" - } - }, - "id": 1247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4196:15:6", - "memberName": "createAgreement", - "nodeType": "MemberAccess", - "referencedDeclaration": 50216, - "src": "4178:33:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (uint256,address,address,address[] memory,bytes memory) external returns (uint256)" - } - }, - "id": 1253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4178:77:6", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4162:93:6" - }, - { - "assignments": [1259], - "declarations": [ - { - "constant": false, - "id": 1259, - "mutability": "mutable", - "name": "attestations", - "nameLocation": "4282:12:6", - "nodeType": "VariableDeclaration", - "scope": 1276, - "src": "4265:29:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4265:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1258, - "nodeType": "ArrayTypeName", - "src": "4265:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "id": 1266, - "initialValue": { - "arguments": [ - { - "id": 1262, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "4334:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1263, - "name": "holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1192, - "src": "4341:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1264, - "name": "policyAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4349:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "expression": { - "id": 1260, - "name": "RIGHTS_POLICY_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1120, - "src": "4297:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyManager_$50447", - "typeString": "contract IRightsPolicyManager" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4319:14:6", - "memberName": "registerPolicy", - "nodeType": "MemberAccess", - "referencedDeclaration": 50446, - "src": "4297:36:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256,address,address) external returns (uint256[] memory)" - } - }, - "id": 1265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4297:66:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4265:98:6" - }, - { - "eventCall": { - "arguments": [ - { - "id": 1268, - "name": "holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1192, - "src": "4401:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1269, - "name": "policyAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4409:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1270, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "4424:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1271, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "4431:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "id": 1267, - "name": "AccessAgreementCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1139, - "src": "4378:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 1272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4378:60:6", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 1273, - "nodeType": "EmitStatement", - "src": "4373:65:6" - }, - { - "expression": { - "id": 1274, - "name": "attestations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1259, - "src": "4455:12:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "functionReturnParameters": 1204, - "id": 1275, - "nodeType": "Return", - "src": "4448:19:6" - } - ] - }, - "documentation": { - "id": 1188, - "nodeType": "StructuredDocumentation", - "src": "2899:654:6", - "text": "@notice Creates and registers a new access agreement in a single transaction.\n @dev Encapsulates agreement creation and access policy registration into one cohesive workflow.\n @param amount The amount of MMC tokens to be used in the agreement.\n @param holder The address of the rights holder.\n @param policyAddress The address of the policy contract being used.\n @param parties An array of addresses representing the parties involved in the agreement.\n @param payload Additional data required for the agreement creation.\n @return attestationIds An array of registered attestations under the agreement." - }, - "functionSelector": "290ed221", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "registerAccessAgreement", - "nameLocation": "3567:23:6", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1190, - "mutability": "mutable", - "name": "amount", - "nameLocation": "3608:6:6", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "3600:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 1189, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3600:7:6", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1192, - "mutability": "mutable", - "name": "holder", - "nameLocation": "3632:6:6", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "3624:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1191, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3624:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1194, - "mutability": "mutable", - "name": "policyAddress", - "nameLocation": "3656:13:6", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "3648:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1193, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3648:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1197, - "mutability": "mutable", - "name": "parties", - "nameLocation": "3698:7:6", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "3679:26:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1195, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3679:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "id": 1196, - "nodeType": "ArrayTypeName", - "src": "3679:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "mutability": "mutable", - "name": "payload", - "nameLocation": "3730:7:6", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "3715:22:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1198, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3715:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3590:153:6" - }, - "returnParameters": { - "id": 1204, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1203, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "3760:16:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1201, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3760:7:6", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "id": 1202, - "nodeType": "ArrayTypeName", - "src": "3760:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "src": "3759:18:6" - }, - "scope": 1288, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 1287, - "nodeType": "FunctionDefinition", - "src": "4778:84:6", - "nodes": [], - "body": { - "id": 1286, - "nodeType": "Block", - "src": "4860:2:6", - "nodes": [], - "statements": [] - }, - "baseFunctions": [43657], - "documentation": { - "id": 1278, - "nodeType": "StructuredDocumentation", - "src": "4480:293:6", - "text": "@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-" - }, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 1284, - "kind": "modifierInvocation", - "modifierName": { - "id": 1283, - "name": "onlyAdmin", - "nameLocations": ["4850:9:6"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 51279, - "src": "4850:9:6" - }, - "nodeType": "ModifierInvocation", - "src": "4850:9:6" - } - ], - "name": "_authorizeUpgrade", - "nameLocation": "4787:17:6", - "overrides": { - "id": 1282, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4841:8:6" - }, - "parameters": { - "id": 1281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1280, - "mutability": "mutable", - "name": "newImplementation", - "nameLocation": "4813:17:6", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "4805:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1279, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4805:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "4804:27:6" - }, - "returnParameters": { - "id": 1285, - "nodeType": "ParameterList", - "parameters": [], - "src": "4860:0:6" - }, - "scope": 1288, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 1108, - "name": "Initializable", - "nameLocations": ["1245:13:6"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43521, - "src": "1245:13:6" - }, - "id": 1109, - "nodeType": "InheritanceSpecifier", - "src": "1245:13:6" - }, - { - "baseName": { - "id": 1110, - "name": "UUPSUpgradeable", - "nameLocations": ["1260:15:6"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43703, - "src": "1260:15:6" - }, - "id": 1111, - "nodeType": "InheritanceSpecifier", - "src": "1260:15:6" - }, - { - "baseName": { - "id": 1112, - "name": "AccessControlledUpgradeable", - "nameLocations": ["1277:27:6"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 51361, - "src": "1277:27:6" - }, - "id": 1113, - "nodeType": "InheritanceSpecifier", - "src": "1277:27:6" - } - ], - "canonicalName": "AccessWorkflow", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 1107, - "nodeType": "StructuredDocumentation", - "src": "905:313:6", - "text": "@title AccessWorkflow\n @notice Handles comprehensive workflows for access management, including agreement creation, policy registration, and related operations.\n @dev This contract provides a unified interface to interact with multiple core protocol components involved in access and policy management." - }, - "fullyImplemented": true, - "linearizedBaseContracts": [1288, 51361, 43267, 43871, 43749, 43703, 44440, 43521], - "name": "AccessWorkflow", - "nameLocation": "1227:14:6", - "scope": 1289, - "usedErrors": [ - 43284, 43287, 43548, 43553, 43842, 43848, 43852, 44498, 44511, 45462, 45724, 51261 - ], - "usedEvents": [1139, 43292, 43838, 44413] - } - ], - "license": "MIT" - }, - "id": 6 -} +{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyManager","type":"address","internalType":"address"},{"name":"agreementManager","type":"address","internalType":"address"},{"name":"ledgerVault","type":"address","internalType":"address"},{"name":"mmc","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"AGREEMENT_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAgreementManager"}],"stateMutability":"view"},{"type":"function","name":"LEDGER_VAULT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILedgerVault"}],"stateMutability":"view"},{"type":"function","name":"MMC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerAccessAgreement","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"holder","type":"address","internalType":"address"},{"name":"policyAddress","type":"address","internalType":"address"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerSponsoredAccessAgreement","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"campaignAddress","type":"address","internalType":"address"},{"name":"policyAddress","type":"address","internalType":"address"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AccessAgreementCreated","inputs":[{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"policyAddress","type":"address","indexed":true,"internalType":"address"},{"name":"proof","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"SponsoredAccess","inputs":[{"name":"campaign","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"policyAddress","type":"address","indexed":true,"internalType":"address"},{"name":"reservedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"parties","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x610120346101ba57601f6119b638819003918201601f19168301916001600160401b038311848410176101be578084926080946040528339810103126101ba57610048816101d2565b610054602083016101d2565b9061006d6060610066604086016101d2565b94016101d2565b92306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166101ab576002600160401b03196001600160401b03821601610142575b506001600160a01b0390811660e05290811660c052166101005260a0526040516117cf90816101e782396080518181816109070152610a08015260a05181818161057401528181610e3f015261119c015260c05181818160d601526111c6015260e05181818161041a015281816105aa015261120e015261010051818181610f0401526112f20152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f6100b8565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101ba5756fe6080806040526004361015610012575f80fd5b5f3560e01c908162efe0c314610eda57508063290ed22114610e6357806344dea5a714610e135780634f1ef2861461097f57806352d1902d146108e05780637a9e5e4b146108095780638fb3603714610776578063ad3cb1cc146106e2578063b0ad582f1461043e578063bc23e35e146103ee578063bf7e214f1461039c578063c4d66de8146100fe5763f1bdc452146100aa575f80fd5b346100fa575f6003193601126100fa57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100fa5760206003193601126100fa57610117610f6e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff821680159081610394575b600114908161038a575b159081610381575b5061035957818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610304575b506101da6116a9565b6101e26116a9565b6101ea6116a9565b6101f26116a9565b6101fb816115fe565b6102036116a9565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561027157005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101d1565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610168565b303b159150610160565b849150610156565b346100fa575f6003193601126100fa57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100fa575f6003193601126100fa57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100fa5760a06003193601126100fa57610457610f6e565b61045f610f28565b90610468610f4b565b9060643567ffffffffffffffff81116100fa57610489903690600401610f91565b9060843567ffffffffffffffff81116100fa576104aa903690600401610fc2565b94909373ffffffffffffffffffffffffffffffffffffffff8716966040517ffc4dcacb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316988960048301523360248301526020826044815f855af19182156106a2575f926106ad575b506040517f2c2eb94a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152602481018390527f0000000000000000000000000000000000000000000000000000000000000000841660448201529192602090839060649082905f907f0000000000000000000000000000000000000000000000000000000000000000165af19182156106a2575f92610658575b5090610654996106489998979695949392604051928352604060208401527f5bae04d3d17bea98c9c14cfa030d692645c43398cb82578a2379aaba097de1d373ffffffffffffffffffffffffffffffffffffffff87169380610640604082018c8c6110d1565b0390a4611123565b60405191829182610ff0565b0390f35b9897969594939291506020893d60201161069a575b8161067a60209383611029565b810103126100fa57610654996106489951929394959697989950996105da565b3d915061066d565b6040513d5f823e3d90fd5b91506020823d6020116106da575b816106c860209383611029565b810103126100fa579051906020610527565b3d91506106bb565b346100fa575f6003193601126100fa5760408051906107018183611029565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100fa575f6003193601126100fa577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156108015760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6107d7565b346100fa5760206003193601126100fa57610822610f6e565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036108b457803b1561087257610870906115fe565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100fa575f6003193601126100fa5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036109575760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60406003193601126100fa57610993610f6e565b6024359067ffffffffffffffff82116100fa57366023830112156100fa578160040135906109c082611097565b916109ce6040519384611029565b808352602083019336602483830101116100fa57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610dd1575b50610957576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa9081156106a2575f91610d84575b5015610d005773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610ccc575b50610b3f57847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610ca15750823b15610c7657807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610c44575f8091610870945190845af43d15610c3c573d91610c2083611097565b92610c2e6040519485611029565b83523d5f602085013e611700565b606091611700565b50505034610c4e57005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610cf8575b81610ce860209383611029565b810103126100fa57519086610b0e565b3d9150610cdb565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610dc9575b81610d9f60409383611029565b810103126100fa5780519081151582036100fa576020015163ffffffff8116036100fa5784610ab9565b3d9150610d92565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610a33565b346100fa575f6003193601126100fa57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100fa5760a06003193601126100fa57610e7c610f28565b610e84610f4b565b60643567ffffffffffffffff81116100fa57610ea4903690600401610f91565b9190926084359267ffffffffffffffff84116100fa5761065494610ecf610648953690600401610fc2565b949093600435611123565b346100fa575f6003193601126100fa5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6024359073ffffffffffffffffffffffffffffffffffffffff821682036100fa57565b6044359073ffffffffffffffffffffffffffffffffffffffff821682036100fa57565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100fa57565b9181601f840112156100fa5782359167ffffffffffffffff83116100fa576020808501948460051b0101116100fa57565b9181601f840112156100fa5782359167ffffffffffffffff83116100fa57602083818601950101116100fa57565b60206040818301928281528451809452019201905f5b8181106110135750505090565b8251845260209384019390920191600101611006565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761106a57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff811161106a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b916020908281520191905f905b8082106110eb5750505090565b90919283359073ffffffffffffffffffffffffffffffffffffffff82168092036100fa576020816001938293520194019201906110de565b959490929186156115a05773ffffffffffffffffffffffffffffffffffffffff169485156115425784156114e4576040517f2c2eb94a000000000000000000000000000000000000000000000000000000008152336004820152602481019790975273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081811660448a0152977f000000000000000000000000000000000000000000000000000000000000000090911695909390602085806064810103815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19485156106a2575f956114ae575b50908291604051998a967f3f5d1b6f000000000000000000000000000000000000000000000000000000008852600488015273ffffffffffffffffffffffffffffffffffffffff1660248701528760448701526064860160a0905260a48601906112a7926110d1565b9284840360031901608486015281845260208401378082016020015f9052601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160103602001847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a6020945f91f19384156106a2575f9461147a575b50925f73ffffffffffffffffffffffffffffffffffffffff6064829660405197889384927f9f7434f400000000000000000000000000000000000000000000000000000000845287600485015216968760248401528860448401525af19384156106a2575f946113d8575b5060207f8737ca68887394213eb903905fd90ee0246fdd01a11b84a44d5f8dd1f4e7960791604051908152a390565b9093503d805f833e6113ea8183611029565b8101906020818303126100fa5780519067ffffffffffffffff82116100fa57019080601f830112156100fa5781519167ffffffffffffffff831161106a578260051b906040519361143e6020840186611029565b84526020808501928201019283116100fa57602001905b82821061146a575091949150602090506113a9565b8151815260209182019101611455565b93506020843d6020116114a6575b8161149560209383611029565b810103126100fa579251925f61133e565b3d9150611488565b919094506020823d6020116114dc575b816114cb60209383611029565b810103126100fa579051938261123e565b3d91506114be565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f506172746965732063616e6e6f7420626520656d7074790000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f506f6c69637920616464726573732063616e6e6f74206265207a65726f0000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f416d6f756e742063616e6e6f74206265207a65726f00000000000000000000006044820152fd5b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156116d857565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061173d575080511561171557805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611790575b61174e575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561174656fea2646970667358221220e33a26d303e67bb3d12c34aaf9d789b667c809249c3db847b004f908e9f3667864736f6c634300081a0033","sourceMap":"495:5099:5:-:0;;;;;;;;;;;;;-1:-1:-1;;495:5099:5;;;;-1:-1:-1;;;;;495:5099:5;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:43;;495:5099:5;1163:13:43;8837:64:42;495:5099:5;;;;;;7896:76:42;;-1:-1:-1;;;;;;;;;;;495:5099:5;;7985:34:42;7981:146;;-1:-1:-1;;;;;;;495:5099:5;;;1658:40:4;;495:5099:5;;;1708:65:4;;495:5099:5;1783:55:4;;495:5099:5;1848:9:4;-1:-1:-1;495:5099:5;;;;;;;;;;;;;;;;;;1848:9:4;495:5099:5;;;;;;;;;;;;;;;1708:65:4;495:5099:5;;;;;;;;;;1658:40:4;495:5099:5;;;;;;;;;;;;;;;1783:55:4;495:5099:5;;;;;;;;;;;7981:146:42;-1:-1:-1;;;;;;495:5099:5;-1:-1:-1;;;;;495:5099:5;;;8837:64:42;495:5099:5;;;;;;8087:29:42;;495:5099:5;;8087:29:42;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:42;;-1:-1:-1;7938:23:42;495:5099:5;-1:-1:-1;495:5099:5;;;;;;-1:-1:-1;495:5099:5;;;;;-1:-1:-1;495:5099:5;;;;-1:-1:-1;;;;;495:5099:5;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c908162efe0c314610eda57508063290ed22114610e6357806344dea5a714610e135780634f1ef2861461097f57806352d1902d146108e05780637a9e5e4b146108095780638fb3603714610776578063ad3cb1cc146106e2578063b0ad582f1461043e578063bc23e35e146103ee578063bf7e214f1461039c578063c4d66de8146100fe5763f1bdc452146100aa575f80fd5b346100fa575f6003193601126100fa57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100fa5760206003193601126100fa57610117610f6e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff821680159081610394575b600114908161038a575b159081610381575b5061035957818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610304575b506101da6116a9565b6101e26116a9565b6101ea6116a9565b6101f26116a9565b6101fb816115fe565b6102036116a9565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561027157005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101d1565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610168565b303b159150610160565b849150610156565b346100fa575f6003193601126100fa57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100fa575f6003193601126100fa57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100fa5760a06003193601126100fa57610457610f6e565b61045f610f28565b90610468610f4b565b9060643567ffffffffffffffff81116100fa57610489903690600401610f91565b9060843567ffffffffffffffff81116100fa576104aa903690600401610fc2565b94909373ffffffffffffffffffffffffffffffffffffffff8716966040517ffc4dcacb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316988960048301523360248301526020826044815f855af19182156106a2575f926106ad575b506040517f2c2eb94a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152602481018390527f0000000000000000000000000000000000000000000000000000000000000000841660448201529192602090839060649082905f907f0000000000000000000000000000000000000000000000000000000000000000165af19182156106a2575f92610658575b5090610654996106489998979695949392604051928352604060208401527f5bae04d3d17bea98c9c14cfa030d692645c43398cb82578a2379aaba097de1d373ffffffffffffffffffffffffffffffffffffffff87169380610640604082018c8c6110d1565b0390a4611123565b60405191829182610ff0565b0390f35b9897969594939291506020893d60201161069a575b8161067a60209383611029565b810103126100fa57610654996106489951929394959697989950996105da565b3d915061066d565b6040513d5f823e3d90fd5b91506020823d6020116106da575b816106c860209383611029565b810103126100fa579051906020610527565b3d91506106bb565b346100fa575f6003193601126100fa5760408051906107018183611029565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100fa575f6003193601126100fa577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156108015760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6107d7565b346100fa5760206003193601126100fa57610822610f6e565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036108b457803b1561087257610870906115fe565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100fa575f6003193601126100fa5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036109575760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60406003193601126100fa57610993610f6e565b6024359067ffffffffffffffff82116100fa57366023830112156100fa578160040135906109c082611097565b916109ce6040519384611029565b808352602083019336602483830101116100fa57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610dd1575b50610957576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa9081156106a2575f91610d84575b5015610d005773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610ccc575b50610b3f57847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610ca15750823b15610c7657807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610c44575f8091610870945190845af43d15610c3c573d91610c2083611097565b92610c2e6040519485611029565b83523d5f602085013e611700565b606091611700565b50505034610c4e57005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610cf8575b81610ce860209383611029565b810103126100fa57519086610b0e565b3d9150610cdb565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610dc9575b81610d9f60409383611029565b810103126100fa5780519081151582036100fa576020015163ffffffff8116036100fa5784610ab9565b3d9150610d92565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610a33565b346100fa575f6003193601126100fa57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100fa5760a06003193601126100fa57610e7c610f28565b610e84610f4b565b60643567ffffffffffffffff81116100fa57610ea4903690600401610f91565b9190926084359267ffffffffffffffff84116100fa5761065494610ecf610648953690600401610fc2565b949093600435611123565b346100fa575f6003193601126100fa5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6024359073ffffffffffffffffffffffffffffffffffffffff821682036100fa57565b6044359073ffffffffffffffffffffffffffffffffffffffff821682036100fa57565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100fa57565b9181601f840112156100fa5782359167ffffffffffffffff83116100fa576020808501948460051b0101116100fa57565b9181601f840112156100fa5782359167ffffffffffffffff83116100fa57602083818601950101116100fa57565b60206040818301928281528451809452019201905f5b8181106110135750505090565b8251845260209384019390920191600101611006565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761106a57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff811161106a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b916020908281520191905f905b8082106110eb5750505090565b90919283359073ffffffffffffffffffffffffffffffffffffffff82168092036100fa576020816001938293520194019201906110de565b959490929186156115a05773ffffffffffffffffffffffffffffffffffffffff169485156115425784156114e4576040517f2c2eb94a000000000000000000000000000000000000000000000000000000008152336004820152602481019790975273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081811660448a0152977f000000000000000000000000000000000000000000000000000000000000000090911695909390602085806064810103815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19485156106a2575f956114ae575b50908291604051998a967f3f5d1b6f000000000000000000000000000000000000000000000000000000008852600488015273ffffffffffffffffffffffffffffffffffffffff1660248701528760448701526064860160a0905260a48601906112a7926110d1565b9284840360031901608486015281845260208401378082016020015f9052601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160103602001847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a6020945f91f19384156106a2575f9461147a575b50925f73ffffffffffffffffffffffffffffffffffffffff6064829660405197889384927f9f7434f400000000000000000000000000000000000000000000000000000000845287600485015216968760248401528860448401525af19384156106a2575f946113d8575b5060207f8737ca68887394213eb903905fd90ee0246fdd01a11b84a44d5f8dd1f4e7960791604051908152a390565b9093503d805f833e6113ea8183611029565b8101906020818303126100fa5780519067ffffffffffffffff82116100fa57019080601f830112156100fa5781519167ffffffffffffffff831161106a578260051b906040519361143e6020840186611029565b84526020808501928201019283116100fa57602001905b82821061146a575091949150602090506113a9565b8151815260209182019101611455565b93506020843d6020116114a6575b8161149560209383611029565b810103126100fa579251925f61133e565b3d9150611488565b919094506020823d6020116114dc575b816114cb60209383611029565b810103126100fa579051938261123e565b3d91506114be565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f506172746965732063616e6e6f7420626520656d7074790000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f506f6c69637920616464726573732063616e6e6f74206265207a65726f0000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f416d6f756e742063616e6e6f74206265207a65726f00000000000000000000006044820152fd5b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156116d857565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061173d575080511561171557805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611790575b61174e575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561174656fea2646970667358221220e33a26d303e67bb3d12c34aaf9d789b667c809249c3db847b004f908e9f3667864736f6c634300081a0033","sourceMap":"495:5099:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;495:5099:5;;;;;;;;;968:59:4;495:5099:5;;;;;;;;;;;;;-1:-1:-1;;495:5099:5;;;;;;;:::i;:::-;8837:64:42;495:5099:5;;;;;;4301:16:42;495:5099:5;;;;4726:16:42;;:34;;;;495:5099:5;4805:1:42;4790:16;:50;;;;495:5099:5;4855:13:42;:30;;;;495:5099:5;4851:91:42;;;495:5099:5;;4805:1:42;495:5099:5;;;;;8837:64:42;495:5099:5;4979:67:42;;495:5099:5;6893:76:42;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:41;;;:::i;:::-;6893:76:42;;:::i;:::-;495:5099:5;;3298:62:95;495:5099:5;;;3298:62:95;495:5099:5;5066:101:42;;495:5099:5;5066:101:42;495:5099:5;8837:64:42;495:5099:5;;8837:64:42;495:5099:5;5142:14:42;495:5099:5;;;4805:1:42;495:5099:5;;5142:14:42;495:5099:5;4979:67:42;495:5099:5;;;;8837:64:42;495:5099:5;4979:67:42;;;4851:91;4908:23;495:5099:5;4908:23:42;495:5099:5;;4908:23:42;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:42;;4726:34;;;-1:-1:-1;4726:34:42;;495:5099:5;;;;;-1:-1:-1;;495:5099:5;;;;;;;1782:71:41;495:5099:5;;;;;;;;;;;;;-1:-1:-1;;495:5099:5;;;;;;;;;1099:42:4;495:5099:5;;;;;;;;;-1:-1:-1;;495:5099:5;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;4842:32;;495:5099;;;4842:32;;495:5099;4842:32;;495:5099;4863:10;495:5099;;;;;4842:32;495:5099;4842:32;495:5099;4842:32;;;;;;;;495:5099;4842:32;;;495:5099;-1:-1:-1;495:5099:5;;;4964:52;;495:5099;;;;;4964:52;;495:5099;;;;;;;5012:3;495:5099;;;;;;;;;;;;;;;;-1:-1:-1;;4964:12:5;495:5099;4964:52;;;;;;;495:5099;4964:52;;;495:5099;;;;;5123:74;495:5099;;;;;;;;;;;;;;;;;;5031:75;495:5099;;;;;;;;;;;;:::i;:::-;5031:75;;;5123:74;:::i;:::-;495:5099;;;;;;;:::i;:::-;;;;4964:52;;;;;;;;;;495:5099;4964:52;;495:5099;4964:52;;;;;;495:5099;4964:52;;;:::i;:::-;;;495:5099;;;;;;5123:74;495:5099;;4964:52;;;;;;;;;;;;;;;-1:-1:-1;4964:52:5;;;495:5099;;;;;;;;;4842:32;;;495:5099;4842:32;;495:5099;4842:32;;;;;;495:5099;4842:32;;;:::i;:::-;;;495:5099;;;;;;;;4842:32;;;;;-1:-1:-1;4842:32:5;;495:5099;;;;;-1:-1:-1;;495:5099:5;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;495:5099:5;;;;;1782:71:41;495:5099:5;;;;;4698:71:41;;;495:5099:5;;4698:71:41;495:5099:5;;;;;;;;4698:71:41;495:5099:5;;4698:71:41;;495:5099:5;;;;;-1:-1:-1;;495:5099:5;;;;;;;:::i;:::-;;1782:71:41;495:5099:5;;966:10:44;4258:21:41;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;495:5099:5;4355:110:41;495:5099:5;4411:43:41;;495:5099:5;4411:43:41;495:5099:5;;;;;4411:43:41;4254:92;4302:33;495:5099:5;4302:33:41;966:10:44;495:5099:5;;;;4302:33:41;495:5099:5;;;;;-1:-1:-1;;495:5099:5;;;;;;5115:6:43;495:5099:5;5106:4:43;5098:23;5094:145;;495:5099:5;;;811:66:56;495:5099:5;;;5094:145:43;5199:29;495:5099:5;5199:29:43;495:5099:5;;5199:29:43;495:5099:5;;-1:-1:-1;;495:5099:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:43;495:5099:5;4683:4:43;;4675:23;:120;;;;;495:5099:5;4658:251:43;;;3061:30:95;495:5099:5;;3298:62:95;495:5099:5;;;;3061:30:95;;;;495:5099:5;3061:30:95;;495:5099:5;;3061:30:95;;495:5099:5;1896:10:95;495:5099:5;;;;3061:30:95;;;;;;;495:5099:5;3061:30:95;;;495:5099:5;1872:35:95;;1868:140;;495:5099:5;;;;;;;6156:52:43;;495:5099:5;6156:52:43;495:5099:5;6156:52:43;;;;495:5099:5;;6156:52:43;;;495:5099:5;-1:-1:-1;6152:437:43;;6518:60;;495:5099:5;6518:60:43;495:5099:5;;;;6518:60:43;6152:437;6250:40;811:66:56;6250:40:43;;;6246:120;;1748:29:56;;;:34;1744:119;;495:5099:5;;811:66:56;495:5099:5;;;811:66:56;495:5099:5;2407:36:56;495:5099:5;2407:36:56;;495:5099:5;;2458:15:56;:11;;495:5099:5;4049:25:63;;4091:55;4049:25;;;;;;495:5099:5;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4091:55:63;:::i;495:5099:5:-;;;4091:55:63;:::i;2454:148:56:-;6163:9;;;;6159:70;;495:5099:5;6159:70:56;6199:19;495:5099:5;6199:19:56;495:5099:5;;6199:19:56;1744:119;1805:47;495:5099:5;1805:47:56;495:5099:5;;;;1805:47:56;6246:120:43;6317:34;495:5099:5;6317:34:43;495:5099:5;;;;6317:34:43;6156:52;;;;495:5099:5;6156:52:43;;495:5099:5;6156:52:43;;;;;;495:5099:5;6156:52:43;;;:::i;:::-;;;495:5099:5;;;;;6156:52:43;;;;;;;-1:-1:-1;6156:52:43;;1868:140:95;1930:67;495:5099:5;;1930:67:95;;;495:5099:5;;1930:67:95;;520:1:93;495:5099:5;;520:1:93;;495:5099:5;520:1:93;3061:30:95;495:5099:5;;520:1:93;;;;;;1930:67:95;3061:30;;;495:5099:5;3061:30:95;;495:5099:5;3061:30:95;;;;;;495:5099:5;3061:30:95;;;:::i;:::-;;;495:5099:5;;;;;;;;;;;;;;;;;;;;;;;3061:30:95;;;;;;-1:-1:-1;3061:30:95;;4675:120:43;495:5099:5;;;811:66:56;495:5099:5;;4753:42:43;;4675:120;;;495:5099:5;;;;;-1:-1:-1;;495:5099:5;;;;;;;;;868:28:4;495:5099:5;;;;;;;;;-1:-1:-1;;495:5099:5;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;495:5099:5;;;;;;1213:52:4;495:5099:5;1213:52:4;495:5099:5;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;495:5099:5;;;;;-1:-1:-1;495:5099:5;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;495:5099:5;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2658:1070;;;;;;2896:10;;495:5099;;;;2950:27;;;495:5099;;3029:18;;495:5099;;;;;3371:45;;3392:10;3371:45;;;495:5099;;;;;;;;;3412:3;495:5099;;;;;;;3412:3;3111:21;495:5099;;;;;;;3371:45;495:5099;;;;;3371:45;:12;2905:1;495:5099;3371:12;495:5099;3371:45;;;;;;;2905:1;3371:45;;;2658:1070;495:5099;;;;;;3442:75;;;495:5099;3442:75;;3371:45;3442:75;;495:5099;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;495:5099:5;;;;;;;;3371:45;495:5099;;;;;;3371:45;495:5099;2905:1;495:5099;;;;;;;3442:75;3371:45;3442:75;:17;;495:5099;;3442:75;;;3371:45;3442:75;2905:1;3442:75;;;;;;;2905:1;3442:75;;;2658:1070;495:5099;;2905:1;495:5099;;;;;;3559:66;;;;;495:5099;3559:66;;;3371:45;3559:66;;495:5099;;;;;;;;;;;;;3559:66;;;;;;;2905:1;3559:66;;;2658:1070;495:5099;3371:45;3640:52;495:5099;;;;;;3640:52;2658:1070;:::o;3559:66::-;;;;;;2905:1;3559:66;;;;;;:::i;:::-;;;495:5099;3371:45;495:5099;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3371:45;495:5099;;;;:::i;:::-;;;3371:45;495:5099;;;;;;;;;;;;3371:45;495:5099;;;;;;;;-1:-1:-1;3559:66:5;;;-1:-1:-1;3371:45:5;;-1:-1:-1;3559:66:5;;495:5099;;;;;3371:45;495:5099;;;;;;;3442:75;;;3371:45;3442:75;;3371:45;3442:75;;;;;;495:5099;3442:75;;;:::i;:::-;;;495:5099;;;;;;;2905:1;3442:75;;;;;-1:-1:-1;3442:75:5;;3371:45;;;;;;;;;;;;;;;495:5099;3371:45;;;:::i;:::-;;;495:5099;;;;;;;;3371:45;;;;;-1:-1:-1;3371:45:5;;495:5099;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4964:220:41;495:5099:5;;5147:30:41;4964:220;495:5099:5;;;1782:71:41;495:5099:5;;;1782:71:41;495:5099:5;;;;;;5147:30:41;4964:220::o;7084:141:42:-;495:5099:5;8837:64:42;495:5099:5;;;;7150:18:42;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:42;;-1:-1:-1;7191:17:42;4421:582:63;;4593:8;;-1:-1:-1;495:5099:5;;5674:21:63;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;495:5099:5;;4841:22:63;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;495:5099:5;4917:24:63;;4862:1;4917:24;495:5099:5;4917:24:63;495:5099:5;;4862:1:63;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"1176":[{"start":1396,"length":32},{"start":3647,"length":32},{"start":4508,"length":32}],"1180":[{"start":214,"length":32},{"start":4550,"length":32}],"1184":[{"start":1050,"length":32},{"start":1450,"length":32},{"start":4622,"length":32}],"1188":[{"start":3844,"length":32},{"start":4850,"length":32}],"40433":[{"start":2311,"length":32},{"start":2568,"length":32}]}},"methodIdentifiers":{"AGREEMENT_MANAGER()":"00efe0c3","LEDGER_VAULT()":"bc23e35e","MMC()":"44dea5a7","RIGHTS_POLICY_MANAGER()":"f1bdc452","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","registerAccessAgreement(uint256,address,address,address[],bytes)":"290ed221","registerSponsoredAccessAgreement(address,address,address,address[],bytes)":"b0ad582f","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agreementManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ledgerVault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mmc\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"name\":\"AccessAgreementCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"campaign\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reservedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"}],\"name\":\"SponsoredAccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AGREEMENT_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAgreementManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LEDGER_VAULT\",\"outputs\":[{\"internalType\":\"contract ILedgerVault\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MMC\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"registerAccessAgreement\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"campaignAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"registerSponsoredAccessAgreement\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract provides a unified interface to interact with access and policy management.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AccessAgreementCreated(address,address,uint256)\":{\"params\":{\"holder\":\"The address of the rights holder.\",\"policyAddress\":\"The address of the registered policy.\",\"proof\":\"The unique identifier of the agreement.\"}},\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"SponsoredAccess(address,address,address,uint256,address[])\":{\"params\":{\"campaign\":\"The campaign identifier.\",\"holder\":\"The address of the holder sponsoring the access.\",\"parties\":\"The list of parties involved in the access.\",\"policyAddress\":\"The policy address being sponsored.\",\"reservedAmount\":\"The amount of funds reserved for the access.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerAccessAgreement(uint256,address,address,address[],bytes)\":{\"details\":\"Encapsulates agreement creation and access policy registration into one cohesive workflow.\",\"params\":{\"amount\":\"The amount of MMC tokens to be used in the agreement.\",\"holder\":\"The address of the assets rights holder.\",\"parties\":\"An array of addresses representing the parties involved in the agreement.\",\"payload\":\"Additional data required for the agreement creation.\",\"policyAddress\":\"The address of the policy contract being used.\"},\"returns\":{\"_0\":\"An array of registered licenses under the agreement.\"}},\"registerSponsoredAccessAgreement(address,address,address,address[],bytes)\":{\"details\":\"This function facilitates the execution of a campaign, collection of funds, and registration of access agreements.\",\"params\":{\"campaignAddress\":\"The address of the campaign contract managing the sponsorship.\",\"holder\":\"The address of the account sponsoring the access.\",\"parties\":\"The list of parties involved in the sponsored access agreement.\",\"payload\":\"Additional data relevant to the access agreement registration.\",\"policyAddress\":\"The address of the policy being enforced for the sponsored access.\"},\"returns\":{\"_0\":\"An array of IDs representing the registered licenses.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"title\":\"AccessWorkflow\",\"version\":1},\"userdoc\":{\"events\":{\"AccessAgreementCreated(address,address,uint256)\":{\"notice\":\"Emitted when a policy agreement workflow is successfully completed.\"},\"SponsoredAccess(address,address,address,uint256,address[])\":{\"notice\":\"Emitted when a sponsored access is registered.\"}},\"kind\":\"user\",\"methods\":{\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"registerAccessAgreement(uint256,address,address,address[],bytes)\":{\"notice\":\"Creates and registers a new access agreement in a single transaction.\"},\"registerSponsoredAccessAgreement(address,address,address,address[],bytes)\":{\"notice\":\"Handles the process of sponsored access for a campaign.\"}},\"notice\":\"Handles comprehensive workflows for access management, agreement creation, policy registration.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/facades/workflows/AccessWorkflow.sol\":\"AccessWorkflow\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/facades/BaseWorkflow.sol\":{\"keccak256\":\"0x2c5d4ccafb6189db846f09007dc87f697ca66641a6f813260e53c940d502c1df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa49daa915f2f3c7937e0b5d7197fa3fbc8ef38b4aaee6e1d4a91791a8ac3cd7\",\"dweb:/ipfs/QmeCciTGigRABxL1NVasFCvQRCKiKQeaDFs538MdUsAAuL\"]},\"contracts/facades/workflows/AccessWorkflow.sol\":{\"keccak256\":\"0x5bceb33941a70091d0b0db4d58bf8c8d7e17f915aed2f027a8209df8a65ebcb9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://065ab6aacdbbb533e91c05a1917b0cbe2ace6b48fa10fdf0a23359b3df9d016b\",\"dweb:/ipfs/QmQpFCzRyYDBXS3ue9KzwL15WZGpBuo4Ccq2ev4gNLnJNp\"]},\"contracts/interfaces/ICampaign.sol\":{\"keccak256\":\"0xd9ff53705930b65525ba4e3ec492e1e7d8910c413b397e379e2bff461fdf83b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd563bb0718b3f3c18411eb8bf602334f9dc534c05778f2e08ee9a4101f4a0e\",\"dweb:/ipfs/QmdmsCVDt583SGRDGQ9TEZKqPHWQmWGjdEWsuzFF3Y69eE\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceDepositor.sol\":{\"keccak256\":\"0x5c52b09eb3ef3b077d02c9a989624b2dc1e2a00f026b65a04b6bc67206c751d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945732e1b234e80dee53dfd566862640bba93e6bdc360637c9dc2e1446757d2\",\"dweb:/ipfs/QmRGnSxbbDBFDcJiNkKyAj1K8Y88PbLub13Pf6jiWmT4Vn\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceOperator.sol\":{\"keccak256\":\"0x94b8021077fda947be77dca350159a846dd170c209d2e4c03a6408bc02a618b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://470dacfc789e4b343df87d1b2b425645e81a86b7ebb05c2b5e7ec2874b748d2b\",\"dweb:/ipfs/Qmc6Bq66WqoPJVTyBz8qkNyPqbv3T8mwvCu2qvRUnnXp3E\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceReservable.sol\":{\"keccak256\":\"0x6075948216be9acd214a2ee9d3829b09e3111c9ad7cd9f18d2331a3c5eee1e66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0580f9012407ab503876a89009d3433f19ac46c5404d3bf7c66402cd4547faf\",\"dweb:/ipfs/QmXXqnZwa79sfcyg8TWZvmacJi5xWerZtLogx7xRX7NZYM\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceTransferable.sol\":{\"keccak256\":\"0xdcb1692753e9135b5c49d40440775e968bdbb3a252a478ae5d28a28fde056d6d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96c105c028d21f0da352fa0183d15a06a48c260cbccbafd7b14aab5c75f40002\",\"dweb:/ipfs/QmP7JTwgssyNwXaLrP5NKS87k6FyygLCgMxmT6ViRYG6DA\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceVerifiable.sol\":{\"keccak256\":\"0xe14a3a0d0f0355f8a0cc62f4292e38d041c5ef67d39f090d140562886fb08c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a48c127e7ef1edd636d33cc8d892ec30d92066357a7d0a36b73d27d294ad8e40\",\"dweb:/ipfs/QmWaMMg9kqJhjoD48tuzbVTwR3YjkRt7tuxY88uLNCS4vw\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceWithdrawable.sol\":{\"keccak256\":\"0xb2ab22b87042718088b74144150c1614ccffa80e0e80b95604e22df1059e7f0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a7a437e48bae6154cd61e3beeff2af3a4d7db0901c645f9159f817dec489696\",\"dweb:/ipfs/QmVv2Z25o87QKVbcgnmM4WjB1NsUohXmSUgwUxPFnhi72X\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/ILedgerVerifiable.sol\":{\"keccak256\":\"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd\",\"dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol\":{\"keccak256\":\"0xd6e6eecd11819f0031962e653d55ad529f616f0e4b57751623c2c7481bc4fa67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfe472eae18ebebe8bdb62247dd951143742b963c196d863173d431a27e175ff\",\"dweb:/ipfs/QmTMYXFTcLvim8KS3wwc15uwCDjjWXhDCcdmPQPWnq4qGk\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/financial/ILedgerVault.sol\":{\"keccak256\":\"0xd199c9ac6cb88bf2db139e9cd0c058572f8fcde9211e65d3d2e75306282265e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39ba49cf61ae771d670c7ca7c92978998645044bac269d64ff719353d11e46c3\",\"dweb:/ipfs/QmSy5naHwxWhPmHzz64sphH5Ra1fRxav7XuzeT6wE7cTig\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xc058362d6b4d98d26f283ecf94b386d95d62346d9ef1c8fb22f6f5dd1fd7ba87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a831853a4551cdc78b6cef32134017978bb27e73f73de57062a9eff9d3e836f\",\"dweb:/ipfs/QmYnLR3TRb2umAFxmPFn2fW6baSbfgYqaNm2tgoqyoby7d\"]},\"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0xe1ee6dd03e1bf5fb8c7a8e955cb5bd897a14dbc30fd8e6ba6c1812497e4eb894\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://129bc7a13b1cbdcb70cd69c2cae8b2c247655b7c631182834edc8d9cb48d09d5\",\"dweb:/ipfs/QmbasykknjmDwKhEBnojEHYEHjMmTFSxyfWFHj92FYtTeM\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x9c0dbb09ad90b98817849666e45a70c371676cbe187709f76021bfd6f7d0bb57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb5dafd14005606dd486c8ea5aea374160a59224c03b9687a504360f1c5d190a\",\"dweb:/ipfs/QmVvn3SLREtxwehgxkGg1QE1eMw5QRk5R6kG8qyGujbCTf\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0x5d99ec9405886a20eeff6ea243c1d94b5994a474338b866d74ffa9bbfa9473f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1de4b84ddb631eee3d1eb0f921f0d0d20be3f6e808b8b2a21082436816884095\",\"dweb:/ipfs/QmaKZ938AabVXewdFBVtV8SFD4eWJq59AsdoV3aBMY7cmB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyManager","type":"address"},{"internalType":"address","name":"agreementManager","type":"address"},{"internalType":"address","name":"ledgerVault","type":"address"},{"internalType":"address","name":"mmc","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"address","name":"policyAddress","type":"address","indexed":true},{"internalType":"uint256","name":"proof","type":"uint256","indexed":false}],"type":"event","name":"AccessAgreementCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"campaign","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"address","name":"policyAddress","type":"address","indexed":true},{"internalType":"uint256","name":"reservedAmount","type":"uint256","indexed":false},{"internalType":"address[]","name":"parties","type":"address[]","indexed":false}],"type":"event","name":"SponsoredAccess","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"AGREEMENT_MANAGER","outputs":[{"internalType":"contract IAgreementManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LEDGER_VAULT","outputs":[{"internalType":"contract ILedgerVault","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MMC","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"policyAddress","type":"address"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerAccessAgreement","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"campaignAddress","type":"address"},{"internalType":"address","name":"policyAddress","type":"address"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerSponsoredAccessAgreement","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerAccessAgreement(uint256,address,address,address[],bytes)":{"details":"Encapsulates agreement creation and access policy registration into one cohesive workflow.","params":{"amount":"The amount of MMC tokens to be used in the agreement.","holder":"The address of the assets rights holder.","parties":"An array of addresses representing the parties involved in the agreement.","payload":"Additional data required for the agreement creation.","policyAddress":"The address of the policy contract being used."},"returns":{"_0":"An array of registered licenses under the agreement."}},"registerSponsoredAccessAgreement(address,address,address,address[],bytes)":{"details":"This function facilitates the execution of a campaign, collection of funds, and registration of access agreements.","params":{"campaignAddress":"The address of the campaign contract managing the sponsorship.","holder":"The address of the account sponsoring the access.","parties":"The list of parties involved in the sponsored access agreement.","payload":"Additional data relevant to the access agreement registration.","policyAddress":"The address of the policy being enforced for the sponsored access."},"returns":{"_0":"An array of IDs representing the registered licenses."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"initialize(address)":{"notice":"Initializes the proxy state."},"registerAccessAgreement(uint256,address,address,address[],bytes)":{"notice":"Creates and registers a new access agreement in a single transaction."},"registerSponsoredAccessAgreement(address,address,address,address[],bytes)":{"notice":"Handles the process of sponsored access for a campaign."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/facades/workflows/AccessWorkflow.sol":"AccessWorkflow"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/facades/BaseWorkflow.sol":{"keccak256":"0x2c5d4ccafb6189db846f09007dc87f697ca66641a6f813260e53c940d502c1df","urls":["bzz-raw://fa49daa915f2f3c7937e0b5d7197fa3fbc8ef38b4aaee6e1d4a91791a8ac3cd7","dweb:/ipfs/QmeCciTGigRABxL1NVasFCvQRCKiKQeaDFs538MdUsAAuL"],"license":"MIT"},"contracts/facades/workflows/AccessWorkflow.sol":{"keccak256":"0x5bceb33941a70091d0b0db4d58bf8c8d7e17f915aed2f027a8209df8a65ebcb9","urls":["bzz-raw://065ab6aacdbbb533e91c05a1917b0cbe2ace6b48fa10fdf0a23359b3df9d016b","dweb:/ipfs/QmQpFCzRyYDBXS3ue9KzwL15WZGpBuo4Ccq2ev4gNLnJNp"],"license":"MIT"},"contracts/interfaces/ICampaign.sol":{"keccak256":"0xd9ff53705930b65525ba4e3ec492e1e7d8910c413b397e379e2bff461fdf83b1","urls":["bzz-raw://ddd563bb0718b3f3c18411eb8bf602334f9dc534c05778f2e08ee9a4101f4a0e","dweb:/ipfs/QmdmsCVDt583SGRDGQ9TEZKqPHWQmWGjdEWsuzFF3Y69eE"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceDepositor.sol":{"keccak256":"0x5c52b09eb3ef3b077d02c9a989624b2dc1e2a00f026b65a04b6bc67206c751d8","urls":["bzz-raw://0945732e1b234e80dee53dfd566862640bba93e6bdc360637c9dc2e1446757d2","dweb:/ipfs/QmRGnSxbbDBFDcJiNkKyAj1K8Y88PbLub13Pf6jiWmT4Vn"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceOperator.sol":{"keccak256":"0x94b8021077fda947be77dca350159a846dd170c209d2e4c03a6408bc02a618b0","urls":["bzz-raw://470dacfc789e4b343df87d1b2b425645e81a86b7ebb05c2b5e7ec2874b748d2b","dweb:/ipfs/Qmc6Bq66WqoPJVTyBz8qkNyPqbv3T8mwvCu2qvRUnnXp3E"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceReservable.sol":{"keccak256":"0x6075948216be9acd214a2ee9d3829b09e3111c9ad7cd9f18d2331a3c5eee1e66","urls":["bzz-raw://f0580f9012407ab503876a89009d3433f19ac46c5404d3bf7c66402cd4547faf","dweb:/ipfs/QmXXqnZwa79sfcyg8TWZvmacJi5xWerZtLogx7xRX7NZYM"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceTransferable.sol":{"keccak256":"0xdcb1692753e9135b5c49d40440775e968bdbb3a252a478ae5d28a28fde056d6d","urls":["bzz-raw://96c105c028d21f0da352fa0183d15a06a48c260cbccbafd7b14aab5c75f40002","dweb:/ipfs/QmP7JTwgssyNwXaLrP5NKS87k6FyygLCgMxmT6ViRYG6DA"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceVerifiable.sol":{"keccak256":"0xe14a3a0d0f0355f8a0cc62f4292e38d041c5ef67d39f090d140562886fb08c80","urls":["bzz-raw://a48c127e7ef1edd636d33cc8d892ec30d92066357a7d0a36b73d27d294ad8e40","dweb:/ipfs/QmWaMMg9kqJhjoD48tuzbVTwR3YjkRt7tuxY88uLNCS4vw"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceWithdrawable.sol":{"keccak256":"0xb2ab22b87042718088b74144150c1614ccffa80e0e80b95604e22df1059e7f0b","urls":["bzz-raw://1a7a437e48bae6154cd61e3beeff2af3a4d7db0901c645f9159f817dec489696","dweb:/ipfs/QmVv2Z25o87QKVbcgnmM4WjB1NsUohXmSUgwUxPFnhi72X"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/ILedgerVerifiable.sol":{"keccak256":"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95","urls":["bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd","dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol":{"keccak256":"0xd6e6eecd11819f0031962e653d55ad529f616f0e4b57751623c2c7481bc4fa67","urls":["bzz-raw://cfe472eae18ebebe8bdb62247dd951143742b963c196d863173d431a27e175ff","dweb:/ipfs/QmTMYXFTcLvim8KS3wwc15uwCDjjWXhDCcdmPQPWnq4qGk"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/financial/ILedgerVault.sol":{"keccak256":"0xd199c9ac6cb88bf2db139e9cd0c058572f8fcde9211e65d3d2e75306282265e4","urls":["bzz-raw://39ba49cf61ae771d670c7ca7c92978998645044bac269d64ff719353d11e46c3","dweb:/ipfs/QmSy5naHwxWhPmHzz64sphH5Ra1fRxav7XuzeT6wE7cTig"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xc058362d6b4d98d26f283ecf94b386d95d62346d9ef1c8fb22f6f5dd1fd7ba87","urls":["bzz-raw://4a831853a4551cdc78b6cef32134017978bb27e73f73de57062a9eff9d3e836f","dweb:/ipfs/QmYnLR3TRb2umAFxmPFn2fW6baSbfgYqaNm2tgoqyoby7d"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol":{"keccak256":"0xe1ee6dd03e1bf5fb8c7a8e955cb5bd897a14dbc30fd8e6ba6c1812497e4eb894","urls":["bzz-raw://129bc7a13b1cbdcb70cd69c2cae8b2c247655b7c631182834edc8d9cb48d09d5","dweb:/ipfs/QmbasykknjmDwKhEBnojEHYEHjMmTFSxyfWFHj92FYtTeM"],"license":"GPL-3.0-or-later"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x9c0dbb09ad90b98817849666e45a70c371676cbe187709f76021bfd6f7d0bb57","urls":["bzz-raw://fb5dafd14005606dd486c8ea5aea374160a59224c03b9687a504360f1c5d190a","dweb:/ipfs/QmVvn3SLREtxwehgxkGg1QE1eMw5QRk5R6kG8qyGujbCTf"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0x5d99ec9405886a20eeff6ea243c1d94b5994a474338b866d74ffa9bbfa9473f0","urls":["bzz-raw://1de4b84ddb631eee3d1eb0f921f0d0d20be3f6e808b8b2a21082436816884095","dweb:/ipfs/QmaKZ938AabVXewdFBVtV8SFD4eWJq59AsdoV3aBMY7cmB"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/facades/workflows/AccessWorkflow.sol","id":1463,"exportedSymbols":{"AccessWorkflow":[1462],"BaseWorkflow":[1227],"FinancialOps":[47930],"ICampaign":[2125]},"nodeType":"SourceUnit","src":"32:5563:5","nodes":[{"id":1229,"nodeType":"PragmaDirective","src":"32:23:5","nodes":[],"literals":["solidity","0.8",".26"]},{"id":1231,"nodeType":"ImportDirective","src":"57:72:5","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol","file":"@synaps3/core/libraries/FinancialOps.sol","nameLocation":"-1:-1:-1","scope":1463,"sourceUnit":47931,"symbolAliases":[{"foreign":{"id":1230,"name":"FinancialOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47930,"src":"66:12:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1233,"nodeType":"ImportDirective","src":"130:66:5","nodes":[],"absolutePath":"contracts/facades/BaseWorkflow.sol","file":"contracts/facades/BaseWorkflow.sol","nameLocation":"-1:-1:-1","scope":1463,"sourceUnit":1228,"symbolAliases":[{"foreign":{"id":1232,"name":"BaseWorkflow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1227,"src":"139:12:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1235,"nodeType":"ImportDirective","src":"197:63:5","nodes":[],"absolutePath":"contracts/interfaces/ICampaign.sol","file":"contracts/interfaces/ICampaign.sol","nameLocation":"-1:-1:-1","scope":1463,"sourceUnit":2126,"symbolAliases":[{"foreign":{"id":1234,"name":"ICampaign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2125,"src":"206:9:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1462,"nodeType":"ContractDefinition","src":"495:5099:5","nodes":[{"id":1241,"nodeType":"UsingForDirective","src":"541:31:5","nodes":[],"global":false,"libraryName":{"id":1239,"name":"FinancialOps","nameLocations":["547:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":47930,"src":"547:12:5"},"typeName":{"id":1240,"name":"address","nodeType":"ElementaryTypeName","src":"564:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":1250,"nodeType":"EventDefinition","src":"846:99:5","nodes":[],"anonymous":false,"documentation":{"id":1242,"nodeType":"StructuredDocumentation","src":"578:263:5","text":"@notice Emitted when a policy agreement workflow is successfully completed.\n @param holder The address of the rights holder.\n @param policyAddress The address of the registered policy.\n @param proof The unique identifier of the agreement."},"eventSelector":"8737ca68887394213eb903905fd90ee0246fdd01a11b84a44d5f8dd1f4e79607","name":"AccessAgreementCreated","nameLocation":"852:22:5","parameters":{"id":1249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1244,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"891:6:5","nodeType":"VariableDeclaration","scope":1250,"src":"875:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1243,"name":"address","nodeType":"ElementaryTypeName","src":"875:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1246,"indexed":true,"mutability":"mutable","name":"policyAddress","nameLocation":"915:13:5","nodeType":"VariableDeclaration","scope":1250,"src":"899:29:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1245,"name":"address","nodeType":"ElementaryTypeName","src":"899:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1248,"indexed":false,"mutability":"mutable","name":"proof","nameLocation":"938:5:5","nodeType":"VariableDeclaration","scope":1250,"src":"930:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1247,"name":"uint256","nodeType":"ElementaryTypeName","src":"930:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"874:70:5"}},{"id":1264,"nodeType":"EventDefinition","src":"1341:192:5","nodes":[],"anonymous":false,"documentation":{"id":1251,"nodeType":"StructuredDocumentation","src":"951:385:5","text":"@notice Emitted when a sponsored access is registered.\n @param campaign The campaign identifier.\n @param holder The address of the holder sponsoring the access.\n @param policyAddress The policy address being sponsored.\n @param reservedAmount The amount of funds reserved for the access.\n @param parties The list of parties involved in the access."},"eventSelector":"5bae04d3d17bea98c9c14cfa030d692645c43398cb82578a2379aaba097de1d3","name":"SponsoredAccess","nameLocation":"1347:15:5","parameters":{"id":1263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1253,"indexed":true,"mutability":"mutable","name":"campaign","nameLocation":"1388:8:5","nodeType":"VariableDeclaration","scope":1264,"src":"1372:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1252,"name":"address","nodeType":"ElementaryTypeName","src":"1372:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1255,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"1422:6:5","nodeType":"VariableDeclaration","scope":1264,"src":"1406:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1254,"name":"address","nodeType":"ElementaryTypeName","src":"1406:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1257,"indexed":true,"mutability":"mutable","name":"policyAddress","nameLocation":"1454:13:5","nodeType":"VariableDeclaration","scope":1264,"src":"1438:29:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1256,"name":"address","nodeType":"ElementaryTypeName","src":"1438:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1259,"indexed":false,"mutability":"mutable","name":"reservedAmount","nameLocation":"1485:14:5","nodeType":"VariableDeclaration","scope":1264,"src":"1477:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1258,"name":"uint256","nodeType":"ElementaryTypeName","src":"1477:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1262,"indexed":false,"mutability":"mutable","name":"parties","nameLocation":"1519:7:5","nodeType":"VariableDeclaration","scope":1264,"src":"1509:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1260,"name":"address","nodeType":"ElementaryTypeName","src":"1509:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1261,"nodeType":"ArrayTypeName","src":"1509:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1362:170:5"}},{"id":1283,"nodeType":"FunctionDefinition","src":"1592:211:5","nodes":[],"body":{"id":1282,"nodeType":"Block","src":"1801:2:5","nodes":[],"statements":[]},"documentation":{"id":1265,"nodeType":"StructuredDocumentation","src":"1539:48:5","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":1276,"name":"rightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"1744:19:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1277,"name":"agreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"1765:16:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1278,"name":"ledgerVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1271,"src":"1783:11:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1279,"name":"mmc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1273,"src":"1796:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1280,"kind":"baseConstructorSpecifier","modifierName":{"id":1275,"name":"BaseWorkflow","nameLocations":["1731:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":1227,"src":"1731:12:5"},"nodeType":"ModifierInvocation","src":"1731:69:5"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":1274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1267,"mutability":"mutable","name":"rightsPolicyManager","nameLocation":"1621:19:5","nodeType":"VariableDeclaration","scope":1283,"src":"1613:27:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1266,"name":"address","nodeType":"ElementaryTypeName","src":"1613:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1269,"mutability":"mutable","name":"agreementManager","nameLocation":"1658:16:5","nodeType":"VariableDeclaration","scope":1283,"src":"1650:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1268,"name":"address","nodeType":"ElementaryTypeName","src":"1650:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1271,"mutability":"mutable","name":"ledgerVault","nameLocation":"1692:11:5","nodeType":"VariableDeclaration","scope":1283,"src":"1684:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1270,"name":"address","nodeType":"ElementaryTypeName","src":"1684:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1273,"mutability":"mutable","name":"mmc","nameLocation":"1721:3:5","nodeType":"VariableDeclaration","scope":1283,"src":"1713:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1272,"name":"address","nodeType":"ElementaryTypeName","src":"1713:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1603:127:5"},"returnParameters":{"id":1281,"nodeType":"ParameterList","parameters":[],"src":"1801:0:5"},"scope":1462,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1299,"nodeType":"FunctionDefinition","src":"1854:151:5","nodes":[],"body":{"id":1298,"nodeType":"Block","src":"1916:89:5","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1291,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40467,"src":"1926:22:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1926:24:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1293,"nodeType":"ExpressionStatement","src":"1926:24:5"},{"expression":{"arguments":[{"id":1295,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1286,"src":"1984:13:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1294,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48517,"src":"1960:23:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1960:38:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1297,"nodeType":"ExpressionStatement","src":"1960:38:5"}]},"documentation":{"id":1284,"nodeType":"StructuredDocumentation","src":"1809:40:5","text":"@notice Initializes the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":1289,"kind":"modifierInvocation","modifierName":{"id":1288,"name":"initializer","nameLocations":["1904:11:5"],"nodeType":"IdentifierPath","referencedDeclaration":40267,"src":"1904:11:5"},"nodeType":"ModifierInvocation","src":"1904:11:5"}],"name":"initialize","nameLocation":"1863:10:5","parameters":{"id":1287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1286,"mutability":"mutable","name":"accessManager","nameLocation":"1882:13:5","nodeType":"VariableDeclaration","scope":1299,"src":"1874:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1285,"name":"address","nodeType":"ElementaryTypeName","src":"1874:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1873:23:5"},"returnParameters":{"id":1290,"nodeType":"ParameterList","parameters":[],"src":"1916:0:5"},"scope":1462,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1391,"nodeType":"FunctionDefinition","src":"2658:1070:5","nodes":[],"body":{"id":1390,"nodeType":"Block","src":"2878:850:5","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1318,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1302,"src":"2896:6:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2905:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2896:10:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416d6f756e742063616e6e6f74206265207a65726f","id":1321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2908:23:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b","typeString":"literal_string \"Amount cannot be zero\""},"value":"Amount cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b","typeString":"literal_string \"Amount cannot be zero\""}],"id":1317,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2888:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2888:44:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1323,"nodeType":"ExpressionStatement","src":"2888:44:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1325,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1306,"src":"2950:13:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2975:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2967:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1326,"name":"address","nodeType":"ElementaryTypeName","src":"2967:7:5","typeDescriptions":{}}},"id":1329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2967:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2950:27:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c69637920616464726573732063616e6e6f74206265207a65726f","id":1331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2979:31:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a6661da13a8d67bc98e42ccc9fa9bc111e1eed8bd8a52fe22b2daae01e33d93","typeString":"literal_string \"Policy address cannot be zero\""},"value":"Policy address cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a6661da13a8d67bc98e42ccc9fa9bc111e1eed8bd8a52fe22b2daae01e33d93","typeString":"literal_string \"Policy address cannot be zero\""}],"id":1324,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2942:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2942:69:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1333,"nodeType":"ExpressionStatement","src":"2942:69:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1335,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"3029:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3037:6:5","memberName":"length","nodeType":"MemberAccess","src":"3029:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3046:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3029:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506172746965732063616e6e6f7420626520656d707479","id":1339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3049:25:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_d35ccab2b07909e583991ce966a16acaa97b44c1d919c7f20eecf9f30f3804ae","typeString":"literal_string \"Parties cannot be empty\""},"value":"Parties cannot be empty"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d35ccab2b07909e583991ce966a16acaa97b44c1d919c7f20eecf9f30f3804ae","typeString":"literal_string \"Parties cannot be empty\""}],"id":1334,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3021:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3021:54:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1341,"nodeType":"ExpressionStatement","src":"3021:54:5"},{"assignments":[1343],"declarations":[{"constant":false,"id":1343,"mutability":"mutable","name":"broker","nameLocation":"3094:6:5","nodeType":"VariableDeclaration","scope":1390,"src":"3086:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1342,"name":"address","nodeType":"ElementaryTypeName","src":"3086:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1348,"initialValue":{"arguments":[{"id":1346,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"3111:21:5","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$47652","typeString":"contract IRightsPolicyManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRightsPolicyManager_$47652","typeString":"contract IRightsPolicyManager"}],"id":1345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3103:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1344,"name":"address","nodeType":"ElementaryTypeName","src":"3103:7:5","typeDescriptions":{}}},"id":1347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3103:30:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3086:47:5"},{"assignments":[1350],"declarations":[{"constant":false,"id":1350,"mutability":"mutable","name":"confirmed","nameLocation":"3359:9:5","nodeType":"VariableDeclaration","scope":1390,"src":"3351:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1349,"name":"uint256","nodeType":"ElementaryTypeName","src":"3351:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1358,"initialValue":{"arguments":[{"expression":{"id":1353,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3392:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3396:6:5","memberName":"sender","nodeType":"MemberAccess","src":"3392:10:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1355,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1302,"src":"3404:6:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1356,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"3412:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1351,"name":"LEDGER_VAULT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1184,"src":"3371:12:5","typeDescriptions":{"typeIdentifier":"t_contract$_ILedgerVault_$47475","typeString":"contract ILedgerVault"}},"id":1352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3384:7:5","memberName":"collect","nodeType":"MemberAccess","referencedDeclaration":47294,"src":"3371:20:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (address,uint256,address) external returns (uint256)"}},"id":1357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3371:45:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3351:65:5"},{"assignments":[1360],"declarations":[{"constant":false,"id":1360,"mutability":"mutable","name":"proof","nameLocation":"3434:5:5","nodeType":"VariableDeclaration","scope":1390,"src":"3426:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1359,"name":"uint256","nodeType":"ElementaryTypeName","src":"3426:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1369,"initialValue":{"arguments":[{"id":1363,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1350,"src":"3476:9:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1364,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"3487:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1365,"name":"broker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"3492:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1366,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"3500:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":1367,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1311,"src":"3509:7:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":1361,"name":"AGREEMENT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1188,"src":"3442:17:5","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$47431","typeString":"contract IAgreementManager"}},"id":1362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3460:15:5","memberName":"createAgreement","nodeType":"MemberAccess","referencedDeclaration":47412,"src":"3442:33:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,address,address[] memory,bytes memory) external returns (uint256)"}},"id":1368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3442:75:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3426:91:5"},{"assignments":[1374],"declarations":[{"constant":false,"id":1374,"mutability":"mutable","name":"attestations","nameLocation":"3544:12:5","nodeType":"VariableDeclaration","scope":1390,"src":"3527:29:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1372,"name":"uint256","nodeType":"ElementaryTypeName","src":"3527:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1373,"nodeType":"ArrayTypeName","src":"3527:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":1381,"initialValue":{"arguments":[{"id":1377,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1360,"src":"3596:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1378,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1304,"src":"3603:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1379,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1306,"src":"3611:13:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1375,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"3559:21:5","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$47652","typeString":"contract IRightsPolicyManager"}},"id":1376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3581:14:5","memberName":"registerPolicy","nodeType":"MemberAccess","referencedDeclaration":47651,"src":"3559:36:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,address,address) external returns (uint256[] memory)"}},"id":1380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3559:66:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3527:98:5"},{"eventCall":{"arguments":[{"id":1383,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1304,"src":"3663:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1384,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1306,"src":"3671:13:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1385,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1360,"src":"3686:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1382,"name":"AccessAgreementCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1250,"src":"3640:22:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3640:52:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1387,"nodeType":"EmitStatement","src":"3635:57:5"},{"expression":{"id":1388,"name":"attestations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1374,"src":"3709:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1316,"id":1389,"nodeType":"Return","src":"3702:19:5"}]},"documentation":{"id":1300,"nodeType":"StructuredDocumentation","src":"2011:642:5","text":"@notice Creates and registers a new access agreement in a single transaction.\n @dev Encapsulates agreement creation and access policy registration into one cohesive workflow.\n @param amount The amount of MMC tokens to be used in the agreement.\n @param holder The address of the assets rights holder.\n @param policyAddress The address of the policy contract being used.\n @param parties An array of addresses representing the parties involved in the agreement.\n @param payload Additional data required for the agreement creation.\n @return An array of registered licenses under the agreement."},"functionSelector":"290ed221","implemented":true,"kind":"function","modifiers":[],"name":"registerAccessAgreement","nameLocation":"2667:23:5","parameters":{"id":1312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1302,"mutability":"mutable","name":"amount","nameLocation":"2708:6:5","nodeType":"VariableDeclaration","scope":1391,"src":"2700:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1301,"name":"uint256","nodeType":"ElementaryTypeName","src":"2700:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1304,"mutability":"mutable","name":"holder","nameLocation":"2732:6:5","nodeType":"VariableDeclaration","scope":1391,"src":"2724:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1303,"name":"address","nodeType":"ElementaryTypeName","src":"2724:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1306,"mutability":"mutable","name":"policyAddress","nameLocation":"2756:13:5","nodeType":"VariableDeclaration","scope":1391,"src":"2748:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1305,"name":"address","nodeType":"ElementaryTypeName","src":"2748:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1309,"mutability":"mutable","name":"parties","nameLocation":"2798:7:5","nodeType":"VariableDeclaration","scope":1391,"src":"2779:26:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1307,"name":"address","nodeType":"ElementaryTypeName","src":"2779:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1308,"nodeType":"ArrayTypeName","src":"2779:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1311,"mutability":"mutable","name":"payload","nameLocation":"2830:7:5","nodeType":"VariableDeclaration","scope":1391,"src":"2815:22:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1310,"name":"bytes","nodeType":"ElementaryTypeName","src":"2815:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2690:153:5"},"returnParameters":{"id":1316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1391,"src":"2860:16:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1313,"name":"uint256","nodeType":"ElementaryTypeName","src":"2860:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1314,"nodeType":"ArrayTypeName","src":"2860:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2859:18:5"},"scope":1462,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1451,"nodeType":"FunctionDefinition","src":"4452:752:5","nodes":[],"body":{"id":1450,"nodeType":"Block","src":"4690:514:5","nodes":[],"statements":[{"assignments":[1411],"declarations":[{"constant":false,"id":1411,"mutability":"mutable","name":"campaign","nameLocation":"4776:8:5","nodeType":"VariableDeclaration","scope":1450,"src":"4766:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ICampaign_$2125","typeString":"contract ICampaign"},"typeName":{"id":1410,"nodeType":"UserDefinedTypeName","pathNode":{"id":1409,"name":"ICampaign","nameLocations":["4766:9:5"],"nodeType":"IdentifierPath","referencedDeclaration":2125,"src":"4766:9:5"},"referencedDeclaration":2125,"src":"4766:9:5","typeDescriptions":{"typeIdentifier":"t_contract$_ICampaign_$2125","typeString":"contract ICampaign"}},"visibility":"internal"}],"id":1415,"initialValue":{"arguments":[{"id":1413,"name":"campaignAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1396,"src":"4797:15:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1412,"name":"ICampaign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2125,"src":"4787:9:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICampaign_$2125_$","typeString":"type(contract ICampaign)"}},"id":1414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4787:26:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICampaign_$2125","typeString":"contract ICampaign"}},"nodeType":"VariableDeclarationStatement","src":"4766:47:5"},{"assignments":[1417],"declarations":[{"constant":false,"id":1417,"mutability":"mutable","name":"reserved","nameLocation":"4831:8:5","nodeType":"VariableDeclaration","scope":1450,"src":"4823:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1416,"name":"uint256","nodeType":"ElementaryTypeName","src":"4823:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1424,"initialValue":{"arguments":[{"id":1420,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"4855:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1421,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4863:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4867:6:5","memberName":"sender","nodeType":"MemberAccess","src":"4863:10:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1418,"name":"campaign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1411,"src":"4842:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_ICampaign_$2125","typeString":"contract ICampaign"}},"id":1419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4851:3:5","memberName":"run","nodeType":"MemberAccess","referencedDeclaration":2113,"src":"4842:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) external returns (uint256)"}},"id":1423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4842:32:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4823:51:5"},{"assignments":[1426],"declarations":[{"constant":false,"id":1426,"mutability":"mutable","name":"confirmed","nameLocation":"4952:9:5","nodeType":"VariableDeclaration","scope":1450,"src":"4944:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1425,"name":"uint256","nodeType":"ElementaryTypeName","src":"4944:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1433,"initialValue":{"arguments":[{"id":1429,"name":"campaignAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1396,"src":"4985:15:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1430,"name":"reserved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1417,"src":"5002:8:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1431,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"5012:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1427,"name":"LEDGER_VAULT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1184,"src":"4964:12:5","typeDescriptions":{"typeIdentifier":"t_contract$_ILedgerVault_$47475","typeString":"contract ILedgerVault"}},"id":1428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4977:7:5","memberName":"collect","nodeType":"MemberAccess","referencedDeclaration":47294,"src":"4964:20:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (address,uint256,address) external returns (uint256)"}},"id":1432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4964:52:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4944:72:5"},{"eventCall":{"arguments":[{"id":1435,"name":"campaignAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1396,"src":"5047:15:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1436,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"5064:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1437,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1398,"src":"5072:13:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1438,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1426,"src":"5087:9:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1439,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1401,"src":"5098:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":1434,"name":"SponsoredAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"5031:15:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,address[] memory)"}},"id":1440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5031:75:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1441,"nodeType":"EmitStatement","src":"5026:80:5"},{"expression":{"arguments":[{"id":1443,"name":"reserved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1417,"src":"5147:8:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1444,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"5157:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1445,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1398,"src":"5165:13:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1446,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1401,"src":"5180:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":1447,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1403,"src":"5189:7:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1442,"name":"registerAccessAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"5123:23:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,address,address,address[] calldata,bytes calldata) returns (uint256[] memory)"}},"id":1448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5123:74:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1408,"id":1449,"nodeType":"Return","src":"5116:81:5"}]},"documentation":{"id":1392,"nodeType":"StructuredDocumentation","src":"3734:713:5","text":"@notice Handles the process of sponsored access for a campaign.\n @dev This function facilitates the execution of a campaign,\n collection of funds, and registration of access agreements.\n @param holder The address of the account sponsoring the access.\n @param campaignAddress The address of the campaign contract managing the sponsorship.\n @param policyAddress The address of the policy being enforced for the sponsored access.\n @param parties The list of parties involved in the sponsored access agreement.\n @param payload Additional data relevant to the access agreement registration.\n @return An array of IDs representing the registered licenses."},"functionSelector":"b0ad582f","implemented":true,"kind":"function","modifiers":[],"name":"registerSponsoredAccessAgreement","nameLocation":"4461:32:5","parameters":{"id":1404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1394,"mutability":"mutable","name":"holder","nameLocation":"4511:6:5","nodeType":"VariableDeclaration","scope":1451,"src":"4503:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1393,"name":"address","nodeType":"ElementaryTypeName","src":"4503:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1396,"mutability":"mutable","name":"campaignAddress","nameLocation":"4535:15:5","nodeType":"VariableDeclaration","scope":1451,"src":"4527:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1395,"name":"address","nodeType":"ElementaryTypeName","src":"4527:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1398,"mutability":"mutable","name":"policyAddress","nameLocation":"4568:13:5","nodeType":"VariableDeclaration","scope":1451,"src":"4560:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1397,"name":"address","nodeType":"ElementaryTypeName","src":"4560:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1401,"mutability":"mutable","name":"parties","nameLocation":"4610:7:5","nodeType":"VariableDeclaration","scope":1451,"src":"4591:26:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1399,"name":"address","nodeType":"ElementaryTypeName","src":"4591:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1400,"nodeType":"ArrayTypeName","src":"4591:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1403,"mutability":"mutable","name":"payload","nameLocation":"4642:7:5","nodeType":"VariableDeclaration","scope":1451,"src":"4627:22:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1402,"name":"bytes","nodeType":"ElementaryTypeName","src":"4627:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4493:162:5"},"returnParameters":{"id":1408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1407,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1451,"src":"4672:16:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1405,"name":"uint256","nodeType":"ElementaryTypeName","src":"4672:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1406,"nodeType":"ArrayTypeName","src":"4672:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4671:18:5"},"scope":1462,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1461,"nodeType":"FunctionDefinition","src":"5508:84:5","nodes":[],"body":{"id":1460,"nodeType":"Block","src":"5590:2:5","nodes":[],"statements":[]},"baseFunctions":[40549],"documentation":{"id":1452,"nodeType":"StructuredDocumentation","src":"5210:293:5","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":1458,"kind":"modifierInvocation","modifierName":{"id":1457,"name":"onlyAdmin","nameLocations":["5580:9:5"],"nodeType":"IdentifierPath","referencedDeclaration":48500,"src":"5580:9:5"},"nodeType":"ModifierInvocation","src":"5580:9:5"}],"name":"_authorizeUpgrade","nameLocation":"5517:17:5","overrides":{"id":1456,"nodeType":"OverrideSpecifier","overrides":[],"src":"5571:8:5"},"parameters":{"id":1455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1454,"mutability":"mutable","name":"newImplementation","nameLocation":"5543:17:5","nodeType":"VariableDeclaration","scope":1461,"src":"5535:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1453,"name":"address","nodeType":"ElementaryTypeName","src":"5535:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5534:27:5"},"returnParameters":{"id":1459,"nodeType":"ParameterList","parameters":[],"src":"5590:0:5"},"scope":1462,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":1237,"name":"BaseWorkflow","nameLocations":["522:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":1227,"src":"522:12:5"},"id":1238,"nodeType":"InheritanceSpecifier","src":"522:12:5"}],"canonicalName":"AccessWorkflow","contractDependencies":[],"contractKind":"contract","documentation":{"id":1236,"nodeType":"StructuredDocumentation","src":"262:233:5","text":"@title AccessWorkflow\n @notice Handles comprehensive workflows for access management, agreement creation, policy registration.\n @dev This contract provides a unified interface to interact with access and policy management."},"fullyImplemented":true,"linearizedBaseContracts":[1462,1227,48582,40159,40939,40641,40595,41508,40413],"name":"AccessWorkflow","nameLocation":"504:14:5","scope":1463,"usedErrors":[40176,40179,40440,40445,40910,40916,40920,41566,41579,42530,42792,48482],"usedEvents":[1250,1264,40184,40906,41481]}],"license":"MIT"},"id":5} \ No newline at end of file diff --git a/src/config/abi/LedgerVault.json b/src/config/abi/LedgerVault.json index 58ddb4b6..2002df62 100644 --- a/src/config/abi/LedgerVault.json +++ b/src/config/abi/LedgerVault.json @@ -1,5326 +1 @@ -{ - "abi": [ - { "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, - { - "type": "function", - "name": "UPGRADE_INTERFACE_VERSION", - "inputs": [], - "outputs": [{ "name": "", "type": "string", "internalType": "string" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "authority", - "inputs": [], - "outputs": [{ "name": "", "type": "address", "internalType": "address" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { "name": "account", "type": "address", "internalType": "address" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { "name": "currency", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "deposit", - "inputs": [ - { "name": "recipient", "type": "address", "internalType": "address" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { "name": "currency", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "getBalance", - "inputs": [{ "name": "currency", "type": "address", "internalType": "address" }], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getLedgerBalance", - "inputs": [ - { "name": "account", "type": "address", "internalType": "address" }, - { "name": "currency", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "initialize", - "inputs": [{ "name": "accessManager", "type": "address", "internalType": "address" }], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "isConsumingScheduledOp", - "inputs": [], - "outputs": [{ "name": "", "type": "bytes4", "internalType": "bytes4" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "lock", - "inputs": [ - { "name": "account", "type": "address", "internalType": "address" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { "name": "currency", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "proxiableUUID", - "inputs": [], - "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "release", - "inputs": [ - { "name": "account", "type": "address", "internalType": "address" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { "name": "currency", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "setAuthority", - "inputs": [{ "name": "newAuthority", "type": "address", "internalType": "address" }], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "transfer", - "inputs": [ - { "name": "recipient", "type": "address", "internalType": "address" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { "name": "currency", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "upgradeToAndCall", - "inputs": [ - { "name": "newImplementation", "type": "address", "internalType": "address" }, - { "name": "data", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "withdraw", - "inputs": [ - { "name": "recipient", "type": "address", "internalType": "address" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { "name": "currency", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "nonpayable" - }, - { - "type": "event", - "name": "AuthorityUpdated", - "inputs": [ - { "name": "authority", "type": "address", "indexed": false, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "FundsClaimed", - "inputs": [ - { "name": "claimer", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }, - { "name": "currency", "type": "address", "indexed": true, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "FundsDeposited", - "inputs": [ - { "name": "recipient", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "origin", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }, - { "name": "currency", "type": "address", "indexed": false, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "FundsLocked", - "inputs": [ - { "name": "account", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }, - { "name": "currency", "type": "address", "indexed": true, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "FundsReleased", - "inputs": [ - { "name": "account", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }, - { "name": "currency", "type": "address", "indexed": true, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "FundsTransferred", - "inputs": [ - { "name": "recipient", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "origin", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }, - { "name": "currency", "type": "address", "indexed": false, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "FundsWithdrawn", - "inputs": [ - { "name": "recipient", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "origin", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }, - { "name": "currency", "type": "address", "indexed": true, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Initialized", - "inputs": [ - { "name": "version", "type": "uint64", "indexed": false, "internalType": "uint64" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Upgraded", - "inputs": [ - { "name": "implementation", "type": "address", "indexed": true, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "error", - "name": "AccessManagedInvalidAuthority", - "inputs": [{ "name": "authority", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "AccessManagedRequiredDelay", - "inputs": [ - { "name": "caller", "type": "address", "internalType": "address" }, - { "name": "delay", "type": "uint32", "internalType": "uint32" } - ] - }, - { - "type": "error", - "name": "AccessManagedUnauthorized", - "inputs": [{ "name": "caller", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "AddressEmptyCode", - "inputs": [{ "name": "target", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "ERC1967InvalidImplementation", - "inputs": [{ "name": "implementation", "type": "address", "internalType": "address" }] - }, - { "type": "error", "name": "ERC1967NonPayable", "inputs": [] }, - { - "type": "error", - "name": "FailDuringDeposit", - "inputs": [{ "name": "reason", "type": "string", "internalType": "string" }] - }, - { - "type": "error", - "name": "FailDuringTransfer", - "inputs": [{ "name": "reason", "type": "string", "internalType": "string" }] - }, - { "type": "error", "name": "FailedCall", "inputs": [] }, - { "type": "error", "name": "InvalidInitialization", "inputs": [] }, - { - "type": "error", - "name": "InvalidUnauthorizedOperation", - "inputs": [{ "name": "", "type": "string", "internalType": "string" }] - }, - { "type": "error", "name": "NoFundsToClaim", "inputs": [] }, - { "type": "error", "name": "NoFundsToLock", "inputs": [] }, - { "type": "error", "name": "NoFundsToRelease", "inputs": [] }, - { "type": "error", "name": "NoFundsToTransfer", "inputs": [] }, - { "type": "error", "name": "NoFundsToWithdraw", "inputs": [] }, - { "type": "error", "name": "NotInitializing", "inputs": [] }, - { "type": "error", "name": "ReentrancyGuardReentrantCall", "inputs": [] }, - { - "type": "error", - "name": "SafeERC20FailedOperation", - "inputs": [{ "name": "token", "type": "address", "internalType": "address" }] - }, - { "type": "error", "name": "UUPSUnauthorizedCallContext", "inputs": [] }, - { - "type": "error", - "name": "UUPSUnsupportedProxiableUUID", - "inputs": [{ "name": "slot", "type": "bytes32", "internalType": "bytes32" }] - } - ], - "bytecode": { - "object": "0x60a080604052346100e857306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161202590816100ed8239608051818181610bb50152610cd40152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610054565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806315f41501146111f75780634bbc170a146110a65780634f1ef28614610c2d57806352d1902d14610b7057806369328dec146109d85780637a9e5e4b146108e35780638fb36037146108325780639e96a26014610747578063ad3cb1cc14610695578063bf7e214f14610625578063c4d66de814610351578063d949b84414610287578063dbba0f0114610190578063f45346dc1461010c5763f8b2cb4f146100be575f80fd5b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760206101006100fa6112e1565b30611933565b604051908152f35b5f80fd5b3461010857602061012861011f36611304565b80939133611c82565b916101348184846117aa565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917f2d26b12df00031a51cbd91c763887ccf6992992e54b2701fbe5bd7b2c738a4e291819081015b0390a3604051908152f35b346101085761019e36611304565b91335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f20541061025f57826101ff6020948433611819565b61020a8184846117aa565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917fe93251c2a6f732155f1cd84502a2c66884e81835c0d4768a10d81fcd79510be79181908101610185565b7fd1df6ed0000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576102be6112e1565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101085761033b73ffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576103886112e1565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161061d575b6001149081610613575b15908161060a575b506105e257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561058d575b5061044b611c2b565b610453611c2b565b61045b611c2b565b610463611c2b565b61046b611c2b565b610473611c2b565b61047b611c2b565b61048481611888565b61048c611c2b565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556104fa57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610442565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846103d9565b303b1591506103d1565b8491506103c7565b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760408051906106d28183611376565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346101085761075536611304565b61075f363361141e565b73ffffffffffffffffffffffffffffffffffffffff83165f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f20541061080a576107b4818360209561174a565b6107bf8183336117aa565b73ffffffffffffffffffffffffffffffffffffffff6040519183835216907f07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563843392a3604051908152f35b7fdff46e2b000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156108db5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6108b1565b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085761091a6112e1565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036109ac57803b1561096a5761096890611888565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b34610108576109e636611304565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610b485760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f205410610b2057602092610a90828433611819565b610a9b828483611a4a565b73ffffffffffffffffffffffffffffffffffffffff6040519284845216917f823b7dcdbd5806d97a2a3c64fe281a8d31155b2a7dade87fdaa7437c79c12b118573ffffffffffffffffffffffffffffffffffffffff33941692a45f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d604051908152f35b7f67e3990d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610c055760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857610c5f6112e1565b6024359067ffffffffffffffff8211610108573660238301121561010857816004013590610c8c826113e4565b91610c9a6040519384611376565b8083526020830193366024838301011161010857815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115611064575b50610c05576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115611059575f91611029575b5015610fa55773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610f71575b50610e0b57847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610f465750823b15610f1b57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610ee9575f8091610968945190845af4610ee36119e4565b91611ecf565b50505034610ef357005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610f9d575b81610f8d60209383611376565b8101031261010857519086610dda565b3d9150610f80565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b61104b915060403d604011611052575b6110438183611376565b810190611a20565b5084610d85565b503d611039565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610cff565b34610108576110b436611304565b6110be363361141e565b6111058373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f2054106111cf5773ffffffffffffffffffffffffffffffffffffffff8361114f8385602097611819565b16805f525f845260405f2073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f2061118484825461179d565b90557fa372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f628473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fa9e575de000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085761120536611304565b61120f363361141e565b73ffffffffffffffffffffffffffffffffffffffff8316805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f2054106112b95761127082848661126b838360209a61174a565b6117aa565b7f29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc8473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fb7cc22bc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361010857565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126101085760043573ffffffffffffffffffffffffffffffffffffffff8116810361010857906024359060443573ffffffffffffffffffffffffffffffffffffffff811681036101085790565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176113b757604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116113b757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00549173ffffffffffffffffffffffffffffffffffffffff83169282600411610108575f805f806040519573ffffffffffffffffffffffffffffffffffffffff60208801917fb700961300000000000000000000000000000000000000000000000000000000835216968760248201523060448201527fffffffff000000000000000000000000000000000000000000000000000000008335166064820152606481526114ed608482611376565b5190895afa6114fa6119e4565b906116b2575b501561150e575b5050505050565b63ffffffff1615611686577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055823b15610108577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0925f92836064601f94604051978896879586937f94c7d7ee00000000000000000000000000000000000000000000000000000000855260048501526040602485015280604485015280868686013785858286010152011681010301925af1801561105957611676575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f80808080611507565b5f61168091611376565b5f611605565b507f068ca9d8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8051929091604084106116da5750506020806116d2938301019101611a20565b905b5f611500565b91909260208110156116ee575b50506116d4565b81925090602091810103126101085760206117099101611a13565b5f806116e7565b9190820391821161171d57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff90929192165f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f20918254611710565b9055565b9190820180921161171d57565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f2091825461179d565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f20918254611710565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff169081156119de5773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115611059575f916119af575090565b90506020813d6020116119d6575b816119ca60209383611376565b81010312610108575190565b3d91506119bd565b90503190565b3d15611a0e573d906119f5826113e4565b91611a036040519384611376565b82523d5f602084013e565b606090565b5190811515820361010857565b9190826040910312610108576020611a3783611a13565b92015163ffffffff811681036101085790565b90918215611bcd5782611a5d8230611933565b10611b6f5773ffffffffffffffffffffffffffffffffffffffff168015611ae257611ae09273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611adb606483611376565b611f68565b565b505f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1611b096119e4565b5015611b1157565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611c5a57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190918215611de95773ffffffffffffffffffffffffffffffffffffffff8216918215611d7e57611cb39082611e47565b8311611d2057611d1d9173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015216602483015230604483015283606483015260648252611adb608483611376565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b505050348111611d8b5790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611ec95773ffffffffffffffffffffffffffffffffffffffff604460209260405194859384927fdd62ed3e0000000000000000000000000000000000000000000000000000000084521660048301523060248301525afa908115611059575f916119af575090565b50503490565b90611f0c5750805115611ee457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611f5f575b611f1d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15611f15565b905f602091828151910182855af115611059575f513d611fe6575073ffffffffffffffffffffffffffffffffffffffff81163b155b611fa45750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415611f9d56fea26469706673582212209c9a1eda87eb80f8aaecb5fc01f998c3f9bbb320844e92b87497d7da9cc15c6464736f6c634300081a0033", - "sourceMap": "1146:9161:54:-:0;;;;;;;1171:4:93;1163:13;;8837:64:92;1146:9161:54;;;;;;7896:76:92;;-1:-1:-1;;;;;;;;;;;1146:9161:54;;7985:34:92;7981:146;;-1:-1:-1;1146:9161:54;;;;;;;;1163:13:93;1146:9161:54;;;;;;;;;;;7981:146:92;-1:-1:-1;;;;;;1146:9161:54;-1:-1:-1;;;;;1146:9161:54;;;8837:64:92;1146:9161:54;;;8087:29:92;;1146:9161:54;;8087:29:92;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:92;;-1:-1:-1;7938:23:92;1146:9161:54;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x60806040526004361015610011575f80fd5b5f3560e01c806315f41501146111f75780634bbc170a146110a65780634f1ef28614610c2d57806352d1902d14610b7057806369328dec146109d85780637a9e5e4b146108e35780638fb36037146108325780639e96a26014610747578063ad3cb1cc14610695578063bf7e214f14610625578063c4d66de814610351578063d949b84414610287578063dbba0f0114610190578063f45346dc1461010c5763f8b2cb4f146100be575f80fd5b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760206101006100fa6112e1565b30611933565b604051908152f35b5f80fd5b3461010857602061012861011f36611304565b80939133611c82565b916101348184846117aa565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917f2d26b12df00031a51cbd91c763887ccf6992992e54b2701fbe5bd7b2c738a4e291819081015b0390a3604051908152f35b346101085761019e36611304565b91335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f20541061025f57826101ff6020948433611819565b61020a8184846117aa565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917fe93251c2a6f732155f1cd84502a2c66884e81835c0d4768a10d81fcd79510be79181908101610185565b7fd1df6ed0000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576102be6112e1565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101085761033b73ffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576103886112e1565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161061d575b6001149081610613575b15908161060a575b506105e257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561058d575b5061044b611c2b565b610453611c2b565b61045b611c2b565b610463611c2b565b61046b611c2b565b610473611c2b565b61047b611c2b565b61048481611888565b61048c611c2b565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556104fa57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610442565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846103d9565b303b1591506103d1565b8491506103c7565b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760408051906106d28183611376565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346101085761075536611304565b61075f363361141e565b73ffffffffffffffffffffffffffffffffffffffff83165f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f20541061080a576107b4818360209561174a565b6107bf8183336117aa565b73ffffffffffffffffffffffffffffffffffffffff6040519183835216907f07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563843392a3604051908152f35b7fdff46e2b000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156108db5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6108b1565b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085761091a6112e1565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036109ac57803b1561096a5761096890611888565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b34610108576109e636611304565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610b485760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f205410610b2057602092610a90828433611819565b610a9b828483611a4a565b73ffffffffffffffffffffffffffffffffffffffff6040519284845216917f823b7dcdbd5806d97a2a3c64fe281a8d31155b2a7dade87fdaa7437c79c12b118573ffffffffffffffffffffffffffffffffffffffff33941692a45f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d604051908152f35b7f67e3990d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610c055760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857610c5f6112e1565b6024359067ffffffffffffffff8211610108573660238301121561010857816004013590610c8c826113e4565b91610c9a6040519384611376565b8083526020830193366024838301011161010857815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115611064575b50610c05576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115611059575f91611029575b5015610fa55773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610f71575b50610e0b57847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610f465750823b15610f1b57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610ee9575f8091610968945190845af4610ee36119e4565b91611ecf565b50505034610ef357005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610f9d575b81610f8d60209383611376565b8101031261010857519086610dda565b3d9150610f80565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b61104b915060403d604011611052575b6110438183611376565b810190611a20565b5084610d85565b503d611039565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610cff565b34610108576110b436611304565b6110be363361141e565b6111058373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f2054106111cf5773ffffffffffffffffffffffffffffffffffffffff8361114f8385602097611819565b16805f525f845260405f2073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f2061118484825461179d565b90557fa372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f628473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fa9e575de000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085761120536611304565b61120f363361141e565b73ffffffffffffffffffffffffffffffffffffffff8316805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f2054106112b95761127082848661126b838360209a61174a565b6117aa565b7f29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc8473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fb7cc22bc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361010857565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126101085760043573ffffffffffffffffffffffffffffffffffffffff8116810361010857906024359060443573ffffffffffffffffffffffffffffffffffffffff811681036101085790565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176113b757604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116113b757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00549173ffffffffffffffffffffffffffffffffffffffff83169282600411610108575f805f806040519573ffffffffffffffffffffffffffffffffffffffff60208801917fb700961300000000000000000000000000000000000000000000000000000000835216968760248201523060448201527fffffffff000000000000000000000000000000000000000000000000000000008335166064820152606481526114ed608482611376565b5190895afa6114fa6119e4565b906116b2575b501561150e575b5050505050565b63ffffffff1615611686577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055823b15610108577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0925f92836064601f94604051978896879586937f94c7d7ee00000000000000000000000000000000000000000000000000000000855260048501526040602485015280604485015280868686013785858286010152011681010301925af1801561105957611676575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f80808080611507565b5f61168091611376565b5f611605565b507f068ca9d8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8051929091604084106116da5750506020806116d2938301019101611a20565b905b5f611500565b91909260208110156116ee575b50506116d4565b81925090602091810103126101085760206117099101611a13565b5f806116e7565b9190820391821161171d57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff90929192165f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f20918254611710565b9055565b9190820180921161171d57565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f2091825461179d565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f20918254611710565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff169081156119de5773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115611059575f916119af575090565b90506020813d6020116119d6575b816119ca60209383611376565b81010312610108575190565b3d91506119bd565b90503190565b3d15611a0e573d906119f5826113e4565b91611a036040519384611376565b82523d5f602084013e565b606090565b5190811515820361010857565b9190826040910312610108576020611a3783611a13565b92015163ffffffff811681036101085790565b90918215611bcd5782611a5d8230611933565b10611b6f5773ffffffffffffffffffffffffffffffffffffffff168015611ae257611ae09273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611adb606483611376565b611f68565b565b505f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1611b096119e4565b5015611b1157565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611c5a57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190918215611de95773ffffffffffffffffffffffffffffffffffffffff8216918215611d7e57611cb39082611e47565b8311611d2057611d1d9173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015216602483015230604483015283606483015260648252611adb608483611376565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b505050348111611d8b5790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611ec95773ffffffffffffffffffffffffffffffffffffffff604460209260405194859384927fdd62ed3e0000000000000000000000000000000000000000000000000000000084521660048301523060248301525afa908115611059575f916119af575090565b50503490565b90611f0c5750805115611ee457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611f5f575b611f1d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15611f15565b905f602091828151910182855af115611059575f513d611fe6575073ffffffffffffffffffffffffffffffffffffffff81163b155b611fa45750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415611f9d56fea26469706673582212209c9a1eda87eb80f8aaecb5fc01f998c3f9bbb320844e92b87497d7da9cc15c6464736f6c634300081a0033", - "sourceMap": "1146:9161:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1896:33:45;1146:9161:54;;:::i;:::-;1904:4:45;1896:33;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;;2371:40:45;1146:9161:54;;;:::i;:::-;2371:10:45;;;;:40;:::i;:::-;2459:8;;;;;;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;2371:10:45;;1146:9161:54;;;;4235:58;;1146:9161;;;;4235:58;;;;1146:9161;;;;;;;;;;;;;:::i;:::-;3927:10:45;;1146:9161:54;;4178:54:47;1146:9161:54;;;;;;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;3910:47:45;3906:79;;3927:10;4031:8;1146:9161:54;3927:10:45;;;4031:8;:::i;:::-;4085;;;;;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;3927:10:45;;1146:9161:54;;;;5736:60;;1146:9161;;;;5736:60;1146:9161;3906:79:45;3966:19;1146:9161:54;3966:19:45;1146:9161:54;;3966:19:45;1146:9161:54;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1469:18:47;1146:9161:54;1469:18:47;1146:9161:54;;;;4178:54:47;1146:9161:54;;;;;;;1469:18:47;:28;1146:9161:54;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8837:64:92;1146:9161:54;;;;;;4301:16:92;1146:9161:54;;;;4726:16:92;;:34;;;;1146:9161:54;4805:1:92;4790:16;:50;;;;1146:9161:54;4855:13:92;:30;;;;1146:9161:54;4851:91:92;;;1146:9161:54;;4805:1:92;1146:9161:54;;;;;8837:64:92;1146:9161:54;4979:67:92;;1146:9161:54;6893:76:92;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:90;;;:::i;:::-;6893:76:92;;:::i;:::-;1146:9161:54;;3295:62:44;1146:9161:54;;;3295:62:44;1146:9161:54;5066:101:92;;1146:9161:54;5066:101:92;1146:9161:54;8837:64:92;1146:9161:54;;8837:64:92;1146:9161:54;5142:14:92;1146:9161:54;;;4805:1:92;1146:9161:54;;5142:14:92;1146:9161:54;4979:67:92;1146:9161:54;;;;8837:64:92;1146:9161:54;4979:67:92;;;4851:91;4908:23;1146:9161:54;4908:23:92;1146:9161:54;;4908:23:92;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:92;;4726:34;;;-1:-1:-1;4726:34:92;;1146:9161:54;;;;;;;;;;;;;1782:71:90;1146:9161:54;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3871:10:90;1146:9161:54;966:10:96;3871::90;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;7943:44;7939:73;;8056:8;;;1146:9161;8056:8;;:::i;:::-;8114;966:10:96;;;8114:8:54;:::i;:::-;1146:9161;;;;;;;;966:10:96;8138:42:54;966:10:96;;8138:42:54;;1146:9161;;;;;;7939:73;7996:16;1146:9161;7996:16;1146:9161;;7996:16;1146:9161;;;;;;;;;;;1782:71:90;1146:9161:54;;;;;4698:71:90;;;1146:9161:54;;4698:71:90;1146:9161:54;;;;;;;;4698:71:90;1146:9161:54;;4698:71:90;;1146:9161:54;;;;;;;;;;;;;:::i;:::-;;1782:71:90;1146:9161:54;;966:10:96;4258:21:90;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;1146:9161:54;4355:110:90;1146:9161:54;4411:43:90;;1146:9161:54;4411:43:90;1146:9161:54;;;;;4411:43:90;4254:92;4302:33;1146:9161:54;4302:33:90;966:10:96;1146:9161:54;;;;4302:33:90;1146:9161:54;;;;;;;:::i;:::-;757:66:99;3321:69:160;1706:93:99;;1917:4;757:66;3550:68:160;3060:10:45;1146:9161:54;;4178:54:47;1146:9161:54;;;;;;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;3043:47:45;3039:79;;1146:9161:54;3060:10:45;3164:8;3060:10;;;3164:8;:::i;:::-;3210;;;;;:::i;:::-;1146:9161:54;;;;;;;;3060:10:45;4991:58:54;3060:10:45;1146:9161:54;3060:10:45;1146:9161:54;;4991:58;;1146:9161;757:66:99;3550:68:160;1146:9161:54;;;;;;3039:79:45;3099:19;1146:9161:54;3099:19:45;1146:9161:54;;3099:19:45;1706:93:99;1758:30;1146:9161:54;1758:30:99;1146:9161:54;;1758:30:99;1146:9161:54;;;;;;;;;;;;5115:6:93;1146:9161:54;5106:4:93;5098:23;5094:145;;1146:9161:54;;;811:66:130;1146:9161:54;;;5094:145:93;5199:29;1146:9161:54;5199:29:93;1146:9161:54;;5199:29:93;1146:9161:54;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:93;1146:9161:54;4683:4:93;;4675:23;:120;;;;;1146:9161:54;4658:251:93;;;3058:30:44;1146:9161:54;;3295:62:44;1146:9161:54;;;;3058:30:44;;;;1146:9161:54;3058:30:44;;1146:9161:54;;3058:30:44;;1146:9161:54;1893:10:44;1146:9161:54;;;;3058:30:44;;;;;;;1146:9161:54;3058:30:44;;;1146:9161:54;1869:35:44;;1865:140;;1146:9161:54;;;;;;;6156:52:93;;1146:9161:54;6156:52:93;1146:9161:54;6156:52:93;;;;1146:9161:54;;6156:52:93;;;1146:9161:54;-1:-1:-1;6152:437:93;;6518:60;;1146:9161:54;6518:60:93;1146:9161:54;;;;6518:60:93;6152:437;6250:40;811:66:130;6250:40:93;;;6246:120;;1748:29:130;;;:34;1744:119;;1146:9161:54;;811:66:130;1146:9161:54;;;811:66:130;1146:9161:54;2407:36:130;1146:9161:54;2407:36:130;;1146:9161:54;;2458:15:130;:11;;1146:9161:54;4049:25:151;;4091:55;4049:25;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:130:-;6163:9;;;;6159:70;;1146:9161:54;6159:70:130;6199:19;1146:9161:54;6199:19:130;1146:9161:54;;6199:19:130;1744:119;1805:47;1146:9161:54;1805:47:130;1146:9161:54;;;;1805:47:130;6246:120:93;6317:34;1146:9161:54;6317:34:93;1146:9161:54;;;;6317:34:93;6156:52;;;;1146:9161:54;6156:52:93;;1146:9161:54;6156:52:93;;;;;;1146:9161:54;6156:52:93;;;:::i;:::-;;;1146:9161:54;;;;;6156:52:93;;;;;;;-1:-1:-1;6156:52:93;;1865:140:44;1927:67;1146:9161:54;;1927:67:44;;;1146:9161:54;;1927:67:44;;520:1:42;1146:9161:54;;520:1:42;;1146:9161:54;520:1:42;3058:30:44;1146:9161:54;;520:1:42;;;;;;1927:67:44;3058:30;;;;1146:9161:54;3058:30:44;1146:9161:54;3058:30:44;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1146:9161:54;;;;;;;;;4675:120:93;1146:9161:54;;;811:66:130;1146:9161:54;;4753:42:93;;4675:120;;;1146:9161:54;;;;;;;:::i;:::-;3871:10:90;1146:9161:54;966:10:96;3871::90;:::i;:::-;1469:18:47;;1146:9161:54;;;;4178:54:47;1146:9161:54;;;;;;;1469:18:47;1146:9161:54;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;6418:44;6414:72;;1146:9161;6529:8;;;;1146:9161;6529:8;;:::i;:::-;1146:9161;;;;;;;;;;;;;-1:-1:-1;1146:9161:54;;;;-1:-1:-1;1146:9161:54;9281:36;1146:9161;;;9281:36;:::i;:::-;1146:9161;;6606:38;1146:9161;;;;;;;;;6606:38;;1146:9161;;;;;;6414:72;6471:15;1146:9161;6471:15;1146:9161;;6471:15;1146:9161;;;;;;;:::i;:::-;3871:10:90;1146:9161:54;966:10:96;3871::90;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;7111:44;7107:75;;7278:8;7226;;;;;;1146:9161;7226:8;;:::i;:::-;7278;:::i;:::-;7302:40;1146:9161;;;;;;;;;7302:40;;1146:9161;;;;;;7107:75;7164:18;1146:9161;7164:18;1146:9161;;7164:18;1146:9161;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;;;;;;;;;;;;;:::o;5359:667:90:-;;1782:71;1146:9161:54;;;;;;;5679:1:90;1146:9161:54;;;;;;;;;856:62:105;1146:9161:54;856:62:105;;;;;;;1146:9161:54;856:62:105;;;;;1146:9161:54;5646:4:90;1146:9161:54;;;;;;;;;;;;;856:62:105;;;;;;:::i;:::-;822:106;;;;;;;:::i;:::-;938:248;;;5359:667:90;5706:10;;5702:318;;5359:667;;;;;;:::o;5702:318::-;1146:9161:54;;5736:9:90;1146:9161:54;;;;;;1782:71:90;1146:9161:54;5810:60:90;;;;;856:62:105;1146:9161:54;;;;;;;;;5810:60:90;;;;;;;1146:9161:54;5810:60:90;;5679:1;5810:60;;1146:9161:54;;856:62:105;1146:9161:54;;;;;;;;;;;;;;;;;;;;;;;;;5810:60:90;;;;;;;;;;;5732:278;1146:9161:54;;1782:71:90;1146:9161:54;;1782:71:90;1146:9161:54;5702:318:90;;;;;;;5810:60;1146:9161:54;5810:60:90;;;:::i;:::-;1146:9161:54;5810:60:90;;5732:278;5962:33;;1146:9161:54;5962:33:90;5679:1;1146:9161:54;856:62:105;1146:9161:54;5962:33:90;938:248:105;1146:9161:54;;;;;;969:19:105;;1146:9161:54;;1029:32:105;;856:62;1029:32;;;;;;;;;:::i;:::-;1008:53;965:211;938:248;;;965:211;1086:19;;;856:62;1086:19;;;1082:94;;965:211;;;;;1082:94;1137:24;;;;856:62;1137:24;;;1146:9161:54;;;;856:62:105;1146:9161:54;1137:24:105;;1146:9161:54;:::i;:::-;1082:94:105;;;;1146:9161:54;;;;;;;;;;:::o;:::-;;;;;;;;;;8632:138;1146:9161;8632:138;;;;1146:9161;8727:7;1146:9161;8727:7;1146:9161;;;;8727:7;1146:9161;8727:26;1146:9161;-1:-1:-1;1146:9161:54;;;8727:36;1146:9161;-1:-1:-1;1146:9161:54;;;;8727:36;:::i;:::-;1146:9161;;8632:138::o;1146:9161::-;;;;;;;;;;:::o;3116:195:47:-;1146:9161:54;3116:195:47;;;;1146:9161:54;-1:-1:-1;1146:9161:54;4178:54:47;1146:9161:54;;;;-1:-1:-1;1146:9161:54;3266:28:47;1146:9161:54;-1:-1:-1;1146:9161:54;;;3266:38:47;1146:9161:54;-1:-1:-1;1146:9161:54;;;;3266:38:47;:::i;3743:195::-;1146:9161:54;3743:195:47;;;;1146:9161:54;-1:-1:-1;1146:9161:54;4178:54:47;1146:9161:54;;;;-1:-1:-1;1146:9161:54;3893:28:47;1146:9161:54;-1:-1:-1;1146:9161:54;;;3893:38:47;1146:9161:54;-1:-1:-1;1146:9161:54;;;;3893:38:47;:::i;4964:220:90:-;1146:9161:54;;5147:30:90;4964:220;1146:9161:54;;;1782:71:90;1146:9161:54;;;1782:71:90;1146:9161:54;;;;;;5147:30:90;4964:220::o;4674:193:39:-;;1146:9161:54;;4770:19:39;;;4766:46;;1146:9161:54;4829:31:39;1146:9161:54;;;;4829:31:39;;;;;1146:9161:54;4829:31:39;;1146:9161:54;4829:31:39;;;1146:9161:54;4829:31:39;;;;;;;1146:9161:54;4829:31:39;;;4822:38;4674:193;:::o;4829:31::-;;;1146:9161:54;4829:31:39;;1146:9161:54;4829:31:39;;;;;;1146:9161:54;4829:31:39;;;:::i;:::-;;;1146:9161:54;;;;;4674:193:39;:::o;4829:31::-;;;-1:-1:-1;4829:31:39;;4766:46;4798:14;;;4791:21;:::o;1146:9161:54:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1146:9161:54;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;5233:383:39:-;;;5317:11;;5313:78;;5423:4;5405:31;5423:4;;5405:31;:::i;:::-;:40;5401:96;;1146:9161:54;;5511:19:39;;5507:59;;1380:43:144;1146:9161:54;;;;1380:43:144;1146:9161:54;1380:43:144;;;;1146:9161:54;1380:43:144;;;1146:9161:54;;;;;;1380:43:144;;;;;;:::i;:::-;;:::i;:::-;5233:383:39:o;5507:59::-;1146:9161:54;5327:1:39;1146:9161:54;;;;;;;904:37:39;;;;:::i;:::-;;955:8;951:58;;5532:34::o;951:58::-;972:37;1146:9161:54;;972:37:39;;;1146:9161:54;972:37:39;;;1146:9161:54;;;;;;;;;;;972:37:39;5401:96;5454:43;1146:9161:54;;5454:43:39;;;1146:9161:54;5454:43:39;;;1146:9161:54;;;;;;;;;;;5454:43:39;5313:78;5337:54;1146:9161:54;;5337:54:39;;;1146:9161:54;5337:54:39;;;1146:9161:54;;;;;;;;;;;5337:54:39;7084:141:92;1146:9161:54;8837:64:92;1146:9161:54;;;;7150:18:92;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:92;;-1:-1:-1;7191:17:92;3539:881:39;;;;3646:11;;3642:65;;1146:9161:54;;;3721:19:39;;;3717:230;;3970:22;;;;:::i;:::-;3961:31;;3957:90;;1797:53:144;1146:9161:54;;;;1797:53:144;1146:9161:54;1797:53:144;;;;1146:9161:54;1797:53:144;;;1146:9161:54;4376:4:39;1146:9161:54;;;;;;;;;;1797:53:144;;;;;;:::i;:::-;3539:881:39;:::o;3957:90::-;4001:46;1146:9161:54;;4001:46:39;;;1146:9161:54;4001:46:39;;;1146:9161:54;;;;;;;;;;;4001:46:39;3717:230;3769:9;;;;3760:18;;3756:75;;3923:13;:::o;3756:75::-;3787:44;1146:9161:54;;3787:44:39;;;1146:9161:54;3787:44:39;;;1146:9161:54;;;;;;;;;;;3787:44:39;3642:65;3666:41;1146:9161:54;;3666:41:39;;;1146:9161:54;3666:41:39;;;1146:9161:54;;;;;;;;;;;3666:41:39;2841:201;;1146:9161:54;;2936:19:39;;;2932:41;;1146:9161:54;2990:45:39;1146:9161:54;;;;2990:45:39;;;;;1146:9161:54;2990:45:39;;1146:9161:54;2990:45:39;;;1146:9161:54;3029:4:39;1146:9161:54;;;;2990:45:39;;;;;;;1146:9161:54;2990:45:39;;;2983:52;2841:201;:::o;2932:41::-;2964:9;;;2957:16;:::o;4421:582:151:-;;4593:8;;-1:-1:-1;1146:9161:54;;5674:21:151;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;1146:9161:54;;4841:22:151;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;1146:9161:54;4917:24:151;;4862:1;4917:24;1146:9161:54;4917:24:151;1146:9161:54;;4862:1:151;4917:24;4841:49;4867:18;;;:23;4841:49;;7738:720:144;;-1:-1:-1;7875:421:144;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:144;;8310:15;;1146:9161:54;;;;8328:26:144;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;1146:9161:54;8401:40:144;;-1:-1:-1;8401:40:144;1146:9161:54;8401:40:144;1146:9161:54;;-1:-1:-1;8401:40:144;8310:68;8377:1;8362:16;;8310:68;", - "linkReferences": {}, - "immutableReferences": { - "50482": [ - { "start": 2997, "length": 32 }, - { "start": 3284, "length": 32 } - ] - } - }, - "methodIdentifiers": { - "UPGRADE_INTERFACE_VERSION()": "ad3cb1cc", - "authority()": "bf7e214f", - "claim(address,uint256,address)": "9e96a260", - "deposit(address,uint256,address)": "f45346dc", - "getBalance(address)": "f8b2cb4f", - "getLedgerBalance(address,address)": "d949b844", - "initialize(address)": "c4d66de8", - "isConsumingScheduledOp()": "8fb36037", - "lock(address,uint256,address)": "4bbc170a", - "proxiableUUID()": "52d1902d", - "release(address,uint256,address)": "15f41501", - "setAuthority(address)": "7a9e5e4b", - "transfer(address,uint256,address)": "dbba0f01", - "upgradeToAndCall(address,bytes)": "4f1ef286", - "withdraw(address,uint256,address)": "69328dec" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToLock\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getLedgerBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"lock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract includes administrative methods (`restricted`) and general user methods. Supports operations such as deposits, withdrawals, transfers, and locked funds management.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailDuringTransfer(string)\":[{\"params\":{\"reason\":\"The reason for the transfer failure.\"}}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NoFundsToClaim()\":[{\"details\":\"This error occurs if an account or claimer tries to claim funds that are not locked or insufficient.\"}],\"NoFundsToLock()\":[{\"details\":\"This error occurs if an account attempts to lock more funds than available.\"}],\"NoFundsToRelease()\":[{\"details\":\"This error occurs if an operator tries to releases funds that are not locked or insufficient.\"}],\"NoFundsToTransfer()\":[{\"details\":\"This error is triggered when a transfer is attempted but the sender has insufficient funds or no balance.\"}],\"NoFundsToWithdraw()\":[{\"details\":\"This error is triggered when a withdrawal is attempted but the contract has insufficient funds.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"FundsClaimed(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of funds claimed.\",\"claimer\":\"The address of the entity claiming the funds.\",\"currency\":\"The address of the currency in which the funds were claimed.\"}},\"FundsDeposited(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency deposited.\",\"currency\":\"The address of the ERC20 token deposited.\",\"origin\":\"The address sending the deposit funds.\",\"recipient\":\"The address of the account credited with the deposit.\"}},\"FundsLocked(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account whose funds were locked.\",\"amount\":\"The amount of funds that were locked.\",\"currency\":\"The address of the currency in which the funds were locked.\"}},\"FundsReleased(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account whose funds were released.\",\"amount\":\"The amount of funds that were locked.\",\"currency\":\"The address of the currency in which the funds were locked.\"}},\"FundsTransferred(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency transferred.\",\"currency\":\"The address of the ERC20 token transferred. Use `address(0)` for native tokens.\",\"origin\":\"The address of the account initiating the transfer.\",\"recipient\":\"The address of the account receiving the funds.\"}},\"FundsWithdrawn(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount of funds being withdrawn.\",\"currency\":\"The currency used for the withdrawal.\",\"origin\":\"The address sending the withdrawn funds.\",\"recipient\":\"The address receiving the withdrawn funds.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"claim(address,uint256,address)\":{\"details\":\"The claimer is authorized to process the funds from the account. Only operator role can handle this methods.\",\"params\":{\"account\":\"The address of the account whose funds are being claimed.\",\"amount\":\"The amount of funds to claim.\",\"currency\":\"The currency to associate claim with. Use address(0) for the native coin.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"deposit(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency to deposit.\",\"currency\":\"The address of the ERC20 token to deposit.\",\"recipient\":\"The address of the account to credit with the deposit.\"}},\"getBalance(address)\":{\"details\":\"The function checks the balance for both native and ERC-20 tokens.\",\"params\":{\"currency\":\"The address of the currency to check the balance of.\"}},\"getLedgerBalance(address,address)\":{\"params\":{\"account\":\"The address of the account whose balance is being queried.\",\"currency\":\"The address of the currency to retrieve the balance for.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"lock(address,uint256,address)\":{\"details\":\"The funds are immobilized and cannot be withdrawn or transferred until released or claimed. Only operator role can handle this methods.\",\"params\":{\"account\":\"The address of the account for which the funds will be locked.\",\"amount\":\"The amount of funds to lock.\",\"currency\":\"The currency to associate lock with. Use address(0) for the native coin.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"release(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account for which the funds will be released.\",\"amount\":\"The amount of funds to release.\",\"currency\":\"The currency to associate release with. Use address(0) for the native coin.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"transfer(address,uint256,address)\":{\"details\":\"Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.\",\"params\":{\"amount\":\"The amount of currency to transfer.\",\"currency\":\"The address of the ERC20 token to transfer. Use `address(0)` for native tokens.\",\"recipient\":\"The address of the account to credit with the transfer.\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"withdraw(address,uint256,address)\":{\"details\":\"This function withdraws funds from the caller's balance and transfers them to the recipient.\",\"params\":{\"amount\":\"The amount of tokens to withdraw.\",\"currency\":\"The currency to associate fees with. Use address(0) for the native coin.\",\"recipient\":\"The address that will receive the withdrawn tokens.\"}}},\"stateVariables\":{\"_locked\":{\"details\":\"Holds the registry of locked funds for accounts.\"}},\"title\":\"LedgerVault\",\"version\":1},\"userdoc\":{\"errors\":{\"FailDuringTransfer(string)\":[{\"notice\":\"Error to be thrown when a transfer fails.\"}],\"NoFundsToClaim()\":[{\"notice\":\"Thrown when there are no locked funds available to claim.\"}],\"NoFundsToLock()\":[{\"notice\":\"Thrown when there are no available funds to lock.\"}],\"NoFundsToRelease()\":[{\"notice\":\"Thrown when there are no locked funds available to release.\"}],\"NoFundsToTransfer()\":[{\"notice\":\"Error indicating that there are no funds available to transfer.\"}],\"NoFundsToWithdraw()\":[{\"notice\":\"Error indicating that there are no funds available to withdraw.\"}]},\"events\":{\"FundsClaimed(address,uint256,address)\":{\"notice\":\"Emitted when locked funds are successfully claimed.\"},\"FundsDeposited(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are successfully deposited into the pool.\"},\"FundsLocked(address,uint256,address)\":{\"notice\":\"Emitted when funds are locked in the ledger.\"},\"FundsReleased(address,uint256,address)\":{\"notice\":\"Emitted when locked funds are successfully released.\"},\"FundsTransferred(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are successfully transferred between accounts.\"},\"FundsWithdrawn(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are withdrawn from the contract.\"}},\"kind\":\"user\",\"methods\":{\"claim(address,uint256,address)\":{\"notice\":\"Claims a specific amount of locked funds on behalf of a claimer.\"},\"deposit(address,uint256,address)\":{\"notice\":\"Deposits a specified amount of currency into the pool for a given recipient.\"},\"getBalance(address)\":{\"notice\":\"Returns the general's balance for the specified currency.\"},\"getLedgerBalance(address,address)\":{\"notice\":\"Retrieves the ledger balance of an account for a specific currency.\"},\"lock(address,uint256,address)\":{\"notice\":\"Locks a specific amount of funds for a given account.\"},\"release(address,uint256,address)\":{\"notice\":\"Release a specific amount of funds from locked pool.\"},\"transfer(address,uint256,address)\":{\"notice\":\"Transfers a specified amount of currency from the caller's balance to a given recipient.\"},\"withdraw(address,uint256,address)\":{\"notice\":\"Withdraws tokens from the contract to a specified recipient's address.\"}},\"notice\":\"A vault contract designed to store, lock, release, and manage funds securely.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/financial/LedgerVault.sol\":\"LedgerVault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/core/interfaces/base/IBalanceDepositor.sol\":{\"keccak256\":\"0x5c52b09eb3ef3b077d02c9a989624b2dc1e2a00f026b65a04b6bc67206c751d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945732e1b234e80dee53dfd566862640bba93e6bdc360637c9dc2e1446757d2\",\"dweb:/ipfs/QmRGnSxbbDBFDcJiNkKyAj1K8Y88PbLub13Pf6jiWmT4Vn\"]},\"contracts/core/interfaces/base/IBalanceOperator.sol\":{\"keccak256\":\"0x15c496cd62a30864c5e2a97c6c42f32dff53dbaa6a39423ccae999712c76361e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ad4f9ae16eded8d662578e6435b9edb2b39df26e776a1ae3459bda696ce20c1\",\"dweb:/ipfs/QmYxNU1zexpUevj5GecxfYPvCM7DPs6xKVrEBSfQAyZ4Rx\"]},\"contracts/core/interfaces/base/IBalanceTransferable.sol\":{\"keccak256\":\"0x1ab8599894aaabb22bbcdd9ef55246991aa1a8c7d91fdb3af11d0a9da76c8657\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8449bddd07f95f25e5651246a0d925a09d18077e7d8af1e590f14766b6e951de\",\"dweb:/ipfs/QmQHrcXFVZizwXpHK4D2TteXqDkPJiaCdHwrxegMTRn1iQ\"]},\"contracts/core/interfaces/base/IBalanceWithdrawable.sol\":{\"keccak256\":\"0x4b4f6ed37ea5ae7a453e075ad49f6e99aee09cb7c3ed6152b81bd8d42cef1b40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc42910ff3935f00aff6b5b39479021212ef6281f323c130e68b8a62cc4d96ec\",\"dweb:/ipfs/QmdVmmna2ZCwBDbpGZXvYABN8fNwCmU7JciXFzq93s2yE7\"]},\"contracts/core/interfaces/base/ILedgerVerifiable.sol\":{\"keccak256\":\"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd\",\"dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG\"]},\"contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d\",\"dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX\"]},\"contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]},\"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol\":{\"keccak256\":\"0xdcb66f86cc94a88725347da0add854997b3759b4f98efce0923f313c9759a03f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afa2db1b1e817131b5925e546c1cb8ab8b256e7d6d38752e60807d88631ca403\",\"dweb:/ipfs/QmShNiZ2QJWVrrshkMWKBkyMmu1i2ngfobuPpZV1LeAhh1\"]},\"contracts/core/primitives/upgradeable/LedgerUpgradeable.sol\":{\"keccak256\":\"0x2e51d076c533c1161e843e808db34e7f774b9acdb61e6c83dbeda6fe07920c2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4482e61cfc721dc96e1ef47f56010ad0f37c225949609bba0f03c406a8ac0c2\",\"dweb:/ipfs/QmdSXpbPbrXFDUr4sHQ6BJeRUGWq2EpoCiiS8APxFeYysX\"]},\"contracts/financial/LedgerVault.sol\":{\"keccak256\":\"0x501aab236fcb7377a9687fe5c555b074861244bf8fe8b7d63ddc34f29f7f3b08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://705dd2f42064b55be00ce5696ee6fd18626ff0f39afe3e7904f45c04ca08afcf\",\"dweb:/ipfs/QmYFci4aRBQQaxP7yMSxnK7sUVvPRZ5g2tPjNAh44F1gk1\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab\",\"dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}", - "metadata": { - "compiler": { "version": "0.8.26+commit.8a97fa7a" }, - "language": "Solidity", - "output": { - "abi": [ - { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, - { - "inputs": [{ "internalType": "address", "name": "authority", "type": "address" }], - "type": "error", - "name": "AccessManagedInvalidAuthority" - }, - { - "inputs": [ - { "internalType": "address", "name": "caller", "type": "address" }, - { "internalType": "uint32", "name": "delay", "type": "uint32" } - ], - "type": "error", - "name": "AccessManagedRequiredDelay" - }, - { - "inputs": [{ "internalType": "address", "name": "caller", "type": "address" }], - "type": "error", - "name": "AccessManagedUnauthorized" - }, - { - "inputs": [{ "internalType": "address", "name": "target", "type": "address" }], - "type": "error", - "name": "AddressEmptyCode" - }, - { - "inputs": [{ "internalType": "address", "name": "implementation", "type": "address" }], - "type": "error", - "name": "ERC1967InvalidImplementation" - }, - { "inputs": [], "type": "error", "name": "ERC1967NonPayable" }, - { - "inputs": [{ "internalType": "string", "name": "reason", "type": "string" }], - "type": "error", - "name": "FailDuringDeposit" - }, - { - "inputs": [{ "internalType": "string", "name": "reason", "type": "string" }], - "type": "error", - "name": "FailDuringTransfer" - }, - { "inputs": [], "type": "error", "name": "FailedCall" }, - { "inputs": [], "type": "error", "name": "InvalidInitialization" }, - { - "inputs": [{ "internalType": "string", "name": "", "type": "string" }], - "type": "error", - "name": "InvalidUnauthorizedOperation" - }, - { "inputs": [], "type": "error", "name": "NoFundsToClaim" }, - { "inputs": [], "type": "error", "name": "NoFundsToLock" }, - { "inputs": [], "type": "error", "name": "NoFundsToRelease" }, - { "inputs": [], "type": "error", "name": "NoFundsToTransfer" }, - { "inputs": [], "type": "error", "name": "NoFundsToWithdraw" }, - { "inputs": [], "type": "error", "name": "NotInitializing" }, - { "inputs": [], "type": "error", "name": "ReentrancyGuardReentrantCall" }, - { - "inputs": [{ "internalType": "address", "name": "token", "type": "address" }], - "type": "error", - "name": "SafeERC20FailedOperation" - }, - { "inputs": [], "type": "error", "name": "UUPSUnauthorizedCallContext" }, - { - "inputs": [{ "internalType": "bytes32", "name": "slot", "type": "bytes32" }], - "type": "error", - "name": "UUPSUnsupportedProxiableUUID" - }, - { - "inputs": [ - { "internalType": "address", "name": "authority", "type": "address", "indexed": false } - ], - "type": "event", - "name": "AuthorityUpdated", - "anonymous": false - }, - { - "inputs": [ - { "internalType": "address", "name": "claimer", "type": "address", "indexed": true }, - { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }, - { "internalType": "address", "name": "currency", "type": "address", "indexed": true } - ], - "type": "event", - "name": "FundsClaimed", - "anonymous": false - }, - { - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address", "indexed": true }, - { "internalType": "address", "name": "origin", "type": "address", "indexed": true }, - { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }, - { "internalType": "address", "name": "currency", "type": "address", "indexed": false } - ], - "type": "event", - "name": "FundsDeposited", - "anonymous": false - }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address", "indexed": true }, - { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }, - { "internalType": "address", "name": "currency", "type": "address", "indexed": true } - ], - "type": "event", - "name": "FundsLocked", - "anonymous": false - }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address", "indexed": true }, - { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }, - { "internalType": "address", "name": "currency", "type": "address", "indexed": true } - ], - "type": "event", - "name": "FundsReleased", - "anonymous": false - }, - { - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address", "indexed": true }, - { "internalType": "address", "name": "origin", "type": "address", "indexed": true }, - { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }, - { "internalType": "address", "name": "currency", "type": "address", "indexed": false } - ], - "type": "event", - "name": "FundsTransferred", - "anonymous": false - }, - { - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address", "indexed": true }, - { "internalType": "address", "name": "origin", "type": "address", "indexed": true }, - { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }, - { "internalType": "address", "name": "currency", "type": "address", "indexed": true } - ], - "type": "event", - "name": "FundsWithdrawn", - "anonymous": false - }, - { - "inputs": [ - { "internalType": "uint64", "name": "version", "type": "uint64", "indexed": false } - ], - "type": "event", - "name": "Initialized", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address", - "indexed": true - } - ], - "type": "event", - "name": "Upgraded", - "anonymous": false - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "UPGRADE_INTERFACE_VERSION", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "authority", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "address", "name": "currency", "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "address", "name": "currency", "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "deposit", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] - }, - { - "inputs": [{ "internalType": "address", "name": "currency", "type": "address" }], - "stateMutability": "view", - "type": "function", - "name": "getBalance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "address", "name": "currency", "type": "address" } - ], - "stateMutability": "view", - "type": "function", - "name": "getLedgerBalance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] - }, - { - "inputs": [{ "internalType": "address", "name": "accessManager", "type": "address" }], - "stateMutability": "nonpayable", - "type": "function", - "name": "initialize" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "isConsumingScheduledOp", - "outputs": [{ "internalType": "bytes4", "name": "", "type": "bytes4" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "address", "name": "currency", "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "lock", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "proxiableUUID", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "address", "name": "currency", "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "release", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] - }, - { - "inputs": [{ "internalType": "address", "name": "newAuthority", "type": "address" }], - "stateMutability": "nonpayable", - "type": "function", - "name": "setAuthority" - }, - { - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "address", "name": "currency", "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "transfer", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "newImplementation", "type": "address" }, - { "internalType": "bytes", "name": "data", "type": "bytes" } - ], - "stateMutability": "payable", - "type": "function", - "name": "upgradeToAndCall" - }, - { - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "address", "name": "currency", "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "withdraw", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "authority()": { "details": "Returns the current authority." }, - "claim(address,uint256,address)": { - "details": "The claimer is authorized to process the funds from the account. Only operator role can handle this methods.", - "params": { - "account": "The address of the account whose funds are being claimed.", - "amount": "The amount of funds to claim.", - "currency": "The currency to associate claim with. Use address(0) for the native coin." - } - }, - "constructor": { "custom:oz-upgrades-unsafe-allow": "constructor" }, - "deposit(address,uint256,address)": { - "params": { - "amount": "The amount of currency to deposit.", - "currency": "The address of the ERC20 token to deposit.", - "recipient": "The address of the account to credit with the deposit." - } - }, - "getBalance(address)": { - "details": "The function checks the balance for both native and ERC-20 tokens.", - "params": { "currency": "The address of the currency to check the balance of." } - }, - "getLedgerBalance(address,address)": { - "params": { - "account": "The address of the account whose balance is being queried.", - "currency": "The address of the currency to retrieve the balance for." - } - }, - "isConsumingScheduledOp()": { - "details": "Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls." - }, - "lock(address,uint256,address)": { - "details": "The funds are immobilized and cannot be withdrawn or transferred until released or claimed. Only operator role can handle this methods.", - "params": { - "account": "The address of the account for which the funds will be locked.", - "amount": "The amount of funds to lock.", - "currency": "The currency to associate lock with. Use address(0) for the native coin." - } - }, - "proxiableUUID()": { - "details": "Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier." - }, - "release(address,uint256,address)": { - "params": { - "account": "The address of the account for which the funds will be released.", - "amount": "The amount of funds to release.", - "currency": "The currency to associate release with. Use address(0) for the native coin." - } - }, - "setAuthority(address)": { - "details": "Transfers control to a new authority. The caller must be the current authority." - }, - "transfer(address,uint256,address)": { - "details": "Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.", - "params": { - "amount": "The amount of currency to transfer.", - "currency": "The address of the ERC20 token to transfer. Use `address(0)` for native tokens.", - "recipient": "The address of the account to credit with the transfer." - } - }, - "upgradeToAndCall(address,bytes)": { - "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall", - "details": "Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event." - }, - "withdraw(address,uint256,address)": { - "details": "This function withdraws funds from the caller's balance and transfers them to the recipient.", - "params": { - "amount": "The amount of tokens to withdraw.", - "currency": "The currency to associate fees with. Use address(0) for the native coin.", - "recipient": "The address that will receive the withdrawn tokens." - } - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "claim(address,uint256,address)": { - "notice": "Claims a specific amount of locked funds on behalf of a claimer." - }, - "deposit(address,uint256,address)": { - "notice": "Deposits a specified amount of currency into the pool for a given recipient." - }, - "getBalance(address)": { - "notice": "Returns the general's balance for the specified currency." - }, - "getLedgerBalance(address,address)": { - "notice": "Retrieves the ledger balance of an account for a specific currency." - }, - "lock(address,uint256,address)": { - "notice": "Locks a specific amount of funds for a given account." - }, - "release(address,uint256,address)": { - "notice": "Release a specific amount of funds from locked pool." - }, - "transfer(address,uint256,address)": { - "notice": "Transfers a specified amount of currency from the caller's balance to a given recipient." - }, - "withdraw(address,uint256,address)": { - "notice": "Withdraws tokens from the contract to a specified recipient's address." - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - "@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/", - "@ethsign/=node_modules/@ethsign/", - "@openzeppelin/=node_modules/@openzeppelin/", - "@synaps3/=contracts/", - "ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/", - "forge-std/=lib/forge-std/src/", - "hardhat/=node_modules/hardhat/", - "openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/", - "solady/=lib/solady/src/", - "solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/" - ], - "optimizer": { "enabled": true, "runs": 20000 }, - "metadata": { "bytecodeHash": "ipfs" }, - "compilationTarget": { "contracts/financial/LedgerVault.sol": "LedgerVault" }, - "evmVersion": "cancun", - "libraries": {}, - "viaIR": true - }, - "sources": { - "contracts/core/interfaces/access/IAccessManager.sol": { - "keccak256": "0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f", - "urls": [ - "bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e", - "dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ" - ], - "license": "MIT" - }, - "contracts/core/interfaces/base/IBalanceDepositor.sol": { - "keccak256": "0x5c52b09eb3ef3b077d02c9a989624b2dc1e2a00f026b65a04b6bc67206c751d8", - "urls": [ - "bzz-raw://0945732e1b234e80dee53dfd566862640bba93e6bdc360637c9dc2e1446757d2", - "dweb:/ipfs/QmRGnSxbbDBFDcJiNkKyAj1K8Y88PbLub13Pf6jiWmT4Vn" - ], - "license": "MIT" - }, - "contracts/core/interfaces/base/IBalanceOperator.sol": { - "keccak256": "0x15c496cd62a30864c5e2a97c6c42f32dff53dbaa6a39423ccae999712c76361e", - "urls": [ - "bzz-raw://7ad4f9ae16eded8d662578e6435b9edb2b39df26e776a1ae3459bda696ce20c1", - "dweb:/ipfs/QmYxNU1zexpUevj5GecxfYPvCM7DPs6xKVrEBSfQAyZ4Rx" - ], - "license": "MIT" - }, - "contracts/core/interfaces/base/IBalanceTransferable.sol": { - "keccak256": "0x1ab8599894aaabb22bbcdd9ef55246991aa1a8c7d91fdb3af11d0a9da76c8657", - "urls": [ - "bzz-raw://8449bddd07f95f25e5651246a0d925a09d18077e7d8af1e590f14766b6e951de", - "dweb:/ipfs/QmQHrcXFVZizwXpHK4D2TteXqDkPJiaCdHwrxegMTRn1iQ" - ], - "license": "MIT" - }, - "contracts/core/interfaces/base/IBalanceWithdrawable.sol": { - "keccak256": "0x4b4f6ed37ea5ae7a453e075ad49f6e99aee09cb7c3ed6152b81bd8d42cef1b40", - "urls": [ - "bzz-raw://cc42910ff3935f00aff6b5b39479021212ef6281f323c130e68b8a62cc4d96ec", - "dweb:/ipfs/QmdVmmna2ZCwBDbpGZXvYABN8fNwCmU7JciXFzq93s2yE7" - ], - "license": "MIT" - }, - "contracts/core/interfaces/base/ILedgerVerifiable.sol": { - "keccak256": "0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95", - "urls": [ - "bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd", - "dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG" - ], - "license": "MIT" - }, - "contracts/core/libraries/FinancialOps.sol": { - "keccak256": "0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215", - "urls": [ - "bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d", - "dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX" - ], - "license": "GPL-3.0-or-later" - }, - "contracts/core/primitives/Constants.sol": { - "keccak256": "0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e", - "urls": [ - "bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1", - "dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3" - ], - "license": "MIT" - }, - "contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol": { - "keccak256": "0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df", - "urls": [ - "bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2", - "dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj" - ], - "license": "MIT" - }, - "contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol": { - "keccak256": "0xdcb66f86cc94a88725347da0add854997b3759b4f98efce0923f313c9759a03f", - "urls": [ - "bzz-raw://afa2db1b1e817131b5925e546c1cb8ab8b256e7d6d38752e60807d88631ca403", - "dweb:/ipfs/QmShNiZ2QJWVrrshkMWKBkyMmu1i2ngfobuPpZV1LeAhh1" - ], - "license": "MIT" - }, - "contracts/core/primitives/upgradeable/LedgerUpgradeable.sol": { - "keccak256": "0x2e51d076c533c1161e843e808db34e7f774b9acdb61e6c83dbeda6fe07920c2a", - "urls": [ - "bzz-raw://a4482e61cfc721dc96e1ef47f56010ad0f37c225949609bba0f03c406a8ac0c2", - "dweb:/ipfs/QmdSXpbPbrXFDUr4sHQ6BJeRUGWq2EpoCiiS8APxFeYysX" - ], - "license": "MIT" - }, - "contracts/financial/LedgerVault.sol": { - "keccak256": "0x501aab236fcb7377a9687fe5c555b074861244bf8fe8b7d63ddc34f29f7f3b08", - "urls": [ - "bzz-raw://705dd2f42064b55be00ce5696ee6fd18626ff0f39afe3e7904f45c04ca08afcf", - "dweb:/ipfs/QmYFci4aRBQQaxP7yMSxnK7sUVvPRZ5g2tPjNAh44F1gk1" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol": { - "keccak256": "0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373", - "urls": [ - "bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447", - "dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { - "keccak256": "0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b", - "urls": [ - "bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609", - "dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol": { - "keccak256": "0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27", - "urls": [ - "bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e", - "dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { - "keccak256": "0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397", - "urls": [ - "bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9", - "dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol": { - "keccak256": "0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5", - "urls": [ - "bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab", - "dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol": { - "keccak256": "0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4", - "urls": [ - "bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e", - "dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol": { - "keccak256": "0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6", - "urls": [ - "bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694", - "dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol": { - "keccak256": "0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2", - "urls": [ - "bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4", - "dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol": { - "keccak256": "0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030", - "urls": [ - "bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c", - "dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol": { - "keccak256": "0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7", - "urls": [ - "bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b", - "dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/IERC165.sol": { - "keccak256": "0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724", - "urls": [ - "bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a", - "dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol": { - "keccak256": "0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486", - "urls": [ - "bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d", - "dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/IERC20.sol": { - "keccak256": "0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c", - "urls": [ - "bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba", - "dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol": { - "keccak256": "0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d", - "urls": [ - "bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196", - "dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol": { - "keccak256": "0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06", - "urls": [ - "bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c", - "dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol": { - "keccak256": "0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c", - "urls": [ - "bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa", - "dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "keccak256": "0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7", - "urls": [ - "bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db", - "dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { - "keccak256": "0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310", - "urls": [ - "bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862", - "dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Address.sol": { - "keccak256": "0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5", - "urls": [ - "bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23", - "dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Errors.sol": { - "keccak256": "0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123", - "urls": [ - "bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf", - "dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Panic.sol": { - "keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a", - "urls": [ - "bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a", - "dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol": { - "keccak256": "0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97", - "urls": [ - "bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b", - "dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/TransientSlot.sol": { - "keccak256": "0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1", - "urls": [ - "bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889", - "dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "keccak256": "0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8", - "urls": [ - "bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621", - "dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/math/Math.sol": { - "keccak256": "0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea", - "urls": [ - "bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d", - "dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol": { - "keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54", - "urls": [ - "bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8", - "dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/types/Time.sol": { - "keccak256": "0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc", - "urls": [ - "bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6", - "dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "storageLayout": { - "storage": [ - { - "astId": 4706, - "contract": "contracts/financial/LedgerVault.sol:LedgerVault", - "label": "_locked", - "offset": 0, - "slot": "0", - "type": "t_mapping(t_address,t_mapping(t_address,t_uint256))" - } - ], - "types": { - "t_address": { "encoding": "inplace", "label": "address", "numberOfBytes": "20" }, - "t_mapping(t_address,t_mapping(t_address,t_uint256))": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => mapping(address => uint256))", - "numberOfBytes": "32", - "value": "t_mapping(t_address,t_uint256)" - }, - "t_mapping(t_address,t_uint256)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => uint256)", - "numberOfBytes": "32", - "value": "t_uint256" - }, - "t_uint256": { "encoding": "inplace", "label": "uint256", "numberOfBytes": "32" } - } - }, - "ast": { - "absolutePath": "contracts/financial/LedgerVault.sol", - "id": 5070, - "exportedSymbols": { - "AccessControlledUpgradeable": [2660], - "BalanceOperatorUpgradeable": [2824], - "FinancialOps": [2031], - "Initializable": [50462], - "LedgerVault": [5069], - "ReentrancyGuardTransientUpgradeable": [52553], - "UUPSUpgradeable": [50644] - }, - "nodeType": "SourceUnit", - "src": "124:10184:54", - "nodes": [ - { - "id": 4673, - "nodeType": "PragmaDirective", - "src": "124:23:54", - "nodes": [], - "literals": ["solidity", "0.8", ".26"] - }, - { - "id": 4675, - "nodeType": "ImportDirective", - "src": "149:98:54", - "nodes": [], - "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "nameLocation": "-1:-1:-1", - "scope": 5070, - "sourceUnit": 50463, - "symbolAliases": [ - { - "foreign": { - "id": 4674, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50462, - "src": "158:13:54", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 4677, - "nodeType": "ImportDirective", - "src": "248:102:54", - "nodes": [], - "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 5070, - "sourceUnit": 50645, - "symbolAliases": [ - { - "foreign": { - "id": 4676, - "name": "UUPSUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50644, - "src": "257:15:54", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 4679, - "nodeType": "ImportDirective", - "src": "396:136:54", - "nodes": [], - "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 5070, - "sourceUnit": 52554, - "symbolAliases": [ - { - "foreign": { - "id": 4678, - "name": "ReentrancyGuardTransientUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52553, - "src": "405:35:54", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 4681, - "nodeType": "ImportDirective", - "src": "533:115:54", - "nodes": [], - "absolutePath": "contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol", - "file": "@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 5070, - "sourceUnit": 2661, - "symbolAliases": [ - { - "foreign": { - "id": 4680, - "name": "AccessControlledUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2660, - "src": "542:27:54", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 4683, - "nodeType": "ImportDirective", - "src": "649:113:54", - "nodes": [], - "absolutePath": "contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol", - "file": "@synaps3/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 5070, - "sourceUnit": 2825, - "symbolAliases": [ - { - "foreign": { - "id": 4682, - "name": "BalanceOperatorUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "658:26:54", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 4685, - "nodeType": "ImportDirective", - "src": "763:72:54", - "nodes": [], - "absolutePath": "contracts/core/libraries/FinancialOps.sol", - "file": "@synaps3/core/libraries/FinancialOps.sol", - "nameLocation": "-1:-1:-1", - "scope": 5070, - "sourceUnit": 2032, - "symbolAliases": [ - { - "foreign": { - "id": 4684, - "name": "FinancialOps", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2031, - "src": "772:12:54", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 5069, - "nodeType": "ContractDefinition", - "src": "1146:9161:54", - "nodes": [ - { - "id": 4699, - "nodeType": "UsingForDirective", - "src": "1321:31:54", - "nodes": [], - "global": false, - "libraryName": { - "id": 4697, - "name": "FinancialOps", - "nameLocations": ["1327:12:54"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2031, - "src": "1327:12:54" - }, - "typeName": { - "id": 4698, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1344:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - } - }, - { - "id": 4706, - "nodeType": "VariableDeclaration", - "src": "1420:63:54", - "nodes": [], - "constant": false, - "documentation": { - "id": 4700, - "nodeType": "StructuredDocumentation", - "src": "1358:57:54", - "text": "@dev Holds the registry of locked funds for accounts." - }, - "mutability": "mutable", - "name": "_locked", - "nameLocation": "1476:7:54", - "scope": 5069, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 4705, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 4701, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1428:7:54", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "nodeType": "Mapping", - "src": "1420:47:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 4704, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 4702, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1447:7:54", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "nodeType": "Mapping", - "src": "1439:27:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 4703, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1458:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - } - }, - "visibility": "private" - }, - { - "id": 4715, - "nodeType": "EventDefinition", - "src": "1770:85:54", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 4707, - "nodeType": "StructuredDocumentation", - "src": "1490:275:54", - "text": "@notice Emitted when funds are locked in the ledger.\n @param account The address of the account whose funds were locked.\n @param amount The amount of funds that were locked.\n @param currency The address of the currency in which the funds were locked." - }, - "eventSelector": "a372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f62", - "name": "FundsLocked", - "nameLocation": "1776:11:54", - "parameters": { - "id": 4714, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4709, - "indexed": true, - "mutability": "mutable", - "name": "account", - "nameLocation": "1804:7:54", - "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "1788:23:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4708, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1788:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4711, - "indexed": false, - "mutability": "mutable", - "name": "amount", - "nameLocation": "1821:6:54", - "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "1813:14:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4710, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1813:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4713, - "indexed": true, - "mutability": "mutable", - "name": "currency", - "nameLocation": "1845:8:54", - "nodeType": "VariableDeclaration", - "scope": 4715, - "src": "1829:24:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4712, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1829:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "1787:67:54" - } - }, - { - "id": 4724, - "nodeType": "EventDefinition", - "src": "2151:87:54", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 4716, - "nodeType": "StructuredDocumentation", - "src": "1861:285:54", - "text": "@notice Emitted when locked funds are successfully released.\n @param account The address of the account whose funds were released.\n @param amount The amount of funds that were locked.\n @param currency The address of the currency in which the funds were locked." - }, - "eventSelector": "29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc", - "name": "FundsReleased", - "nameLocation": "2157:13:54", - "parameters": { - "id": 4723, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4718, - "indexed": true, - "mutability": "mutable", - "name": "account", - "nameLocation": "2187:7:54", - "nodeType": "VariableDeclaration", - "scope": 4724, - "src": "2171:23:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4717, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2171:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4720, - "indexed": false, - "mutability": "mutable", - "name": "amount", - "nameLocation": "2204:6:54", - "nodeType": "VariableDeclaration", - "scope": 4724, - "src": "2196:14:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4719, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2196:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4722, - "indexed": true, - "mutability": "mutable", - "name": "currency", - "nameLocation": "2228:8:54", - "nodeType": "VariableDeclaration", - "scope": 4724, - "src": "2212:24:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4721, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2212:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "2170:67:54" - } - }, - { - "id": 4733, - "nodeType": "EventDefinition", - "src": "2517:86:54", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 4725, - "nodeType": "StructuredDocumentation", - "src": "2244:268:54", - "text": "@notice Emitted when locked funds are successfully claimed.\n @param claimer The address of the entity claiming the funds.\n @param amount The amount of funds claimed.\n @param currency The address of the currency in which the funds were claimed." - }, - "eventSelector": "07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563", - "name": "FundsClaimed", - "nameLocation": "2523:12:54", - "parameters": { - "id": 4732, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4727, - "indexed": true, - "mutability": "mutable", - "name": "claimer", - "nameLocation": "2552:7:54", - "nodeType": "VariableDeclaration", - "scope": 4733, - "src": "2536:23:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2536:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4729, - "indexed": false, - "mutability": "mutable", - "name": "amount", - "nameLocation": "2569:6:54", - "nodeType": "VariableDeclaration", - "scope": 4733, - "src": "2561:14:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4728, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2561:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4731, - "indexed": true, - "mutability": "mutable", - "name": "currency", - "nameLocation": "2593:8:54", - "nodeType": "VariableDeclaration", - "scope": 4733, - "src": "2577:24:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4730, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2577:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "2535:67:54" - } - }, - { - "id": 4736, - "nodeType": "ErrorDefinition", - "src": "2764:22:54", - "nodes": [], - "documentation": { - "id": 4734, - "nodeType": "StructuredDocumentation", - "src": "2609:150:54", - "text": "@notice Thrown when there are no available funds to lock.\n @dev This error occurs if an account attempts to lock more funds than available." - }, - "errorSelector": "a9e575de", - "name": "NoFundsToLock", - "nameLocation": "2770:13:54", - "parameters": { - "id": 4735, - "nodeType": "ParameterList", - "parameters": [], - "src": "2783:2:54" - } - }, - { - "id": 4739, - "nodeType": "ErrorDefinition", - "src": "2980:23:54", - "nodes": [], - "documentation": { - "id": 4737, - "nodeType": "StructuredDocumentation", - "src": "2792:183:54", - "text": "@notice Thrown when there are no locked funds available to claim.\n @dev This error occurs if an account or claimer tries to claim funds that are not locked or insufficient." - }, - "errorSelector": "dff46e2b", - "name": "NoFundsToClaim", - "nameLocation": "2986:14:54", - "parameters": { - "id": 4738, - "nodeType": "ParameterList", - "parameters": [], - "src": "3000:2:54" - } - }, - { - "id": 4742, - "nodeType": "ErrorDefinition", - "src": "3192:25:54", - "nodes": [], - "documentation": { - "id": 4740, - "nodeType": "StructuredDocumentation", - "src": "3009:178:54", - "text": "@notice Thrown when there are no locked funds available to release.\n @dev This error occurs if an operator tries to releases funds that are not locked or insufficient." - }, - "errorSelector": "b7cc22bc", - "name": "NoFundsToRelease", - "nameLocation": "3198:16:54", - "parameters": { - "id": 4741, - "nodeType": "ParameterList", - "parameters": [], - "src": "3214:2:54" - } - }, - { - "id": 4750, - "nodeType": "FunctionDefinition", - "src": "3276:243:54", - "nodes": [], - "body": { - "id": 4749, - "nodeType": "Block", - "src": "3290:229:54", - "nodes": [], - "statements": [ - { - "documentation": "https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5", - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4746, - "name": "_disableInitializers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50430, - "src": "3490:20:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3490:22:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4748, - "nodeType": "ExpressionStatement", - "src": "3490:22:54" - } - ] - }, - "documentation": { - "id": 4743, - "nodeType": "StructuredDocumentation", - "src": "3223:48:54", - "text": "@custom:oz-upgrades-unsafe-allow constructor" - }, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 4744, - "nodeType": "ParameterList", - "parameters": [], - "src": "3287:2:54" - }, - "returnParameters": { - "id": 4745, - "nodeType": "ParameterList", - "parameters": [], - "src": "3290:0:54" - }, - "scope": 5069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 4771, - "nodeType": "FunctionDefinition", - "src": "3525:228:54", - "nodes": [], - "body": { - "id": 4770, - "nodeType": "Block", - "src": "3587:166:54", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4757, - "name": "__UUPSUpgradeable_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50516, - "src": "3597:22:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3597:24:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4759, - "nodeType": "ExpressionStatement", - "src": "3597:24:54" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4760, - "name": "__BalanceOperator_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "3631:22:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3631:24:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4762, - "nodeType": "ExpressionStatement", - "src": "3631:24:54" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4763, - "name": "__ReentrancyGuardTransient_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52502, - "src": "3665:31:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3665:33:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4765, - "nodeType": "ExpressionStatement", - "src": "3665:33:54" - }, - { - "expression": { - "arguments": [ - { - "id": 4767, - "name": "accessManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4752, - "src": "3732:13:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], - "id": 4766, - "name": "__AccessControlled_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2595, - "src": "3708:23:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3708:38:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4769, - "nodeType": "ExpressionStatement", - "src": "3708:38:54" - } - ] - }, - "functionSelector": "c4d66de8", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 4755, - "kind": "modifierInvocation", - "modifierName": { - "id": 4754, - "name": "initializer", - "nameLocations": ["3575:11:54"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50316, - "src": "3575:11:54" - }, - "nodeType": "ModifierInvocation", - "src": "3575:11:54" - } - ], - "name": "initialize", - "nameLocation": "3534:10:54", - "parameters": { - "id": 4753, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4752, - "mutability": "mutable", - "name": "accessManager", - "nameLocation": "3553:13:54", - "nodeType": "VariableDeclaration", - "scope": 4771, - "src": "3545:21:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4751, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3545:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "3544:23:54" - }, - "returnParameters": { - "id": 4756, - "nodeType": "ParameterList", - "parameters": [], - "src": "3587:0:54" - }, - "scope": 5069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 4802, - "nodeType": "FunctionDefinition", - "src": "4056:270:54", - "nodes": [], - "body": { - "id": 4801, - "nodeType": "Block", - "src": "4153:173:54", - "nodes": [], - "statements": [ - { - "assignments": [4784], - "declarations": [ - { - "constant": false, - "id": 4784, - "mutability": "mutable", - "name": "confirmed", - "nameLocation": "4171:9:54", - "nodeType": "VariableDeclaration", - "scope": 4801, - "src": "4163:17:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4783, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4163:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4790, - "initialValue": { - "arguments": [ - { - "id": 4786, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4774, - "src": "4192:9:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4787, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4776, - "src": "4203:6:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4788, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4778, - "src": "4211:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4785, - "name": "_deposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2744, - "src": "4183:8:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,uint256,address) returns (uint256)" - } - }, - "id": 4789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4183:37:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4163:57:54" - }, - { - "eventCall": { - "arguments": [ - { - "id": 4792, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4774, - "src": "4250:9:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 4793, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4261:3:54", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4265:6:54", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4261:10:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4795, - "name": "confirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4784, - "src": "4273:9:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4796, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4778, - "src": "4284:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4791, - "name": "FundsDeposited", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "4235:14:54", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,address,uint256,address)" - } - }, - "id": 4797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4235:58:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4798, - "nodeType": "EmitStatement", - "src": "4230:63:54" - }, - { - "expression": { - "id": 4799, - "name": "confirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4784, - "src": "4310:9:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "functionReturnParameters": 4782, - "id": 4800, - "nodeType": "Return", - "src": "4303:16:54" - } - ] - }, - "baseFunctions": [946], - "documentation": { - "id": 4772, - "nodeType": "StructuredDocumentation", - "src": "3759:292:54", - "text": "@notice Deposits a specified amount of currency into the pool for a given recipient.\n @param recipient The address of the account to credit with the deposit.\n @param amount The amount of currency to deposit.\n @param currency The address of the ERC20 token to deposit." - }, - "functionSelector": "f45346dc", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deposit", - "nameLocation": "4065:7:54", - "parameters": { - "id": 4779, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4774, - "mutability": "mutable", - "name": "recipient", - "nameLocation": "4081:9:54", - "nodeType": "VariableDeclaration", - "scope": 4802, - "src": "4073:17:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4773, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4073:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4776, - "mutability": "mutable", - "name": "amount", - "nameLocation": "4100:6:54", - "nodeType": "VariableDeclaration", - "scope": 4802, - "src": "4092:14:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4092:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4778, - "mutability": "mutable", - "name": "currency", - "nameLocation": "4116:8:54", - "nodeType": "VariableDeclaration", - "scope": 4802, - "src": "4108:16:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4777, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4108:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "4072:53:54" - }, - "returnParameters": { - "id": 4782, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4781, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4802, - "src": "4144:7:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4780, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4144:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - } - ], - "src": "4143:9:54" - }, - "scope": 5069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 4835, - "nodeType": "FunctionDefinition", - "src": "4797:285:54", - "nodes": [], - "body": { - "id": 4834, - "nodeType": "Block", - "src": "4908:174:54", - "nodes": [], - "statements": [ - { - "assignments": [4817], - "declarations": [ - { - "constant": false, - "id": 4817, - "mutability": "mutable", - "name": "confirmed", - "nameLocation": "4926:9:54", - "nodeType": "VariableDeclaration", - "scope": 4834, - "src": "4918:17:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4816, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4918:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4823, - "initialValue": { - "arguments": [ - { - "id": 4819, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4805, - "src": "4948:9:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4820, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4807, - "src": "4959:6:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4821, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4809, - "src": "4967:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4818, - "name": "_withdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2784, - "src": "4938:9:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,uint256,address) returns (uint256)" - } - }, - "id": 4822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4938:38:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4918:58:54" - }, - { - "eventCall": { - "arguments": [ - { - "id": 4825, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4805, - "src": "5006:9:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 4826, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5017:3:54", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5021:6:54", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "5017:10:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4828, - "name": "confirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4817, - "src": "5029:9:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4829, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4809, - "src": "5040:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4824, - "name": "FundsWithdrawn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "4991:14:54", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,address,uint256,address)" - } - }, - "id": 4830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4991:58:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4831, - "nodeType": "EmitStatement", - "src": "4986:63:54" - }, - { - "expression": { - "id": 4832, - "name": "confirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4817, - "src": "5066:9:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "functionReturnParameters": 4815, - "id": 4833, - "nodeType": "Return", - "src": "5059:16:54" - } - ] - }, - "baseFunctions": [1034], - "documentation": { - "id": 4803, - "nodeType": "StructuredDocumentation", - "src": "4374:418:54", - "text": "@notice Withdraws tokens from the contract to a specified recipient's address.\n @dev This function withdraws funds from the caller's balance and transfers them to the recipient.\n @param recipient The address that will receive the withdrawn tokens.\n @param amount The amount of tokens to withdraw.\n @param currency The currency to associate fees with. Use address(0) for the native coin." - }, - "functionSelector": "69328dec", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 4812, - "kind": "modifierInvocation", - "modifierName": { - "id": 4811, - "name": "nonReentrant", - "nameLocations": ["4877:12:54"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 52496, - "src": "4877:12:54" - }, - "nodeType": "ModifierInvocation", - "src": "4877:12:54" - } - ], - "name": "withdraw", - "nameLocation": "4806:8:54", - "parameters": { - "id": 4810, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4805, - "mutability": "mutable", - "name": "recipient", - "nameLocation": "4823:9:54", - "nodeType": "VariableDeclaration", - "scope": 4835, - "src": "4815:17:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4804, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4815:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4807, - "mutability": "mutable", - "name": "amount", - "nameLocation": "4842:6:54", - "nodeType": "VariableDeclaration", - "scope": 4835, - "src": "4834:14:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4806, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4834:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4809, - "mutability": "mutable", - "name": "currency", - "nameLocation": "4858:8:54", - "nodeType": "VariableDeclaration", - "scope": 4835, - "src": "4850:16:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4808, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4850:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "4814:53:54" - }, - "returnParameters": { - "id": 4815, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4814, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4835, - "src": "4899:7:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4813, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4899:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - } - ], - "src": "4898:9:54" - }, - "scope": 5069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 4866, - "nodeType": "FunctionDefinition", - "src": "5555:274:54", - "nodes": [], - "body": { - "id": 4865, - "nodeType": "Block", - "src": "5653:176:54", - "nodes": [], - "statements": [ - { - "assignments": [4848], - "declarations": [ - { - "constant": false, - "id": 4848, - "mutability": "mutable", - "name": "confirmed", - "nameLocation": "5671:9:54", - "nodeType": "VariableDeclaration", - "scope": 4865, - "src": "5663:17:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4847, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5663:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4854, - "initialValue": { - "arguments": [ - { - "id": 4850, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4838, - "src": "5693:9:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4851, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4840, - "src": "5704:6:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4852, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4842, - "src": "5712:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4849, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2823, - "src": "5683:9:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,uint256,address) returns (uint256)" - } - }, - "id": 4853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5683:38:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5663:58:54" - }, - { - "eventCall": { - "arguments": [ - { - "id": 4856, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4838, - "src": "5753:9:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 4857, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5764:3:54", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5768:6:54", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "5764:10:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4859, - "name": "confirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4848, - "src": "5776:9:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4860, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4842, - "src": "5787:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4855, - "name": "FundsTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 980, - "src": "5736:16:54", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,address,uint256,address)" - } - }, - "id": 4861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5736:60:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4862, - "nodeType": "EmitStatement", - "src": "5731:65:54" - }, - { - "expression": { - "id": 4863, - "name": "confirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4848, - "src": "5813:9:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "functionReturnParameters": 4846, - "id": 4864, - "nodeType": "Return", - "src": "5806:16:54" - } - ] - }, - "baseFunctions": [992], - "documentation": { - "id": 4836, - "nodeType": "StructuredDocumentation", - "src": "5088:462:54", - "text": "@notice Transfers a specified amount of currency from the caller's balance to a given recipient.\n @dev Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.\n @param recipient The address of the account to credit with the transfer.\n @param amount The amount of currency to transfer.\n @param currency The address of the ERC20 token to transfer. Use `address(0)` for native tokens." - }, - "functionSelector": "dbba0f01", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nameLocation": "5564:8:54", - "parameters": { - "id": 4843, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4838, - "mutability": "mutable", - "name": "recipient", - "nameLocation": "5581:9:54", - "nodeType": "VariableDeclaration", - "scope": 4866, - "src": "5573:17:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4837, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5573:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4840, - "mutability": "mutable", - "name": "amount", - "nameLocation": "5600:6:54", - "nodeType": "VariableDeclaration", - "scope": 4866, - "src": "5592:14:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4839, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5592:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4842, - "mutability": "mutable", - "name": "currency", - "nameLocation": "5616:8:54", - "nodeType": "VariableDeclaration", - "scope": 4866, - "src": "5608:16:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4841, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5608:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "5572:53:54" - }, - "returnParameters": { - "id": 4846, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4845, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4866, - "src": "5644:7:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4844, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5644:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - } - ], - "src": "5643:9:54" - }, - "scope": 5069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 4911, - "nodeType": "FunctionDefinition", - "src": "6301:373:54", - "nodes": [], - "body": { - "id": 4910, - "nodeType": "Block", - "src": "6404:270:54", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 4881, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4869, - "src": "6435:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4882, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4873, - "src": "6444:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4880, - "name": "getLedgerBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3051, - "src": "6418:16:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 4883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6418:35:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 4884, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4871, - "src": "6456:6:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "6418:44:54", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 4889, - "nodeType": "IfStatement", - "src": "6414:72:54", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4886, - "name": "NoFundsToLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4736, - "src": "6471:13:54", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 4887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6471:15:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_error", "typeString": "error" } - }, - "id": 4888, - "nodeType": "RevertStatement", - "src": "6464:22:54" - } - }, - { - "expression": { - "arguments": [ - { - "id": 4891, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4869, - "src": "6512:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4892, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4871, - "src": "6521:6:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4893, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4873, - "src": "6529:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4890, - "name": "_subLedgerEntry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3146, - "src": "6496:15:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 4894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6496:42:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4895, - "nodeType": "ExpressionStatement", - "src": "6496:42:54" - }, - { - "expression": { - "arguments": [ - { - "id": 4897, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4869, - "src": "6565:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4898, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4871, - "src": "6574:6:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4899, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4873, - "src": "6582:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4896, - "name": "_sumLockedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5041, - "src": "6548:16:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 4900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6548:43:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4901, - "nodeType": "ExpressionStatement", - "src": "6548:43:54" - }, - { - "eventCall": { - "arguments": [ - { - "id": 4903, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4869, - "src": "6618:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4904, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4871, - "src": "6627:6:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4905, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4873, - "src": "6635:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4902, - "name": "FundsLocked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4715, - "src": "6606:11:54", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 4906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6606:38:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4907, - "nodeType": "EmitStatement", - "src": "6601:43:54" - }, - { - "expression": { - "id": 4908, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4871, - "src": "6661:6:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "functionReturnParameters": 4879, - "id": 4909, - "nodeType": "Return", - "src": "6654:13:54" - } - ] - }, - "documentation": { - "id": 4867, - "nodeType": "StructuredDocumentation", - "src": "5835:461:54", - "text": "@notice Locks a specific amount of funds for a given account.\n @dev The funds are immobilized and cannot be withdrawn or transferred until released or claimed.\n Only operator role can handle this methods.\n @param account The address of the account for which the funds will be locked.\n @param amount The amount of funds to lock.\n @param currency The currency to associate lock with. Use address(0) for the native coin." - }, - "functionSelector": "4bbc170a", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 4876, - "kind": "modifierInvocation", - "modifierName": { - "id": 4875, - "name": "restricted", - "nameLocations": ["6375:10:54"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 47916, - "src": "6375:10:54" - }, - "nodeType": "ModifierInvocation", - "src": "6375:10:54" - } - ], - "name": "lock", - "nameLocation": "6310:4:54", - "parameters": { - "id": 4874, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4869, - "mutability": "mutable", - "name": "account", - "nameLocation": "6323:7:54", - "nodeType": "VariableDeclaration", - "scope": 4911, - "src": "6315:15:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4868, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6315:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4871, - "mutability": "mutable", - "name": "amount", - "nameLocation": "6340:6:54", - "nodeType": "VariableDeclaration", - "scope": 4911, - "src": "6332:14:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4870, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6332:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4873, - "mutability": "mutable", - "name": "currency", - "nameLocation": "6356:8:54", - "nodeType": "VariableDeclaration", - "scope": 4911, - "src": "6348:16:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4872, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6348:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "6314:51:54" - }, - "returnParameters": { - "id": 4879, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4878, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4911, - "src": "6395:7:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4877, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6395:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - } - ], - "src": "6394:9:54" - }, - "scope": 5069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 4956, - "nodeType": "FunctionDefinition", - "src": "6991:381:54", - "nodes": [], - "body": { - "id": 4955, - "nodeType": "Block", - "src": "7097:275:54", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 4926, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4914, - "src": "7128:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4927, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4918, - "src": "7137:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4925, - "name": "_getLockedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "7111:16:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 4928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7111:35:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 4929, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4916, - "src": "7149:6:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "7111:44:54", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 4934, - "nodeType": "IfStatement", - "src": "7107:75:54", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4931, - "name": "NoFundsToRelease", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4742, - "src": "7164:16:54", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 4932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7164:18:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_error", "typeString": "error" } - }, - "id": 4933, - "nodeType": "RevertStatement", - "src": "7157:25:54" - } - }, - { - "expression": { - "arguments": [ - { - "id": 4936, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4914, - "src": "7209:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4937, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4916, - "src": "7218:6:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4938, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4918, - "src": "7226:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4935, - "name": "_subLockedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "7192:16:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 4939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7192:43:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4940, - "nodeType": "ExpressionStatement", - "src": "7192:43:54" - }, - { - "expression": { - "arguments": [ - { - "id": 4942, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4914, - "src": "7261:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4943, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4916, - "src": "7270:6:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4944, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4918, - "src": "7278:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4941, - "name": "_sumLedgerEntry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3119, - "src": "7245:15:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 4945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7245:42:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4946, - "nodeType": "ExpressionStatement", - "src": "7245:42:54" - }, - { - "eventCall": { - "arguments": [ - { - "id": 4948, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4914, - "src": "7316:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4949, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4916, - "src": "7325:6:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4950, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4918, - "src": "7333:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4947, - "name": "FundsReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4724, - "src": "7302:13:54", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 4951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7302:40:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4952, - "nodeType": "EmitStatement", - "src": "7297:45:54" - }, - { - "expression": { - "id": 4953, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4916, - "src": "7359:6:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "functionReturnParameters": 4924, - "id": 4954, - "nodeType": "Return", - "src": "7352:13:54" - } - ] - }, - "documentation": { - "id": 4912, - "nodeType": "StructuredDocumentation", - "src": "6680:306:54", - "text": "@notice Release a specific amount of funds from locked pool.\n @param account The address of the account for which the funds will be released.\n @param amount The amount of funds to release.\n @param currency The currency to associate release with. Use address(0) for the native coin." - }, - "functionSelector": "15f41501", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 4921, - "kind": "modifierInvocation", - "modifierName": { - "id": 4920, - "name": "restricted", - "nameLocations": ["7068:10:54"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 47916, - "src": "7068:10:54" - }, - "nodeType": "ModifierInvocation", - "src": "7068:10:54" - } - ], - "name": "release", - "nameLocation": "7000:7:54", - "parameters": { - "id": 4919, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4914, - "mutability": "mutable", - "name": "account", - "nameLocation": "7016:7:54", - "nodeType": "VariableDeclaration", - "scope": 4956, - "src": "7008:15:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4913, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7008:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4916, - "mutability": "mutable", - "name": "amount", - "nameLocation": "7033:6:54", - "nodeType": "VariableDeclaration", - "scope": 4956, - "src": "7025:14:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4915, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7025:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4918, - "mutability": "mutable", - "name": "currency", - "nameLocation": "7049:8:54", - "nodeType": "VariableDeclaration", - "scope": 4956, - "src": "7041:16:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4917, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7041:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "7007:51:54" - }, - "returnParameters": { - "id": 4924, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4923, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4956, - "src": "7088:7:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4922, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7088:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - } - ], - "src": "7087:9:54" - }, - "scope": 5069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 5003, - "nodeType": "FunctionDefinition", - "src": "7825:385:54", - "nodes": [], - "body": { - "id": 5002, - "nodeType": "Block", - "src": "7929:281:54", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 4971, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4959, - "src": "7960:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4972, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4963, - "src": "7969:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4970, - "name": "_getLockedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "7943:16:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 4973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7943:35:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 4974, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4961, - "src": "7981:6:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "7943:44:54", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 4979, - "nodeType": "IfStatement", - "src": "7939:73:54", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4976, - "name": "NoFundsToClaim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4739, - "src": "7996:14:54", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 4977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7996:16:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_error", "typeString": "error" } - }, - "id": 4978, - "nodeType": "RevertStatement", - "src": "7989:23:54" - } - }, - { - "expression": { - "arguments": [ - { - "id": 4981, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4959, - "src": "8039:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4982, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4961, - "src": "8048:6:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4983, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4963, - "src": "8056:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4980, - "name": "_subLockedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "8022:16:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 4984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8022:43:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4985, - "nodeType": "ExpressionStatement", - "src": "8022:43:54" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 4987, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8094:3:54", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8098:6:54", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "8094:10:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4989, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4961, - "src": "8106:6:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4990, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4963, - "src": "8114:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4986, - "name": "_sumLedgerEntry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3119, - "src": "8078:15:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 4991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8078:45:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4992, - "nodeType": "ExpressionStatement", - "src": "8078:45:54" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 4994, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8151:3:54", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8155:6:54", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "8151:10:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4996, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4961, - "src": "8163:6:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4997, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4963, - "src": "8171:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 4993, - "name": "FundsClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4733, - "src": "8138:12:54", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 4998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8138:42:54", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 4999, - "nodeType": "EmitStatement", - "src": "8133:47:54" - }, - { - "expression": { - "id": 5000, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4961, - "src": "8197:6:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "functionReturnParameters": 4969, - "id": 5001, - "nodeType": "Return", - "src": "8190:13:54" - } - ] - }, - "documentation": { - "id": 4957, - "nodeType": "StructuredDocumentation", - "src": "7378:442:54", - "text": "@notice Claims a specific amount of locked funds on behalf of a claimer.\n @dev The claimer is authorized to process the funds from the account.\n Only operator role can handle this methods.\n @param account The address of the account whose funds are being claimed.\n @param amount The amount of funds to claim.\n @param currency The currency to associate claim with. Use address(0) for the native coin." - }, - "functionSelector": "9e96a260", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 4966, - "kind": "modifierInvocation", - "modifierName": { - "id": 4965, - "name": "restricted", - "nameLocations": ["7900:10:54"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 47916, - "src": "7900:10:54" - }, - "nodeType": "ModifierInvocation", - "src": "7900:10:54" - } - ], - "name": "claim", - "nameLocation": "7834:5:54", - "parameters": { - "id": 4964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4959, - "mutability": "mutable", - "name": "account", - "nameLocation": "7848:7:54", - "nodeType": "VariableDeclaration", - "scope": 5003, - "src": "7840:15:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4958, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7840:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4961, - "mutability": "mutable", - "name": "amount", - "nameLocation": "7865:6:54", - "nodeType": "VariableDeclaration", - "scope": 5003, - "src": "7857:14:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4960, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7857:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4963, - "mutability": "mutable", - "name": "currency", - "nameLocation": "7881:8:54", - "nodeType": "VariableDeclaration", - "scope": 5003, - "src": "7873:16:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 4962, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7873:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "7839:51:54" - }, - "returnParameters": { - "id": 4969, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4968, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5003, - "src": "7920:7:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 4967, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7920:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - } - ], - "src": "7919:9:54" - }, - "scope": 5069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 5022, - "nodeType": "FunctionDefinition", - "src": "8632:138:54", - "nodes": [], - "body": { - "id": 5021, - "nodeType": "Block", - "src": "8717:53:54", - "nodes": [], - "statements": [ - { - "expression": { - "id": 5019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "id": 5013, - "name": "_locked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4706, - "src": "8727:7:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 5016, - "indexExpression": { - "id": 5014, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5006, - "src": "8735:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8727:16:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5017, - "indexExpression": { - "id": 5015, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5010, - "src": "8744:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8727:26:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "id": 5018, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5008, - "src": "8757:6:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "8727:36:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "id": 5020, - "nodeType": "ExpressionStatement", - "src": "8727:36:54" - } - ] - }, - "documentation": { - "id": 5004, - "nodeType": "StructuredDocumentation", - "src": "8216:411:54", - "text": "@notice Reduces the locked funds of an account for a specific currency.\n @dev Deducts the specified `amount` from the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked funds are being reduced.\n @param amount The amount to subtract from the locked balance.\n @param currency The address of the currency being reduced." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_subLockedAmount", - "nameLocation": "8641:16:54", - "parameters": { - "id": 5011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5006, - "mutability": "mutable", - "name": "account", - "nameLocation": "8666:7:54", - "nodeType": "VariableDeclaration", - "scope": 5022, - "src": "8658:15:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5005, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8658:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5008, - "mutability": "mutable", - "name": "amount", - "nameLocation": "8683:6:54", - "nodeType": "VariableDeclaration", - "scope": 5022, - "src": "8675:14:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 5007, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8675:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5010, - "mutability": "mutable", - "name": "currency", - "nameLocation": "8699:8:54", - "nodeType": "VariableDeclaration", - "scope": 5022, - "src": "8691:16:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5009, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8691:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "8657:51:54" - }, - "returnParameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [], - "src": "8717:0:54" - }, - "scope": 5069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "id": 5041, - "nodeType": "FunctionDefinition", - "src": "9186:138:54", - "nodes": [], - "body": { - "id": 5040, - "nodeType": "Block", - "src": "9271:53:54", - "nodes": [], - "statements": [ - { - "expression": { - "id": 5038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "id": 5032, - "name": "_locked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4706, - "src": "9281:7:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 5035, - "indexExpression": { - "id": 5033, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5025, - "src": "9289:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9281:16:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5036, - "indexExpression": { - "id": 5034, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5029, - "src": "9298:8:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9281:26:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 5037, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5027, - "src": "9311:6:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "9281:36:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "id": 5039, - "nodeType": "ExpressionStatement", - "src": "9281:36:54" - } - ] - }, - "documentation": { - "id": 5023, - "nodeType": "StructuredDocumentation", - "src": "8776:405:54", - "text": "@notice Increases the locked funds of an account for a specific currency.\n @dev Adds the specified `amount` to the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked funds are being increased.\n @param amount The amount to add to the locked balance.\n @param currency The address of the currency being increased." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_sumLockedAmount", - "nameLocation": "9195:16:54", - "parameters": { - "id": 5030, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5025, - "mutability": "mutable", - "name": "account", - "nameLocation": "9220:7:54", - "nodeType": "VariableDeclaration", - "scope": 5041, - "src": "9212:15:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5024, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9212:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5027, - "mutability": "mutable", - "name": "amount", - "nameLocation": "9237:6:54", - "nodeType": "VariableDeclaration", - "scope": 5041, - "src": "9229:14:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 5026, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9229:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5029, - "mutability": "mutable", - "name": "currency", - "nameLocation": "9253:8:54", - "nodeType": "VariableDeclaration", - "scope": 5041, - "src": "9245:16:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5028, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9245:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "9211:51:54" - }, - "returnParameters": { - "id": 5031, - "nodeType": "ParameterList", - "parameters": [], - "src": "9271:0:54" - }, - "scope": 5069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "id": 5058, - "nodeType": "FunctionDefinition", - "src": "9775:142:54", - "nodes": [], - "body": { - "id": 5057, - "nodeType": "Block", - "src": "9867:50:54", - "nodes": [], - "statements": [ - { - "expression": { - "baseExpression": { - "baseExpression": { - "id": 5051, - "name": "_locked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4706, - "src": "9884:7:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 5053, - "indexExpression": { - "id": 5052, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5044, - "src": "9892:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9884:16:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5055, - "indexExpression": { - "id": 5054, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5046, - "src": "9901:8:54", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9884:26:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "functionReturnParameters": 5050, - "id": 5056, - "nodeType": "Return", - "src": "9877:33:54" - } - ] - }, - "documentation": { - "id": 5042, - "nodeType": "StructuredDocumentation", - "src": "9330:440:54", - "text": "@notice Retrieves the locked balance of an account for a specific currency.\n @dev Returns the value stored in the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked balance is being queried.\n @param currency The address of the currency to check the locked balance for.\n @return The locked balance of the specified account for the given currency." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getLockedAmount", - "nameLocation": "9784:16:54", - "parameters": { - "id": 5047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5044, - "mutability": "mutable", - "name": "account", - "nameLocation": "9809:7:54", - "nodeType": "VariableDeclaration", - "scope": 5058, - "src": "9801:15:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5043, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9801:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5046, - "mutability": "mutable", - "name": "currency", - "nameLocation": "9826:8:54", - "nodeType": "VariableDeclaration", - "scope": 5058, - "src": "9818:16:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9818:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "9800:35:54" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5049, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5058, - "src": "9858:7:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 5048, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9858:7:54", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - } - ], - "src": "9857:9:54" - }, - "scope": 5069, - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "id": 5068, - "nodeType": "FunctionDefinition", - "src": "10221:84:54", - "nodes": [], - "body": { - "id": 5067, - "nodeType": "Block", - "src": "10303:2:54", - "nodes": [], - "statements": [] - }, - "baseFunctions": [50598], - "documentation": { - "id": 5059, - "nodeType": "StructuredDocumentation", - "src": "9923:293:54", - "text": "@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-" - }, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 5065, - "kind": "modifierInvocation", - "modifierName": { - "id": 5064, - "name": "onlyAdmin", - "nameLocations": ["10293:9:54"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2578, - "src": "10293:9:54" - }, - "nodeType": "ModifierInvocation", - "src": "10293:9:54" - } - ], - "name": "_authorizeUpgrade", - "nameLocation": "10230:17:54", - "overrides": { - "id": 5063, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "10284:8:54" - }, - "parameters": { - "id": 5062, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5061, - "mutability": "mutable", - "name": "newImplementation", - "nameLocation": "10256:17:54", - "nodeType": "VariableDeclaration", - "scope": 5068, - "src": "10248:25:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10248:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "10247:27:54" - }, - "returnParameters": { - "id": 5066, - "nodeType": "ParameterList", - "parameters": [], - "src": "10303:0:54" - }, - "scope": 5069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 4687, - "name": "Initializable", - "nameLocations": ["1174:13:54"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50462, - "src": "1174:13:54" - }, - "id": 4688, - "nodeType": "InheritanceSpecifier", - "src": "1174:13:54" - }, - { - "baseName": { - "id": 4689, - "name": "UUPSUpgradeable", - "nameLocations": ["1193:15:54"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50644, - "src": "1193:15:54" - }, - "id": 4690, - "nodeType": "InheritanceSpecifier", - "src": "1193:15:54" - }, - { - "baseName": { - "id": 4691, - "name": "AccessControlledUpgradeable", - "nameLocations": ["1214:27:54"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2660, - "src": "1214:27:54" - }, - "id": 4692, - "nodeType": "InheritanceSpecifier", - "src": "1214:27:54" - }, - { - "baseName": { - "id": 4693, - "name": "ReentrancyGuardTransientUpgradeable", - "nameLocations": ["1247:35:54"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 52553, - "src": "1247:35:54" - }, - "id": 4694, - "nodeType": "InheritanceSpecifier", - "src": "1247:35:54" - }, - { - "baseName": { - "id": 4695, - "name": "BalanceOperatorUpgradeable", - "nameLocations": ["1288:26:54"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2824, - "src": "1288:26:54" - }, - "id": 4696, - "nodeType": "InheritanceSpecifier", - "src": "1288:26:54" - } - ], - "canonicalName": "LedgerVault", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 4686, - "nodeType": "StructuredDocumentation", - "src": "837:309:54", - "text": "@title LedgerVault\n @notice A vault contract designed to store, lock, release, and manage funds securely.\n @dev This contract includes administrative methods (`restricted`) and general user methods.\n Supports operations such as deposits, withdrawals, transfers, and locked funds management." - }, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 5069, 2824, 963, 993, 947, 1035, 3156, 1049, 52553, 2660, 48089, 53586, 52254, 50644, - 59214, 50462 - ], - "name": "LedgerVault", - "nameLocation": "1155:11:54", - "scope": 5070, - "usedErrors": [ - 969, 1011, 1769, 1773, 2560, 4736, 4739, 4742, 50225, 50228, 50489, 50494, 52485, 53557, - 53563, 53567, 59409, 59422, 60999, 61705, 61997 - ], - "usedEvents": [934, 980, 1022, 4715, 4724, 4733, 50233, 53553, 59136] - } - ], - "license": "MIT" - }, - "id": 54 -} +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collect","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"deposit","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getBalance","inputs":[{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLedgerBalance","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"lock","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"release","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"reserve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdraw","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsClaimed","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsCollected","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsDeposited","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"origin","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsLocked","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsReleased","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsReserved","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsTransferred","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"origin","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsWithdrawn","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"origin","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailDuringDeposit","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailDuringTransfer","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NoFundsToClaim","inputs":[]},{"type":"error","name":"NoFundsToCollect","inputs":[]},{"type":"error","name":"NoFundsToLock","inputs":[]},{"type":"error","name":"NoFundsToRelease","inputs":[]},{"type":"error","name":"NoFundsToReserve","inputs":[]},{"type":"error","name":"NoFundsToTransfer","inputs":[]},{"type":"error","name":"NoFundsToWithdraw","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100e857306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516122b790816100ed8239608051818181610c970152610db60152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610054565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806315f41501146114395780632c2eb94a146112d95780634bbc170a146111885780634f1ef28614610d0f57806352d1902d14610c5257806369328dec14610b4d5780637a9e5e4b14610a585780638fb36037146109a75780639e96a260146108bc578063ad3cb1cc1461080a578063b4fb2ea7146106ab578063bf7e214f1461063b578063c4d66de814610367578063d949b8441461029d578063dbba0f01146101a6578063f45346dc146101225763f8b2cb4f146100d4575f80fd5b3461011e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e576020610116610110611523565b30611f1b565b604051908152f35b5f80fd5b3461011e57602061013e61013536611546565b80939133611d56565b9161014a8184846119ec565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917f2d26b12df00031a51cbd91c763887ccf6992992e54b2701fbe5bd7b2c738a4e291819081015b0390a3604051908152f35b3461011e576101b436611546565b91335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f20541061027557826102156020948433611a5b565b6102208184846119ec565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917fe93251c2a6f732155f1cd84502a2c66884e81835c0d4768a10d81fcd79510be7918190810161019b565b7fd1df6ed0000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461011e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e576102d4611523565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361011e5761035173ffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b3461011e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e5761039e611523565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff821680159081610633575b6001149081610629575b159081610620575b506105f857818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556105a3575b50610461612082565b610469612082565b610471612082565b610479612082565b610481612082565b610489612082565b610491612082565b61049a81611cab565b6104a2612082565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561051057005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610458565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846103ef565b303b1591506103e7565b8491506103dd565b3461011e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461011e576106b936611546565b916107013373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f2054106107e357826107366020948433611a5b565b6107408233612032565b5f527fa8707513830ffbd3c47e0c83d1f5f0270db240ae37bb1f9a13f077f85b949c00845260405f2073ffffffffffffffffffffffffffffffffffffffff82165f52845260405f206107938482546119df565b905573ffffffffffffffffffffffffffffffffffffffff8060405192858452169216907fefe3f8439756d801b1c87c65156763cb37dfe4029063fa02119547331fb60d55853392a4604051908152f35b7ef08faa000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461011e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e57604080519061084781836115b8565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461011e576108ca36611546565b6108d43633611660565b73ffffffffffffffffffffffffffffffffffffffff83165f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f20541061097f57610929818360209561198c565b6109348183336119ec565b73ffffffffffffffffffffffffffffffffffffffff6040519183835216907f07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563843392a3604051908152f35b7fdff46e2b000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461011e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff1615610a505760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610a26565b3461011e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e57610a8f611523565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054163303610b2157803b15610adf57610add90611cab565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461011e57610b5b36611546565b335f9081527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f006020526040902073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f205410610c2a57602092610bbd828433611a5b565b610bc8828483611aca565b73ffffffffffffffffffffffffffffffffffffffff6040519284845216917f823b7dcdbd5806d97a2a3c64fe281a8d31155b2a7dade87fdaa7437c79c12b118573ffffffffffffffffffffffffffffffffffffffff33941692a4604051908152f35b7f67e3990d000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461011e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e5773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610ce75760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e57610d41611523565b6024359067ffffffffffffffff821161011e573660238301121561011e57816004013590610d6e82611626565b91610d7c60405193846115b8565b8083526020830193366024838301011161011e57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115611146575b50610ce7576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa90811561113b575f9161110b575b50156110875773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181611053575b50610eed57847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036110285750823b15610ffd57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610fcb575f8091610add945190845af4610fc5611fcc565b916121e8565b50505034610fd557005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d60201161107f575b8161106f602093836115b8565b8101031261011e57519086610ebc565b3d9150611062565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b61112d915060403d604011611134575b61112581836115b8565b810190612008565b5084610e67565b503d61111b565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610de1565b3461011e5761119636611546565b6111a03633611660565b6111e78373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f2054106112b15773ffffffffffffffffffffffffffffffffffffffff836112318385602097611a5b565b16805f525f845260405f2073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f206112668482546119df565b90557fa372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f628473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fa9e575de000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461011e576112e736611546565b6112f13384612032565b5f527fa8707513830ffbd3c47e0c83d1f5f0270db240ae37bb1f9a13f077f85b949c0060205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f2054106114115760209261134f3382612032565b5f527fa8707513830ffbd3c47e0c83d1f5f0270db240ae37bb1f9a13f077f85b949c00845260405f2073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f206113a2848254611952565b90556113af8284336119ec565b73ffffffffffffffffffffffffffffffffffffffff6040519284845216917fb86f5fa8e97aba565b1ac0fa25de5437a80a39dc9bf20638866c57efd521c98e8573ffffffffffffffffffffffffffffffffffffffff33941692a4604051908152f35b7ff333765d000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461011e5761144736611546565b6114513633611660565b73ffffffffffffffffffffffffffffffffffffffff8316805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f2054106114fb576114b28284866114ad838360209a61198c565b6119ec565b7f29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc8473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fb7cc22bc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011e57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc606091011261011e5760043573ffffffffffffffffffffffffffffffffffffffff8116810361011e57906024359060443573ffffffffffffffffffffffffffffffffffffffff8116810361011e5790565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176115f957604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116115f957601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00549173ffffffffffffffffffffffffffffffffffffffff8316928260041161011e575f805f806040519573ffffffffffffffffffffffffffffffffffffffff60208801917fb700961300000000000000000000000000000000000000000000000000000000835216968760248201523060448201527fffffffff0000000000000000000000000000000000000000000000000000000083351660648201526064815261172f6084826115b8565b5190895afa61173c611fcc565b906118f4575b5015611750575b5050505050565b63ffffffff16156118c8577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055823b1561011e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0925f92836064601f94604051978896879586937f94c7d7ee00000000000000000000000000000000000000000000000000000000855260048501526040602485015280604485015280868686013785858286010152011681010301925af1801561113b576118b8575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f80808080611749565b5f6118c2916115b8565b5f611847565b507f068ca9d8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80519290916040841061191c575050602080611914938301019101612008565b905b5f611742565b9190926020811015611930575b5050611916565b819250906020918101031261011e57602061194b9101611ffb565b5f80611929565b9190820391821161195f57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff90929192165f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526119db60405f20918254611952565b9055565b9190820180921161195f57565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526119db60405f209182546119df565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526119db60405f20918254611952565b90918215611c4d5782611add8230611f1b565b10611bef5773ffffffffffffffffffffffffffffffffffffffff168015611b6257611b609273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611b5b6064836115b8565b612161565b565b505f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1611b89611fcc565b5015611b9157565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9190918215611ebd5773ffffffffffffffffffffffffffffffffffffffff8216918215611e5257611d8790826120d9565b8311611df457611df19173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015216602483015230604483015283606483015260648252611b5b6084836115b8565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b505050348111611e5f5790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611fc65773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa90811561113b575f91611f97575090565b90506020813d602011611fbe575b81611fb2602093836115b8565b8101031261011e575190565b3d9150611fa5565b90503190565b3d15611ff6573d90611fdd82611626565b91611feb60405193846115b8565b82523d5f602084013e565b606090565b5190811515820361011e57565b919082604091031261011e57602061201f83611ffb565b92015163ffffffff8116810361011e5790565b907fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b1660348201526028815261207c6048826115b8565b51902090565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156120b157565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9073ffffffffffffffffffffffffffffffffffffffff1690811561215b5773ffffffffffffffffffffffffffffffffffffffff604460209260405194859384927fdd62ed3e0000000000000000000000000000000000000000000000000000000084521660048301523060248301525afa90811561113b575f91611f97575090565b50503490565b905f602091828151910182855af11561113b575f513d6121df575073ffffffffffffffffffffffffffffffffffffffff81163b155b61219d5750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415612196565b9061222557508051156121fd57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580612278575b612236575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561222e56fea2646970667358221220b5bb5d01e75b9aef0f7b2e6614f98d468232088e5db3117dd7ab5eb8f8a0698d64736f6c634300081a0033","sourceMap":"1231:7103:57:-:0;;;;;;;1171:4:96;1163:13;;8837:64:95;1231:7103:57;;;;;;7896:76:95;;-1:-1:-1;;;;;;;;;;;1231:7103:57;;7985:34:95;7981:146;;-1:-1:-1;1231:7103:57;;;;;;;;1163:13:96;1231:7103:57;;;;;;;;;;;7981:146:95;-1:-1:-1;;;;;;1231:7103:57;-1:-1:-1;;;;;1231:7103:57;;;8837:64:95;1231:7103:57;;;8087:29:95;;1231:7103:57;;8087:29:95;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:95;;-1:-1:-1;7938:23:95;1231:7103:57;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806315f41501146114395780632c2eb94a146112d95780634bbc170a146111885780634f1ef28614610d0f57806352d1902d14610c5257806369328dec14610b4d5780637a9e5e4b14610a585780638fb36037146109a75780639e96a260146108bc578063ad3cb1cc1461080a578063b4fb2ea7146106ab578063bf7e214f1461063b578063c4d66de814610367578063d949b8441461029d578063dbba0f01146101a6578063f45346dc146101225763f8b2cb4f146100d4575f80fd5b3461011e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e576020610116610110611523565b30611f1b565b604051908152f35b5f80fd5b3461011e57602061013e61013536611546565b80939133611d56565b9161014a8184846119ec565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917f2d26b12df00031a51cbd91c763887ccf6992992e54b2701fbe5bd7b2c738a4e291819081015b0390a3604051908152f35b3461011e576101b436611546565b91335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f20541061027557826102156020948433611a5b565b6102208184846119ec565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917fe93251c2a6f732155f1cd84502a2c66884e81835c0d4768a10d81fcd79510be7918190810161019b565b7fd1df6ed0000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461011e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e576102d4611523565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361011e5761035173ffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b3461011e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e5761039e611523565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff821680159081610633575b6001149081610629575b159081610620575b506105f857818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556105a3575b50610461612082565b610469612082565b610471612082565b610479612082565b610481612082565b610489612082565b610491612082565b61049a81611cab565b6104a2612082565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561051057005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610458565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846103ef565b303b1591506103e7565b8491506103dd565b3461011e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461011e576106b936611546565b916107013373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f2054106107e357826107366020948433611a5b565b6107408233612032565b5f527fa8707513830ffbd3c47e0c83d1f5f0270db240ae37bb1f9a13f077f85b949c00845260405f2073ffffffffffffffffffffffffffffffffffffffff82165f52845260405f206107938482546119df565b905573ffffffffffffffffffffffffffffffffffffffff8060405192858452169216907fefe3f8439756d801b1c87c65156763cb37dfe4029063fa02119547331fb60d55853392a4604051908152f35b7ef08faa000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461011e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e57604080519061084781836115b8565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461011e576108ca36611546565b6108d43633611660565b73ffffffffffffffffffffffffffffffffffffffff83165f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f20541061097f57610929818360209561198c565b6109348183336119ec565b73ffffffffffffffffffffffffffffffffffffffff6040519183835216907f07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563843392a3604051908152f35b7fdff46e2b000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461011e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff1615610a505760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610a26565b3461011e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e57610a8f611523565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054163303610b2157803b15610adf57610add90611cab565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461011e57610b5b36611546565b335f9081527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f006020526040902073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f205410610c2a57602092610bbd828433611a5b565b610bc8828483611aca565b73ffffffffffffffffffffffffffffffffffffffff6040519284845216917f823b7dcdbd5806d97a2a3c64fe281a8d31155b2a7dade87fdaa7437c79c12b118573ffffffffffffffffffffffffffffffffffffffff33941692a4604051908152f35b7f67e3990d000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461011e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e5773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610ce75760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011e57610d41611523565b6024359067ffffffffffffffff821161011e573660238301121561011e57816004013590610d6e82611626565b91610d7c60405193846115b8565b8083526020830193366024838301011161011e57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115611146575b50610ce7576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa90811561113b575f9161110b575b50156110875773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181611053575b50610eed57847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036110285750823b15610ffd57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610fcb575f8091610add945190845af4610fc5611fcc565b916121e8565b50505034610fd557005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d60201161107f575b8161106f602093836115b8565b8101031261011e57519086610ebc565b3d9150611062565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b61112d915060403d604011611134575b61112581836115b8565b810190612008565b5084610e67565b503d61111b565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610de1565b3461011e5761119636611546565b6111a03633611660565b6111e78373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f2054106112b15773ffffffffffffffffffffffffffffffffffffffff836112318385602097611a5b565b16805f525f845260405f2073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f206112668482546119df565b90557fa372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f628473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fa9e575de000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461011e576112e736611546565b6112f13384612032565b5f527fa8707513830ffbd3c47e0c83d1f5f0270db240ae37bb1f9a13f077f85b949c0060205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f2054106114115760209261134f3382612032565b5f527fa8707513830ffbd3c47e0c83d1f5f0270db240ae37bb1f9a13f077f85b949c00845260405f2073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f206113a2848254611952565b90556113af8284336119ec565b73ffffffffffffffffffffffffffffffffffffffff6040519284845216917fb86f5fa8e97aba565b1ac0fa25de5437a80a39dc9bf20638866c57efd521c98e8573ffffffffffffffffffffffffffffffffffffffff33941692a4604051908152f35b7ff333765d000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461011e5761144736611546565b6114513633611660565b73ffffffffffffffffffffffffffffffffffffffff8316805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f2054106114fb576114b28284866114ad838360209a61198c565b6119ec565b7f29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc8473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fb7cc22bc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011e57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc606091011261011e5760043573ffffffffffffffffffffffffffffffffffffffff8116810361011e57906024359060443573ffffffffffffffffffffffffffffffffffffffff8116810361011e5790565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176115f957604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116115f957601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00549173ffffffffffffffffffffffffffffffffffffffff8316928260041161011e575f805f806040519573ffffffffffffffffffffffffffffffffffffffff60208801917fb700961300000000000000000000000000000000000000000000000000000000835216968760248201523060448201527fffffffff0000000000000000000000000000000000000000000000000000000083351660648201526064815261172f6084826115b8565b5190895afa61173c611fcc565b906118f4575b5015611750575b5050505050565b63ffffffff16156118c8577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055823b1561011e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0925f92836064601f94604051978896879586937f94c7d7ee00000000000000000000000000000000000000000000000000000000855260048501526040602485015280604485015280868686013785858286010152011681010301925af1801561113b576118b8575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f80808080611749565b5f6118c2916115b8565b5f611847565b507f068ca9d8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80519290916040841061191c575050602080611914938301019101612008565b905b5f611742565b9190926020811015611930575b5050611916565b819250906020918101031261011e57602061194b9101611ffb565b5f80611929565b9190820391821161195f57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff90929192165f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526119db60405f20918254611952565b9055565b9190820180921161195f57565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526119db60405f209182546119df565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526119db60405f20918254611952565b90918215611c4d5782611add8230611f1b565b10611bef5773ffffffffffffffffffffffffffffffffffffffff168015611b6257611b609273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611b5b6064836115b8565b612161565b565b505f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1611b89611fcc565b5015611b9157565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9190918215611ebd5773ffffffffffffffffffffffffffffffffffffffff8216918215611e5257611d8790826120d9565b8311611df457611df19173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015216602483015230604483015283606483015260648252611b5b6084836115b8565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b505050348111611e5f5790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611fc65773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa90811561113b575f91611f97575090565b90506020813d602011611fbe575b81611fb2602093836115b8565b8101031261011e575190565b3d9150611fa5565b90503190565b3d15611ff6573d90611fdd82611626565b91611feb60405193846115b8565b82523d5f602084013e565b606090565b5190811515820361011e57565b919082604091031261011e57602061201f83611ffb565b92015163ffffffff8116810361011e5790565b907fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b1660348201526028815261207c6048826115b8565b51902090565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156120b157565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9073ffffffffffffffffffffffffffffffffffffffff1690811561215b5773ffffffffffffffffffffffffffffffffffffffff604460209260405194859384927fdd62ed3e0000000000000000000000000000000000000000000000000000000084521660048301523060248301525afa90811561113b575f91611f97575090565b50503490565b905f602091828151910182855af11561113b575f513d6121df575073ffffffffffffffffffffffffffffffffffffffff81163b155b61219d5750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415612196565b9061222557508051156121fd57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580612278575b612236575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561222e56fea2646970667358221220b5bb5d01e75b9aef0f7b2e6614f98d468232088e5db3117dd7ab5eb8f8a0698d64736f6c634300081a0033","sourceMap":"1231:7103:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2489:33:48;1231:7103:57;;:::i;:::-;2497:4:48;2489:33;:::i;:::-;1231:7103:57;;;;;;;;;;;;;;;2971:40:48;1231:7103:57;;;:::i;:::-;2971:10:48;;;;:40;:::i;:::-;3059:8;;;;;;:::i;:::-;1231:7103:57;;;;;;;;;;;;;;2971:10:48;;1231:7103:57;;;;3083:58:48;;1231:7103:57;;;;3083:58:48;;;;1231:7103:57;;;;;;;;;;;;;:::i;:::-;4410:10:48;;1231:7103:57;;4178:54:50;1231:7103:57;;;;;;;;-1:-1:-1;1231:7103:57;;;;;-1:-1:-1;1231:7103:57;;4393:47:48;4389:79;;4410:10;4514:8;1231:7103:57;4410:10:48;;;4514:8;:::i;:::-;4568;;;;;:::i;:::-;1231:7103:57;;;;;;;;;;;;;;4410:10:48;;1231:7103:57;;;;4592:57:48;;1231:7103:57;;;;4592:57:48;1231:7103:57;4389:79:48;4449:19;1231:7103:57;4449:19:48;1231:7103:57;;4449:19:48;1231:7103:57;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1469:18:50;1231:7103:57;1469:18:50;1231:7103:57;;;;4178:54:50;1231:7103:57;;;;;;;1469:18:50;:28;1231:7103:57;-1:-1:-1;1231:7103:57;;;;;-1:-1:-1;1231:7103:57;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8837:64:95;1231:7103:57;;;;;;4301:16:95;1231:7103:57;;;;4726:16:95;;:34;;;;1231:7103:57;4805:1:95;4790:16;:50;;;;1231:7103:57;4855:13:95;:30;;;;1231:7103:57;4851:91:95;;;1231:7103:57;;4805:1:95;1231:7103:57;;;;;8837:64:95;1231:7103:57;4979:67:95;;1231:7103:57;6893:76:95;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:93;;;:::i;:::-;6893:76:95;;:::i;:::-;1231:7103:57;;3298:62:47;1231:7103:57;;;3298:62:47;1231:7103:57;5066:101:95;;1231:7103:57;5066:101:95;1231:7103:57;8837:64:95;1231:7103:57;;8837:64:95;1231:7103:57;5142:14:95;1231:7103:57;;;4805:1:95;1231:7103:57;;5142:14:95;1231:7103:57;4979:67:95;1231:7103:57;;;;8837:64:95;1231:7103:57;4979:67:95;;;4851:91;4908:23;1231:7103:57;4908:23:95;1231:7103:57;;4908:23:95;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:95;;4726:34;;;-1:-1:-1;4726:34:95;;1231:7103:57;;;;;;;;;;;;;1782:71:93;1231:7103:57;;;;;;;;;;;;;;;:::i;:::-;5152:10:48;1469:18:50;5152:10:48;1231:7103:57;;;;4178:54:50;1231:7103:57;;;;;;;1469:18:50;1231:7103:57;;;-1:-1:-1;1231:7103:57;;;;;-1:-1:-1;1231:7103:57;;5135:47:48;5131:78;;5152:10;5255:8;1231:7103:57;5152:10:48;;;5255:8;:::i;:::-;7426:29;5152:10;;7426:29;:::i;:::-;1231:7103:57;;9023:64:48;1231:7103:57;;;;;;;;-1:-1:-1;1231:7103:57;;;;-1:-1:-1;1231:7103:57;7465:41:48;1231:7103:57;;;7465:41:48;:::i;:::-;1231:7103:57;;;;;;;;;;;;;5152:10:48;5341:47;5152:10;;5341:47;;1231:7103:57;;;;;;5131:78:48;5191:18;1231:7103:57;5191:18:48;1231:7103:57;;5191:18:48;1231:7103:57;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3871:10:93;1231:7103:57;966:10:99;3871::93;:::i;:::-;1231:7103:57;;;;;;;;;;;;;;-1:-1:-1;1231:7103:57;;;;;-1:-1:-1;1231:7103:57;;5970:44;5966:73;;6083:8;;;1231:7103;6083:8;;:::i;:::-;6141;966:10:99;;;6141:8:57;:::i;:::-;1231:7103;;;;;;;;966:10:99;6165:42:57;966:10:99;;6165:42:57;;1231:7103;;;;;;5966:73;6023:16;1231:7103;6023:16;1231:7103;;6023:16;1231:7103;;;;;;;;;;;1782:71:93;1231:7103:57;;;;;4698:71:93;;;1231:7103:57;;4698:71:93;1231:7103:57;;;;;;;;4698:71:93;1231:7103:57;;4698:71:93;;1231:7103:57;;;;;;;;;;;;;:::i;:::-;;1782:71:93;1231:7103:57;;966:10:99;4258:21:93;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;1231:7103:57;4355:110:93;1231:7103:57;4411:43:93;;1231:7103:57;4411:43:93;1231:7103:57;;;;;4411:43:93;4254:92;4302:33;1231:7103:57;4302:33:93;966:10:99;1231:7103:57;;;;4302:33:93;1231:7103:57;;;;;;;:::i;:::-;3634:10:48;1231:7103:57;;;;4178:54:50;1231:7103:57;;;;;;;;-1:-1:-1;1231:7103:57;;;;;-1:-1:-1;1231:7103:57;;3617:47:48;3613:79;;1231:7103:57;3634:10:48;3738:8;3634:10;;;3738:8;:::i;:::-;3784;;;;;:::i;:::-;1231:7103:57;;;;;;;;3634:10:48;3838:55;3634:10;1231:7103:57;3634:10:48;1231:7103:57;;3838:55:48;;1231:7103:57;;;;;;3613:79:48;3673:19;1231:7103:57;3673:19:48;1231:7103:57;;3673:19:48;1231:7103:57;;;;;;;;;;;;5115:6:96;1231:7103:57;5106:4:96;5098:23;5094:145;;1231:7103:57;;;811:66:133;1231:7103:57;;;5094:145:96;5199:29;1231:7103:57;5199:29:96;1231:7103:57;;5199:29:96;1231:7103:57;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:96;1231:7103:57;4683:4:96;;4675:23;:120;;;;;1231:7103:57;4658:251:96;;;3061:30:47;1231:7103:57;;3298:62:47;1231:7103:57;;;;3061:30:47;;;;1231:7103:57;3061:30:47;;1231:7103:57;;3061:30:47;;1231:7103:57;1896:10:47;1231:7103:57;;;;3061:30:47;;;;;;;1231:7103:57;3061:30:47;;;1231:7103:57;1872:35:47;;1868:140;;1231:7103:57;;;;;;;6156:52:96;;1231:7103:57;6156:52:96;1231:7103:57;6156:52:96;;;;1231:7103:57;;6156:52:96;;;1231:7103:57;-1:-1:-1;6152:437:96;;6518:60;;1231:7103:57;6518:60:96;1231:7103:57;;;;6518:60:96;6152:437;6250:40;811:66:133;6250:40:96;;;6246:120;;1748:29:133;;;:34;1744:119;;1231:7103:57;;811:66:133;1231:7103:57;;;811:66:133;1231:7103:57;2407:36:133;1231:7103:57;2407:36:133;;1231:7103:57;;2458:15:133;:11;;1231:7103:57;4049:25:154;;4091:55;4049:25;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:133:-;6163:9;;;;6159:70;;1231:7103:57;6159:70:133;6199:19;1231:7103:57;6199:19:133;1231:7103:57;;6199:19:133;1744:119;1805:47;1231:7103:57;1805:47:133;1231:7103:57;;;;1805:47:133;6246:120:96;6317:34;1231:7103:57;6317:34:96;1231:7103:57;;;;6317:34:96;6156:52;;;;1231:7103:57;6156:52:96;;1231:7103:57;6156:52:96;;;;;;1231:7103:57;6156:52:96;;;:::i;:::-;;;1231:7103:57;;;;;6156:52:96;;;;;;;-1:-1:-1;6156:52:96;;1868:140:47;1930:67;1231:7103:57;;1930:67:47;;;1231:7103:57;;1930:67:47;;520:1:45;1231:7103:57;;520:1:45;;1231:7103:57;520:1:45;3061:30:47;1231:7103:57;;520:1:45;;;;;;1930:67:47;3061:30;;;;1231:7103:57;3061:30:47;1231:7103:57;3061:30:47;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1231:7103:57;;;;;;;;;4675:120:96;1231:7103:57;;;811:66:133;1231:7103:57;;4753:42:96;;4675:120;;;1231:7103:57;;;;;;;:::i;:::-;3871:10:93;1231:7103:57;966:10:99;3871::93;:::i;:::-;1469:18:50;;1231:7103:57;;;;4178:54:50;1231:7103:57;;;;;;;1469:18:50;1231:7103:57;;;-1:-1:-1;1231:7103:57;;;;;-1:-1:-1;1231:7103:57;;4445:44;4441:72;;1231:7103;4556:8;;;;1231:7103;4556:8;;:::i;:::-;1231:7103;;;;;;;;;;;;;-1:-1:-1;1231:7103:57;;;;-1:-1:-1;1231:7103:57;7308:36;1231:7103;;;7308:36;:::i;:::-;1231:7103;;4633:38;1231:7103;;;;;;;;;4633:38;;1231:7103;;;;;;4441:72;4498:15;1231:7103;4498:15;1231:7103;;4498:15;1231:7103;;;;;;;:::i;:::-;8143:29:48;5891:10;8143:29;;:::i;:::-;1231:7103:57;;9023:64:48;1231:7103:57;;;;;;;;-1:-1:-1;1231:7103:57;;;;;-1:-1:-1;1231:7103:57;;5866:55:48;5862:86;;1231:7103:57;5891:10:48;6753:29;5891:10;6753:29;;:::i;:::-;1231:7103:57;;9023:64:48;1231:7103:57;;;;;;;;-1:-1:-1;1231:7103:57;;;;-1:-1:-1;1231:7103:57;6792:41:48;1231:7103:57;;;6792:41:48;:::i;:::-;1231:7103:57;;6058:8:48;5891:10;;;6058:8;:::i;:::-;1231:7103:57;;;;;;;;5891:10:48;6082:50;5891:10;1231:7103:57;5891:10:48;1231:7103:57;;6082:50:48;;1231:7103:57;;;;;;5862:86:48;5930:18;1231:7103:57;5930:18:48;1231:7103:57;;5930:18:48;1231:7103:57;;;;;;;:::i;:::-;3871:10:93;1231:7103:57;966:10:99;3871::93;:::i;:::-;1231:7103:57;;;;;;;;;;;;;;;-1:-1:-1;1231:7103:57;;;;;-1:-1:-1;1231:7103:57;;5138:44;5134:75;;5305:8;5253;;;;;;1231:7103;5253:8;;:::i;:::-;5305;:::i;:::-;5329:40;1231:7103;;;;;;;;;5329:40;;1231:7103;;;;;;5134:75;5191:18;1231:7103;5191:18;1231:7103;;5191:18;1231:7103;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1231:7103:57;;;;;-1:-1:-1;1231:7103:57;;;;;;;;;;;;;;:::o;5359:667:93:-;;1782:71;1231:7103:57;;;;;;;5679:1:93;1231:7103:57;;;;;;;;;856:62:108;1231:7103:57;856:62:108;;;;;;;1231:7103:57;856:62:108;;;;;1231:7103:57;5646:4:93;1231:7103:57;;;;;;;;;;;;;856:62:108;;;;;;:::i;:::-;822:106;;;;;;;:::i;:::-;938:248;;;5359:667:93;5706:10;;5702:318;;5359:667;;;;;;:::o;5702:318::-;1231:7103:57;;5736:9:93;1231:7103:57;;;;;;1782:71:93;1231:7103:57;5810:60:93;;;;;856:62:108;1231:7103:57;;;;;;;;;5810:60:93;;;;;;;1231:7103:57;5810:60:93;;5679:1;5810:60;;1231:7103:57;;856:62:108;1231:7103:57;;;;;;;;;;;;;;;;;;;;;;;;;5810:60:93;;;;;;;;;;;5732:278;1231:7103:57;;1782:71:93;1231:7103:57;;1782:71:93;1231:7103:57;5702:318:93;;;;;;;5810:60;1231:7103:57;5810:60:93;;;:::i;:::-;1231:7103:57;5810:60:93;;5732:278;5962:33;;1231:7103:57;5962:33:93;5679:1;1231:7103:57;856:62:108;1231:7103:57;5962:33:93;938:248:108;1231:7103:57;;;;;;969:19:108;;1231:7103:57;;1029:32:108;;856:62;1029:32;;;;;;;;;:::i;:::-;1008:53;965:211;938:248;;;965:211;1086:19;;;856:62;1086:19;;;1082:94;;965:211;;;;;1082:94;1137:24;;;;856:62;1137:24;;;1231:7103:57;;;;856:62:108;1231:7103:57;1137:24:108;;1231:7103:57;:::i;:::-;1082:94:108;;;;1231:7103:57;;;;;;;;;;:::o;:::-;;;;;;;;;;6659:138;1231:7103;6659:138;;;;1231:7103;6754:7;1231:7103;6754:7;1231:7103;;;;6754:7;1231:7103;6754:26;1231:7103;-1:-1:-1;1231:7103:57;;;6754:36;1231:7103;-1:-1:-1;1231:7103:57;;;;6754:36;:::i;:::-;1231:7103;;6659:138::o;1231:7103::-;;;;;;;;;;:::o;3116:195:50:-;1231:7103:57;3116:195:50;;;;1231:7103:57;-1:-1:-1;1231:7103:57;4178:54:50;1231:7103:57;;;;-1:-1:-1;1231:7103:57;3266:28:50;1231:7103:57;-1:-1:-1;1231:7103:57;;;3266:38:50;1231:7103:57;-1:-1:-1;1231:7103:57;;;;3266:38:50;:::i;3743:195::-;1231:7103:57;3743:195:50;;;;1231:7103:57;-1:-1:-1;1231:7103:57;4178:54:50;1231:7103:57;;;;-1:-1:-1;1231:7103:57;3893:28:50;1231:7103:57;-1:-1:-1;1231:7103:57;;;3893:38:50;1231:7103:57;-1:-1:-1;1231:7103:57;;;;3893:38:50;:::i;5233:383:41:-;;;5317:11;;5313:78;;5423:4;5405:31;5423:4;;5405:31;:::i;:::-;:40;5401:96;;1231:7103:57;;5511:19:41;;5507:59;;1380:43:147;1231:7103:57;;;;1380:43:147;1231:7103:57;1380:43:147;;;;1231:7103:57;1380:43:147;;;1231:7103:57;;;;;;1380:43:147;;;;;;:::i;:::-;;:::i;:::-;5233:383:41:o;5507:59::-;1231:7103:57;5327:1:41;1231:7103:57;;;;;;;904:37:41;;;;:::i;:::-;;955:8;951:58;;5532:34::o;951:58::-;972:37;1231:7103:57;;972:37:41;;;1231:7103:57;972:37:41;;;1231:7103:57;;;;;;;;;;;972:37:41;5401:96;5454:43;1231:7103:57;;5454:43:41;;;1231:7103:57;5454:43:41;;;1231:7103:57;;;;;;;;;;;5454:43:41;5313:78;5337:54;1231:7103:57;;5337:54:41;;;1231:7103:57;5337:54:41;;;1231:7103:57;;;;;;;;;;;5337:54:41;4964:220:93;1231:7103:57;;5147:30:93;4964:220;1231:7103:57;;;1782:71:93;1231:7103:57;;;1782:71:93;1231:7103:57;;;;;;5147:30:93;4964:220::o;3539:881:41:-;;;;3646:11;;3642:65;;1231:7103:57;;;3721:19:41;;;3717:230;;3970:22;;;;:::i;:::-;3961:31;;3957:90;;1797:53:147;1231:7103:57;;;;1797:53:147;1231:7103:57;1797:53:147;;;;1231:7103:57;1797:53:147;;;1231:7103:57;4376:4:41;1231:7103:57;;;;;;;;;;1797:53:147;;;;;;:::i;:::-;3539:881:41;:::o;3957:90::-;4001:46;1231:7103:57;;4001:46:41;;;1231:7103:57;4001:46:41;;;1231:7103:57;;;;;;;;;;;4001:46:41;3717:230;3769:9;;;;3760:18;;3756:75;;3923:13;:::o;3756:75::-;3787:44;1231:7103:57;;3787:44:41;;;1231:7103:57;3787:44:41;;;1231:7103:57;;;;;;;;;;;3787:44:41;3642:65;3666:41;1231:7103:57;;3666:41:41;;;1231:7103:57;3666:41:41;;;1231:7103:57;;;;;;;;;;;3666:41:41;4674:193;;1231:7103:57;;4770:19:41;;;4766:46;;1231:7103:57;4829:31:41;1231:7103:57;;;;4829:31:41;;;;;1231:7103:57;4829:31:41;;1231:7103:57;4829:31:41;;;1231:7103:57;4829:31:41;;;;;;;1231:7103:57;4829:31:41;;;4822:38;4674:193;:::o;4829:31::-;;;1231:7103:57;4829:31:41;;1231:7103:57;4829:31:41;;;;;;1231:7103:57;4829:31:41;;;:::i;:::-;;;1231:7103:57;;;;;4674:193:41;:::o;4829:31::-;;;-1:-1:-1;4829:31:41;;4766:46;4798:14;;;4791:21;:::o;1231:7103:57:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1231:7103:57;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;8608:147:48:-;;1231:7103:57;;;8721:26:48;;;;;1231:7103:57;;;;;;;;;;;;;8721:26:48;;;;;;;:::i;:::-;1231:7103:57;8711:37:48;;8608:147;:::o;7084:141:95:-;1231:7103:57;8837:64:95;1231:7103:57;;;;7150:18:95;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:95;;-1:-1:-1;7191:17:95;2841:201:41;;1231:7103:57;;2936:19:41;;;2932:41;;1231:7103:57;2990:45:41;1231:7103:57;;;;2990:45:41;;;;;1231:7103:57;2990:45:41;;1231:7103:57;2990:45:41;;;1231:7103:57;3029:4:41;1231:7103:57;;;;2990:45:41;;;;;;;1231:7103:57;2990:45:41;;;2983:52;2841:201;:::o;2932:41::-;2964:9;;;2957:16;:::o;7738:720:147:-;;-1:-1:-1;7875:421:147;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:147;;8310:15;;1231:7103:57;;;;8328:26:147;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;1231:7103:57;8401:40:147;;-1:-1:-1;8401:40:147;1231:7103:57;8401:40:147;1231:7103:57;;-1:-1:-1;8401:40:147;8310:68;8377:1;8362:16;;8310:68;;4421:582:154;;4593:8;;-1:-1:-1;1231:7103:57;;5674:21:154;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;1231:7103:57;;4841:22:154;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;1231:7103:57;4917:24:154;;4862:1;4917:24;1231:7103:57;4917:24:154;1231:7103:57;;4862:1:154;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"50749":[{"start":3223,"length":32},{"start":3510,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","claim(address,uint256,address)":"9e96a260","collect(address,uint256,address)":"2c2eb94a","deposit(address,uint256,address)":"f45346dc","getBalance(address)":"f8b2cb4f","getLedgerBalance(address,address)":"d949b844","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","lock(address,uint256,address)":"4bbc170a","proxiableUUID()":"52d1902d","release(address,uint256,address)":"15f41501","reserve(address,uint256,address)":"b4fb2ea7","setAuthority(address)":"7a9e5e4b","transfer(address,uint256,address)":"dbba0f01","upgradeToAndCall(address,bytes)":"4f1ef286","withdraw(address,uint256,address)":"69328dec"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToCollect\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToLock\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToReserve\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsReserved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getLedgerBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"lock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"reserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract includes administrative methods (`restricted`) and general user methods. Supports operations such as deposits, withdrawals, transfers, and locked funds management.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailDuringTransfer(string)\":[{\"params\":{\"reason\":\"The reason for the transfer failure.\"}}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NoFundsToClaim()\":[{\"details\":\"This error occurs if an account or claimer tries to claim funds that are not locked or insufficient.\"}],\"NoFundsToCollect()\":[{\"details\":\"This error occurs if an operator tries to collected funds that are not reserved or insufficient.\"}],\"NoFundsToLock()\":[{\"details\":\"This error occurs if an account attempts to lock more funds than available.\"}],\"NoFundsToRelease()\":[{\"details\":\"This error occurs if an operator tries to releases funds that are not locked or insufficient.\"}],\"NoFundsToReserve()\":[{\"details\":\"This error occurs if an account attempts to reserve more funds than available.\"}],\"NoFundsToTransfer()\":[{\"details\":\"This error is triggered when a transfer is attempted but the sender has insufficient funds or no balance.\"}],\"NoFundsToWithdraw()\":[{\"details\":\"This error is triggered when a withdrawal is attempted but the contract has insufficient funds.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"FundsClaimed(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of funds claimed.\",\"claimer\":\"The address of the entity claiming the funds.\",\"currency\":\"The address of the currency in which the funds were claimed.\"}},\"FundsCollected(address,address,uint256,address)\":{\"details\":\"Indicates that a specified amount of previously reserved funds has been collected by the recipient.\",\"params\":{\"amount\":\"The amount of funds collected.\",\"currency\":\"The address of the currency in which the funds are collected.\",\"from\":\"The address of the account from which the funds are collected.\",\"to\":\"The address of the account that collected the reserved funds.\"}},\"FundsDeposited(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency deposited.\",\"currency\":\"The address of the ERC20 token deposited.\",\"origin\":\"The address sending the deposit funds.\",\"recipient\":\"The address of the account credited with the deposit.\"}},\"FundsLocked(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account whose funds were locked.\",\"amount\":\"The amount of funds that were locked.\",\"currency\":\"The address of the currency in which the funds were locked.\"}},\"FundsReleased(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account whose funds were released.\",\"amount\":\"The amount of funds that were locked.\",\"currency\":\"The address of the currency in which the funds were locked.\"}},\"FundsReserved(address,address,uint256,address)\":{\"details\":\"Indicates that a specified amount of currency has been reserved from one account to another.\",\"params\":{\"amount\":\"The amount of funds reserved.\",\"currency\":\"The address of the currency in which the funds are reserved.\",\"from\":\"The address of the account from which the funds are reserved.\",\"to\":\"The address of the account for which the funds are reserved.\"}},\"FundsTransferred(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency transferred.\",\"currency\":\"The address of the ERC20 token transferred. Use `address(0)` for native tokens.\",\"origin\":\"The address of the account initiating the transfer.\",\"recipient\":\"The address of the account receiving the funds.\"}},\"FundsWithdrawn(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount of funds being withdrawn.\",\"currency\":\"The currency used for the withdrawal.\",\"origin\":\"The address sending the withdrawn funds.\",\"recipient\":\"The address receiving the withdrawn funds.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"claim(address,uint256,address)\":{\"details\":\"The claimer is authorized to process the funds from the account. Only operator role can handle this methods.\",\"params\":{\"account\":\"The address of the account whose funds are being claimed.\",\"amount\":\"The amount of funds to claim.\",\"currency\":\"The currency to associate claim with. Use address(0) for the native coin.\"}},\"collect(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of funds to collect.\",\"currency\":\"The address of the ERC20 token to collect. Use `address(0)` for native tokens.\",\"from\":\"The address of the account from which the reserved funds are being collected.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"deposit(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency to deposit.\",\"currency\":\"The address of the ERC20 token to deposit.\",\"recipient\":\"The address of the account to credit with the deposit.\"}},\"getBalance(address)\":{\"details\":\"The function checks the balance for both native and ERC-20 tokens.\",\"params\":{\"currency\":\"The address of the currency to check the balance of.\"}},\"getLedgerBalance(address,address)\":{\"params\":{\"account\":\"The address of the account whose balance is being queried.\",\"currency\":\"The address of the currency to retrieve the balance for.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"lock(address,uint256,address)\":{\"details\":\"The funds are immobilized and cannot be withdrawn or transferred until released or claimed. Only operator role can handle this methods.\",\"params\":{\"account\":\"The address of the account for which the funds will be locked.\",\"amount\":\"The amount of funds to lock.\",\"currency\":\"The currency to associate lock with. Use address(0) for the native coin.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"release(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account for which the funds will be released.\",\"amount\":\"The amount of funds to release.\",\"currency\":\"The currency to associate release with. Use address(0) for the native coin.\"}},\"reserve(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of funds to reserve.\",\"currency\":\"The address of the ERC20 token to reserve. Use `address(0)` for native tokens.\",\"to\":\"The address of the recipient for whom the funds are being reserved.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"transfer(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of tokens to transfer.\",\"currency\":\"The address of the currency to transfer. Use `address(0)` for the native coin.\",\"recipient\":\"The address of the account to credit with the transfer.\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"withdraw(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of tokens to withdraw.\",\"currency\":\"The currency to associate fees with. Use address(0) for the native coin.\",\"recipient\":\"The address that will receive the withdrawn tokens.\"}}},\"stateVariables\":{\"_locked\":{\"details\":\"Holds the registry of locked funds for accounts.\"}},\"title\":\"LedgerVault\",\"version\":1},\"userdoc\":{\"errors\":{\"FailDuringTransfer(string)\":[{\"notice\":\"Error to be thrown when a transfer fails.\"}],\"NoFundsToClaim()\":[{\"notice\":\"Thrown when there are no locked funds available to claim.\"}],\"NoFundsToCollect()\":[{\"notice\":\"Thrown when there are no reserved funds available to release.\"}],\"NoFundsToLock()\":[{\"notice\":\"Thrown when there are no available funds to lock.\"}],\"NoFundsToRelease()\":[{\"notice\":\"Thrown when there are no locked funds available to release.\"}],\"NoFundsToReserve()\":[{\"notice\":\"Thrown when there are no available funds to reserve.\"}],\"NoFundsToTransfer()\":[{\"notice\":\"Error indicating that there are no funds available to transfer.\"}],\"NoFundsToWithdraw()\":[{\"notice\":\"Error indicating that there are no funds available to withdraw.\"}]},\"events\":{\"FundsClaimed(address,uint256,address)\":{\"notice\":\"Emitted when locked funds are successfully claimed.\"},\"FundsCollected(address,address,uint256,address)\":{\"notice\":\"Emitted when reserved funds are successfully collected by a recipient.\"},\"FundsDeposited(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are successfully deposited into the pool.\"},\"FundsLocked(address,uint256,address)\":{\"notice\":\"Emitted when funds are locked in the ledger.\"},\"FundsReleased(address,uint256,address)\":{\"notice\":\"Emitted when locked funds are successfully released.\"},\"FundsReserved(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are reserved between two accounts.\"},\"FundsTransferred(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are successfully transferred between accounts.\"},\"FundsWithdrawn(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are withdrawn from the contract.\"}},\"kind\":\"user\",\"methods\":{\"claim(address,uint256,address)\":{\"notice\":\"Claims a specific amount of locked funds on behalf of a claimer.\"},\"collect(address,uint256,address)\":{\"notice\":\"Collects a specific amount of previously reserved funds.\"},\"deposit(address,uint256,address)\":{\"notice\":\"Deposits a specified amount of currency into the treasury for a given recipient.\"},\"getBalance(address)\":{\"notice\":\"Returns the general's balance for the specified currency.\"},\"getLedgerBalance(address,address)\":{\"notice\":\"Retrieves the ledger balance of an account for a specific currency.\"},\"lock(address,uint256,address)\":{\"notice\":\"Locks a specific amount of funds for a given account.\"},\"release(address,uint256,address)\":{\"notice\":\"Release a specific amount of funds from locked pool.\"},\"reserve(address,uint256,address)\":{\"notice\":\"Reserves a specific amount of funds from the caller's balance for a recipient.\"},\"transfer(address,uint256,address)\":{\"notice\":\"Transfers tokens internally within the ledger from the caller to a specified recipient.\"},\"withdraw(address,uint256,address)\":{\"notice\":\"Withdraws tokens from the contract to a specified recipient's address.\"}},\"notice\":\"A vault contract designed to store, lock, release, and manage funds securely.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/financial/LedgerVault.sol\":\"LedgerVault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/core/interfaces/base/IBalanceDepositor.sol\":{\"keccak256\":\"0x5c52b09eb3ef3b077d02c9a989624b2dc1e2a00f026b65a04b6bc67206c751d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945732e1b234e80dee53dfd566862640bba93e6bdc360637c9dc2e1446757d2\",\"dweb:/ipfs/QmRGnSxbbDBFDcJiNkKyAj1K8Y88PbLub13Pf6jiWmT4Vn\"]},\"contracts/core/interfaces/base/IBalanceOperator.sol\":{\"keccak256\":\"0x94b8021077fda947be77dca350159a846dd170c209d2e4c03a6408bc02a618b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://470dacfc789e4b343df87d1b2b425645e81a86b7ebb05c2b5e7ec2874b748d2b\",\"dweb:/ipfs/Qmc6Bq66WqoPJVTyBz8qkNyPqbv3T8mwvCu2qvRUnnXp3E\"]},\"contracts/core/interfaces/base/IBalanceReservable.sol\":{\"keccak256\":\"0x6075948216be9acd214a2ee9d3829b09e3111c9ad7cd9f18d2331a3c5eee1e66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0580f9012407ab503876a89009d3433f19ac46c5404d3bf7c66402cd4547faf\",\"dweb:/ipfs/QmXXqnZwa79sfcyg8TWZvmacJi5xWerZtLogx7xRX7NZYM\"]},\"contracts/core/interfaces/base/IBalanceTransferable.sol\":{\"keccak256\":\"0xdcb1692753e9135b5c49d40440775e968bdbb3a252a478ae5d28a28fde056d6d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96c105c028d21f0da352fa0183d15a06a48c260cbccbafd7b14aab5c75f40002\",\"dweb:/ipfs/QmP7JTwgssyNwXaLrP5NKS87k6FyygLCgMxmT6ViRYG6DA\"]},\"contracts/core/interfaces/base/IBalanceVerifiable.sol\":{\"keccak256\":\"0xe14a3a0d0f0355f8a0cc62f4292e38d041c5ef67d39f090d140562886fb08c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a48c127e7ef1edd636d33cc8d892ec30d92066357a7d0a36b73d27d294ad8e40\",\"dweb:/ipfs/QmWaMMg9kqJhjoD48tuzbVTwR3YjkRt7tuxY88uLNCS4vw\"]},\"contracts/core/interfaces/base/IBalanceWithdrawable.sol\":{\"keccak256\":\"0xb2ab22b87042718088b74144150c1614ccffa80e0e80b95604e22df1059e7f0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a7a437e48bae6154cd61e3beeff2af3a4d7db0901c645f9159f817dec489696\",\"dweb:/ipfs/QmVv2Z25o87QKVbcgnmM4WjB1NsUohXmSUgwUxPFnhi72X\"]},\"contracts/core/interfaces/base/ILedgerVerifiable.sol\":{\"keccak256\":\"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd\",\"dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG\"]},\"contracts/core/interfaces/financial/ILedgerVault.sol\":{\"keccak256\":\"0xd199c9ac6cb88bf2db139e9cd0c058572f8fcde9211e65d3d2e75306282265e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39ba49cf61ae771d670c7ca7c92978998645044bac269d64ff719353d11e46c3\",\"dweb:/ipfs/QmSy5naHwxWhPmHzz64sphH5Ra1fRxav7XuzeT6wE7cTig\"]},\"contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0xe1ee6dd03e1bf5fb8c7a8e955cb5bd897a14dbc30fd8e6ba6c1812497e4eb894\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://129bc7a13b1cbdcb70cd69c2cae8b2c247655b7c631182834edc8d9cb48d09d5\",\"dweb:/ipfs/QmbasykknjmDwKhEBnojEHYEHjMmTFSxyfWFHj92FYtTeM\"]},\"contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0x5d99ec9405886a20eeff6ea243c1d94b5994a474338b866d74ffa9bbfa9473f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1de4b84ddb631eee3d1eb0f921f0d0d20be3f6e808b8b2a21082436816884095\",\"dweb:/ipfs/QmaKZ938AabVXewdFBVtV8SFD4eWJq59AsdoV3aBMY7cmB\"]},\"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol\":{\"keccak256\":\"0xddc929860b4b19174d82efac01d03194a76285e201244deb302dcc6bf87d904a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bea370f3785df0b0a50c20718bc291edad289cb45a6dc8c9296f52bd6402b9f4\",\"dweb:/ipfs/QmWYP8Dbffb74CGUngFUmC7rBkxBWx7bqZdv8boJ6o1SEp\"]},\"contracts/core/primitives/upgradeable/LedgerUpgradeable.sol\":{\"keccak256\":\"0x2e51d076c533c1161e843e808db34e7f774b9acdb61e6c83dbeda6fe07920c2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4482e61cfc721dc96e1ef47f56010ad0f37c225949609bba0f03c406a8ac0c2\",\"dweb:/ipfs/QmdSXpbPbrXFDUr4sHQ6BJeRUGWq2EpoCiiS8APxFeYysX\"]},\"contracts/financial/LedgerVault.sol\":{\"keccak256\":\"0xd76b5cff8f55525dd0b59ad4d15cd4b6c4593b2ae4cfeceb3c6110012b8a8c96\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96eed49d7f8ff3dd9604a99c610fd7e57c7e8510885289790f65c72ce739e89f\",\"dweb:/ipfs/QmZdPYh9JE1UQEEQGbV6uWVanMVdcwVDxRJEcrLTB9zRhi\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab\",\"dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringDeposit"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringTransfer"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NoFundsToClaim"},{"inputs":[],"type":"error","name":"NoFundsToCollect"},{"inputs":[],"type":"error","name":"NoFundsToLock"},{"inputs":[],"type":"error","name":"NoFundsToRelease"},{"inputs":[],"type":"error","name":"NoFundsToReserve"},{"inputs":[],"type":"error","name":"NoFundsToTransfer"},{"inputs":[],"type":"error","name":"NoFundsToWithdraw"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsClaimed","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsCollected","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"origin","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false}],"type":"event","name":"FundsDeposited","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsLocked","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsReleased","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsReserved","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"origin","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false}],"type":"event","name":"FundsTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"origin","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsWithdrawn","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"collect","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"view","type":"function","name":"getLedgerBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"lock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"release","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"reserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"claim(address,uint256,address)":{"details":"The claimer is authorized to process the funds from the account. Only operator role can handle this methods.","params":{"account":"The address of the account whose funds are being claimed.","amount":"The amount of funds to claim.","currency":"The currency to associate claim with. Use address(0) for the native coin."}},"collect(address,uint256,address)":{"params":{"amount":"The amount of funds to collect.","currency":"The address of the ERC20 token to collect. Use `address(0)` for native tokens.","from":"The address of the account from which the reserved funds are being collected."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"deposit(address,uint256,address)":{"params":{"amount":"The amount of currency to deposit.","currency":"The address of the ERC20 token to deposit.","recipient":"The address of the account to credit with the deposit."}},"getBalance(address)":{"details":"The function checks the balance for both native and ERC-20 tokens.","params":{"currency":"The address of the currency to check the balance of."}},"getLedgerBalance(address,address)":{"params":{"account":"The address of the account whose balance is being queried.","currency":"The address of the currency to retrieve the balance for."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"lock(address,uint256,address)":{"details":"The funds are immobilized and cannot be withdrawn or transferred until released or claimed. Only operator role can handle this methods.","params":{"account":"The address of the account for which the funds will be locked.","amount":"The amount of funds to lock.","currency":"The currency to associate lock with. Use address(0) for the native coin."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"release(address,uint256,address)":{"params":{"account":"The address of the account for which the funds will be released.","amount":"The amount of funds to release.","currency":"The currency to associate release with. Use address(0) for the native coin."}},"reserve(address,uint256,address)":{"params":{"amount":"The amount of funds to reserve.","currency":"The address of the ERC20 token to reserve. Use `address(0)` for native tokens.","to":"The address of the recipient for whom the funds are being reserved."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"transfer(address,uint256,address)":{"params":{"amount":"The amount of tokens to transfer.","currency":"The address of the currency to transfer. Use `address(0)` for the native coin.","recipient":"The address of the account to credit with the transfer."}},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"withdraw(address,uint256,address)":{"params":{"amount":"The amount of tokens to withdraw.","currency":"The currency to associate fees with. Use address(0) for the native coin.","recipient":"The address that will receive the withdrawn tokens."}}},"version":1},"userdoc":{"kind":"user","methods":{"claim(address,uint256,address)":{"notice":"Claims a specific amount of locked funds on behalf of a claimer."},"collect(address,uint256,address)":{"notice":"Collects a specific amount of previously reserved funds."},"deposit(address,uint256,address)":{"notice":"Deposits a specified amount of currency into the treasury for a given recipient."},"getBalance(address)":{"notice":"Returns the general's balance for the specified currency."},"getLedgerBalance(address,address)":{"notice":"Retrieves the ledger balance of an account for a specific currency."},"lock(address,uint256,address)":{"notice":"Locks a specific amount of funds for a given account."},"release(address,uint256,address)":{"notice":"Release a specific amount of funds from locked pool."},"reserve(address,uint256,address)":{"notice":"Reserves a specific amount of funds from the caller's balance for a recipient."},"transfer(address,uint256,address)":{"notice":"Transfers tokens internally within the ledger from the caller to a specified recipient."},"withdraw(address,uint256,address)":{"notice":"Withdraws tokens from the contract to a specified recipient's address."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/financial/LedgerVault.sol":"LedgerVault"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceDepositor.sol":{"keccak256":"0x5c52b09eb3ef3b077d02c9a989624b2dc1e2a00f026b65a04b6bc67206c751d8","urls":["bzz-raw://0945732e1b234e80dee53dfd566862640bba93e6bdc360637c9dc2e1446757d2","dweb:/ipfs/QmRGnSxbbDBFDcJiNkKyAj1K8Y88PbLub13Pf6jiWmT4Vn"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceOperator.sol":{"keccak256":"0x94b8021077fda947be77dca350159a846dd170c209d2e4c03a6408bc02a618b0","urls":["bzz-raw://470dacfc789e4b343df87d1b2b425645e81a86b7ebb05c2b5e7ec2874b748d2b","dweb:/ipfs/Qmc6Bq66WqoPJVTyBz8qkNyPqbv3T8mwvCu2qvRUnnXp3E"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceReservable.sol":{"keccak256":"0x6075948216be9acd214a2ee9d3829b09e3111c9ad7cd9f18d2331a3c5eee1e66","urls":["bzz-raw://f0580f9012407ab503876a89009d3433f19ac46c5404d3bf7c66402cd4547faf","dweb:/ipfs/QmXXqnZwa79sfcyg8TWZvmacJi5xWerZtLogx7xRX7NZYM"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceTransferable.sol":{"keccak256":"0xdcb1692753e9135b5c49d40440775e968bdbb3a252a478ae5d28a28fde056d6d","urls":["bzz-raw://96c105c028d21f0da352fa0183d15a06a48c260cbccbafd7b14aab5c75f40002","dweb:/ipfs/QmP7JTwgssyNwXaLrP5NKS87k6FyygLCgMxmT6ViRYG6DA"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceVerifiable.sol":{"keccak256":"0xe14a3a0d0f0355f8a0cc62f4292e38d041c5ef67d39f090d140562886fb08c80","urls":["bzz-raw://a48c127e7ef1edd636d33cc8d892ec30d92066357a7d0a36b73d27d294ad8e40","dweb:/ipfs/QmWaMMg9kqJhjoD48tuzbVTwR3YjkRt7tuxY88uLNCS4vw"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceWithdrawable.sol":{"keccak256":"0xb2ab22b87042718088b74144150c1614ccffa80e0e80b95604e22df1059e7f0b","urls":["bzz-raw://1a7a437e48bae6154cd61e3beeff2af3a4d7db0901c645f9159f817dec489696","dweb:/ipfs/QmVv2Z25o87QKVbcgnmM4WjB1NsUohXmSUgwUxPFnhi72X"],"license":"MIT"},"contracts/core/interfaces/base/ILedgerVerifiable.sol":{"keccak256":"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95","urls":["bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd","dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG"],"license":"MIT"},"contracts/core/interfaces/financial/ILedgerVault.sol":{"keccak256":"0xd199c9ac6cb88bf2db139e9cd0c058572f8fcde9211e65d3d2e75306282265e4","urls":["bzz-raw://39ba49cf61ae771d670c7ca7c92978998645044bac269d64ff719353d11e46c3","dweb:/ipfs/QmSy5naHwxWhPmHzz64sphH5Ra1fRxav7XuzeT6wE7cTig"],"license":"MIT"},"contracts/core/libraries/FinancialOps.sol":{"keccak256":"0xe1ee6dd03e1bf5fb8c7a8e955cb5bd897a14dbc30fd8e6ba6c1812497e4eb894","urls":["bzz-raw://129bc7a13b1cbdcb70cd69c2cae8b2c247655b7c631182834edc8d9cb48d09d5","dweb:/ipfs/QmbasykknjmDwKhEBnojEHYEHjMmTFSxyfWFHj92FYtTeM"],"license":"GPL-3.0-or-later"},"contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0x5d99ec9405886a20eeff6ea243c1d94b5994a474338b866d74ffa9bbfa9473f0","urls":["bzz-raw://1de4b84ddb631eee3d1eb0f921f0d0d20be3f6e808b8b2a21082436816884095","dweb:/ipfs/QmaKZ938AabVXewdFBVtV8SFD4eWJq59AsdoV3aBMY7cmB"],"license":"MIT"},"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol":{"keccak256":"0xddc929860b4b19174d82efac01d03194a76285e201244deb302dcc6bf87d904a","urls":["bzz-raw://bea370f3785df0b0a50c20718bc291edad289cb45a6dc8c9296f52bd6402b9f4","dweb:/ipfs/QmWYP8Dbffb74CGUngFUmC7rBkxBWx7bqZdv8boJ6o1SEp"],"license":"MIT"},"contracts/core/primitives/upgradeable/LedgerUpgradeable.sol":{"keccak256":"0x2e51d076c533c1161e843e808db34e7f774b9acdb61e6c83dbeda6fe07920c2a","urls":["bzz-raw://a4482e61cfc721dc96e1ef47f56010ad0f37c225949609bba0f03c406a8ac0c2","dweb:/ipfs/QmdSXpbPbrXFDUr4sHQ6BJeRUGWq2EpoCiiS8APxFeYysX"],"license":"MIT"},"contracts/financial/LedgerVault.sol":{"keccak256":"0xd76b5cff8f55525dd0b59ad4d15cd4b6c4593b2ae4cfeceb3c6110012b8a8c96","urls":["bzz-raw://96eed49d7f8ff3dd9604a99c610fd7e57c7e8510885289790f65c72ce739e89f","dweb:/ipfs/QmZdPYh9JE1UQEEQGbV6uWVanMVdcwVDxRJEcrLTB9zRhi"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5","urls":["bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab","dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":5046,"contract":"contracts/financial/LedgerVault.sol:LedgerVault","label":"_locked","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/financial/LedgerVault.sol","id":5315,"exportedSymbols":{"AccessControlledUpgradeable":[2670],"BalanceOperatorUpgradeable":[3103],"FinancialOps":[2021],"ILedgerVault":[1270],"Initializable":[50729],"LedgerVault":[5314],"ReentrancyGuardTransientUpgradeable":[52820],"UUPSUpgradeable":[50911]},"nodeType":"SourceUnit","src":"124:8211:57","nodes":[{"id":5009,"nodeType":"PragmaDirective","src":"124:23:57","nodes":[],"literals":["solidity","0.8",".26"]},{"id":5011,"nodeType":"ImportDirective","src":"149:98:57","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":5315,"sourceUnit":50730,"symbolAliases":[{"foreign":{"id":5010,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50729,"src":"158:13:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5013,"nodeType":"ImportDirective","src":"248:102:57","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5315,"sourceUnit":50912,"symbolAliases":[{"foreign":{"id":5012,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50911,"src":"257:15:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5015,"nodeType":"ImportDirective","src":"396:136:57","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5315,"sourceUnit":52821,"symbolAliases":[{"foreign":{"id":5014,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"405:35:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5017,"nodeType":"ImportDirective","src":"533:115:57","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5315,"sourceUnit":2671,"symbolAliases":[{"foreign":{"id":5016,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2670,"src":"542:27:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5019,"nodeType":"ImportDirective","src":"649:113:57","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5315,"sourceUnit":3104,"symbolAliases":[{"foreign":{"id":5018,"name":"BalanceOperatorUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3103,"src":"658:26:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5021,"nodeType":"ImportDirective","src":"764:83:57","nodes":[],"absolutePath":"contracts/core/interfaces/financial/ILedgerVault.sol","file":"@synaps3/core/interfaces/financial/ILedgerVault.sol","nameLocation":"-1:-1:-1","scope":5315,"sourceUnit":1271,"symbolAliases":[{"foreign":{"id":5020,"name":"ILedgerVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"773:12:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5023,"nodeType":"ImportDirective","src":"848:72:57","nodes":[],"absolutePath":"contracts/core/libraries/FinancialOps.sol","file":"@synaps3/core/libraries/FinancialOps.sol","nameLocation":"-1:-1:-1","scope":5315,"sourceUnit":2022,"symbolAliases":[{"foreign":{"id":5022,"name":"FinancialOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2021,"src":"857:12:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5314,"nodeType":"ContractDefinition","src":"1231:7103:57","nodes":[{"id":5039,"nodeType":"UsingForDirective","src":"1424:31:57","nodes":[],"global":false,"libraryName":{"id":5037,"name":"FinancialOps","nameLocations":["1430:12:57"],"nodeType":"IdentifierPath","referencedDeclaration":2021,"src":"1430:12:57"},"typeName":{"id":5038,"name":"address","nodeType":"ElementaryTypeName","src":"1447:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":5046,"nodeType":"VariableDeclaration","src":"1523:63:57","nodes":[],"constant":false,"documentation":{"id":5040,"nodeType":"StructuredDocumentation","src":"1461:57:57","text":"@dev Holds the registry of locked funds for accounts."},"mutability":"mutable","name":"_locked","nameLocation":"1579:7:57","scope":5314,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":5045,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5041,"name":"address","nodeType":"ElementaryTypeName","src":"1531:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1523:47:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5044,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5042,"name":"address","nodeType":"ElementaryTypeName","src":"1550:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1542:27:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5043,"name":"uint256","nodeType":"ElementaryTypeName","src":"1561:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"id":5055,"nodeType":"EventDefinition","src":"1873:85:57","nodes":[],"anonymous":false,"documentation":{"id":5047,"nodeType":"StructuredDocumentation","src":"1593:275:57","text":"@notice Emitted when funds are locked in the ledger.\n @param account The address of the account whose funds were locked.\n @param amount The amount of funds that were locked.\n @param currency The address of the currency in which the funds were locked."},"eventSelector":"a372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f62","name":"FundsLocked","nameLocation":"1879:11:57","parameters":{"id":5054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5049,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1907:7:57","nodeType":"VariableDeclaration","scope":5055,"src":"1891:23:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5048,"name":"address","nodeType":"ElementaryTypeName","src":"1891:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5051,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1924:6:57","nodeType":"VariableDeclaration","scope":5055,"src":"1916:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5050,"name":"uint256","nodeType":"ElementaryTypeName","src":"1916:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5053,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"1948:8:57","nodeType":"VariableDeclaration","scope":5055,"src":"1932:24:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5052,"name":"address","nodeType":"ElementaryTypeName","src":"1932:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1890:67:57"}},{"id":5064,"nodeType":"EventDefinition","src":"2254:87:57","nodes":[],"anonymous":false,"documentation":{"id":5056,"nodeType":"StructuredDocumentation","src":"1964:285:57","text":"@notice Emitted when locked funds are successfully released.\n @param account The address of the account whose funds were released.\n @param amount The amount of funds that were locked.\n @param currency The address of the currency in which the funds were locked."},"eventSelector":"29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc","name":"FundsReleased","nameLocation":"2260:13:57","parameters":{"id":5063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5058,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"2290:7:57","nodeType":"VariableDeclaration","scope":5064,"src":"2274:23:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5057,"name":"address","nodeType":"ElementaryTypeName","src":"2274:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5060,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2307:6:57","nodeType":"VariableDeclaration","scope":5064,"src":"2299:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5059,"name":"uint256","nodeType":"ElementaryTypeName","src":"2299:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5062,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"2331:8:57","nodeType":"VariableDeclaration","scope":5064,"src":"2315:24:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5061,"name":"address","nodeType":"ElementaryTypeName","src":"2315:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2273:67:57"}},{"id":5073,"nodeType":"EventDefinition","src":"2620:86:57","nodes":[],"anonymous":false,"documentation":{"id":5065,"nodeType":"StructuredDocumentation","src":"2347:268:57","text":"@notice Emitted when locked funds are successfully claimed.\n @param claimer The address of the entity claiming the funds.\n @param amount The amount of funds claimed.\n @param currency The address of the currency in which the funds were claimed."},"eventSelector":"07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563","name":"FundsClaimed","nameLocation":"2626:12:57","parameters":{"id":5072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5067,"indexed":true,"mutability":"mutable","name":"claimer","nameLocation":"2655:7:57","nodeType":"VariableDeclaration","scope":5073,"src":"2639:23:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5066,"name":"address","nodeType":"ElementaryTypeName","src":"2639:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5069,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2672:6:57","nodeType":"VariableDeclaration","scope":5073,"src":"2664:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5068,"name":"uint256","nodeType":"ElementaryTypeName","src":"2664:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5071,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"2696:8:57","nodeType":"VariableDeclaration","scope":5073,"src":"2680:24:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5070,"name":"address","nodeType":"ElementaryTypeName","src":"2680:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2638:67:57"}},{"id":5076,"nodeType":"ErrorDefinition","src":"2867:22:57","nodes":[],"documentation":{"id":5074,"nodeType":"StructuredDocumentation","src":"2712:150:57","text":"@notice Thrown when there are no available funds to lock.\n @dev This error occurs if an account attempts to lock more funds than available."},"errorSelector":"a9e575de","name":"NoFundsToLock","nameLocation":"2873:13:57","parameters":{"id":5075,"nodeType":"ParameterList","parameters":[],"src":"2886:2:57"}},{"id":5079,"nodeType":"ErrorDefinition","src":"3083:23:57","nodes":[],"documentation":{"id":5077,"nodeType":"StructuredDocumentation","src":"2895:183:57","text":"@notice Thrown when there are no locked funds available to claim.\n @dev This error occurs if an account or claimer tries to claim funds that are not locked or insufficient."},"errorSelector":"dff46e2b","name":"NoFundsToClaim","nameLocation":"3089:14:57","parameters":{"id":5078,"nodeType":"ParameterList","parameters":[],"src":"3103:2:57"}},{"id":5082,"nodeType":"ErrorDefinition","src":"3295:25:57","nodes":[],"documentation":{"id":5080,"nodeType":"StructuredDocumentation","src":"3112:178:57","text":"@notice Thrown when there are no locked funds available to release.\n @dev This error occurs if an operator tries to releases funds that are not locked or insufficient."},"errorSelector":"b7cc22bc","name":"NoFundsToRelease","nameLocation":"3301:16:57","parameters":{"id":5081,"nodeType":"ParameterList","parameters":[],"src":"3317:2:57"}},{"id":5090,"nodeType":"FunctionDefinition","src":"3379:243:57","nodes":[],"body":{"id":5089,"nodeType":"Block","src":"3393:229:57","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5086,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50697,"src":"3593:20:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3593:22:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5088,"nodeType":"ExpressionStatement","src":"3593:22:57"}]},"documentation":{"id":5083,"nodeType":"StructuredDocumentation","src":"3326:48:57","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":5084,"nodeType":"ParameterList","parameters":[],"src":"3390:2:57"},"returnParameters":{"id":5085,"nodeType":"ParameterList","parameters":[],"src":"3393:0:57"},"scope":5314,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5111,"nodeType":"FunctionDefinition","src":"3628:228:57","nodes":[],"body":{"id":5110,"nodeType":"Block","src":"3690:166:57","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5097,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50783,"src":"3700:22:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3700:24:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5099,"nodeType":"ExpressionStatement","src":"3700:24:57"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5100,"name":"__BalanceOperator_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"3734:22:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3734:24:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5102,"nodeType":"ExpressionStatement","src":"3734:24:57"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5103,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"3768:31:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3768:33:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5105,"nodeType":"ExpressionStatement","src":"3768:33:57"},{"expression":{"arguments":[{"id":5107,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5092,"src":"3835:13:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5106,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"3811:23:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:38:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5109,"nodeType":"ExpressionStatement","src":"3811:38:57"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":5095,"kind":"modifierInvocation","modifierName":{"id":5094,"name":"initializer","nameLocations":["3678:11:57"],"nodeType":"IdentifierPath","referencedDeclaration":50583,"src":"3678:11:57"},"nodeType":"ModifierInvocation","src":"3678:11:57"}],"name":"initialize","nameLocation":"3637:10:57","parameters":{"id":5093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5092,"mutability":"mutable","name":"accessManager","nameLocation":"3656:13:57","nodeType":"VariableDeclaration","scope":5111,"src":"3648:21:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5091,"name":"address","nodeType":"ElementaryTypeName","src":"3648:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3647:23:57"},"returnParameters":{"id":5096,"nodeType":"ParameterList","parameters":[],"src":"3690:0:57"},"scope":5314,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5156,"nodeType":"FunctionDefinition","src":"4328:373:57","nodes":[],"body":{"id":5155,"nodeType":"Block","src":"4431:270:57","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5126,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5114,"src":"4462:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5127,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5118,"src":"4471:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5125,"name":"getLedgerBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3330,"src":"4445:16:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":5128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4445:35:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5129,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"4483:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4445:44:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5134,"nodeType":"IfStatement","src":"4441:72:57","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5131,"name":"NoFundsToLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5076,"src":"4498:13:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4498:15:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5133,"nodeType":"RevertStatement","src":"4491:22:57"}},{"expression":{"arguments":[{"id":5136,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5114,"src":"4539:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5137,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"4548:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5138,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5118,"src":"4556:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5135,"name":"_subLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3425,"src":"4523:15:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4523:42:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5140,"nodeType":"ExpressionStatement","src":"4523:42:57"},{"expression":{"arguments":[{"id":5142,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5114,"src":"4592:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5143,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"4601:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5144,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5118,"src":"4609:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5141,"name":"_sumLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5286,"src":"4575:16:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4575:43:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5146,"nodeType":"ExpressionStatement","src":"4575:43:57"},{"eventCall":{"arguments":[{"id":5148,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5114,"src":"4645:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5149,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"4654:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5150,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5118,"src":"4662:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5147,"name":"FundsLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5055,"src":"4633:11:57","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4633:38:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5152,"nodeType":"EmitStatement","src":"4628:43:57"},{"expression":{"id":5153,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"4688:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5124,"id":5154,"nodeType":"Return","src":"4681:13:57"}]},"baseFunctions":[1245],"documentation":{"id":5112,"nodeType":"StructuredDocumentation","src":"3862:461:57","text":"@notice Locks a specific amount of funds for a given account.\n @dev The funds are immobilized and cannot be withdrawn or transferred until released or claimed.\n Only operator role can handle this methods.\n @param account The address of the account for which the funds will be locked.\n @param amount The amount of funds to lock.\n @param currency The currency to associate lock with. Use address(0) for the native coin."},"functionSelector":"4bbc170a","implemented":true,"kind":"function","modifiers":[{"id":5121,"kind":"modifierInvocation","modifierName":{"id":5120,"name":"restricted","nameLocations":["4402:10:57"],"nodeType":"IdentifierPath","referencedDeclaration":48183,"src":"4402:10:57"},"nodeType":"ModifierInvocation","src":"4402:10:57"}],"name":"lock","nameLocation":"4337:4:57","parameters":{"id":5119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5114,"mutability":"mutable","name":"account","nameLocation":"4350:7:57","nodeType":"VariableDeclaration","scope":5156,"src":"4342:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5113,"name":"address","nodeType":"ElementaryTypeName","src":"4342:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5116,"mutability":"mutable","name":"amount","nameLocation":"4367:6:57","nodeType":"VariableDeclaration","scope":5156,"src":"4359:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5115,"name":"uint256","nodeType":"ElementaryTypeName","src":"4359:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5118,"mutability":"mutable","name":"currency","nameLocation":"4383:8:57","nodeType":"VariableDeclaration","scope":5156,"src":"4375:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5117,"name":"address","nodeType":"ElementaryTypeName","src":"4375:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4341:51:57"},"returnParameters":{"id":5124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5156,"src":"4422:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5122,"name":"uint256","nodeType":"ElementaryTypeName","src":"4422:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4421:9:57"},"scope":5314,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5201,"nodeType":"FunctionDefinition","src":"5018:381:57","nodes":[],"body":{"id":5200,"nodeType":"Block","src":"5124:275:57","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5171,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5159,"src":"5155:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5172,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5163,"src":"5164:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5170,"name":"_getLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5303,"src":"5138:16:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":5173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5138:35:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5174,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"5176:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5138:44:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5179,"nodeType":"IfStatement","src":"5134:75:57","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5176,"name":"NoFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5082,"src":"5191:16:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5191:18:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5178,"nodeType":"RevertStatement","src":"5184:25:57"}},{"expression":{"arguments":[{"id":5181,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5159,"src":"5236:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5182,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"5245:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5183,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5163,"src":"5253:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5180,"name":"_subLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5267,"src":"5219:16:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5219:43:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5185,"nodeType":"ExpressionStatement","src":"5219:43:57"},{"expression":{"arguments":[{"id":5187,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5159,"src":"5288:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5188,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"5297:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5189,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5163,"src":"5305:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5186,"name":"_sumLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3398,"src":"5272:15:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5272:42:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5191,"nodeType":"ExpressionStatement","src":"5272:42:57"},{"eventCall":{"arguments":[{"id":5193,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5159,"src":"5343:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5194,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"5352:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5195,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5163,"src":"5360:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5192,"name":"FundsReleased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5064,"src":"5329:13:57","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5329:40:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5197,"nodeType":"EmitStatement","src":"5324:45:57"},{"expression":{"id":5198,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"5386:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5169,"id":5199,"nodeType":"Return","src":"5379:13:57"}]},"baseFunctions":[1269],"documentation":{"id":5157,"nodeType":"StructuredDocumentation","src":"4707:306:57","text":"@notice Release a specific amount of funds from locked pool.\n @param account The address of the account for which the funds will be released.\n @param amount The amount of funds to release.\n @param currency The currency to associate release with. Use address(0) for the native coin."},"functionSelector":"15f41501","implemented":true,"kind":"function","modifiers":[{"id":5166,"kind":"modifierInvocation","modifierName":{"id":5165,"name":"restricted","nameLocations":["5095:10:57"],"nodeType":"IdentifierPath","referencedDeclaration":48183,"src":"5095:10:57"},"nodeType":"ModifierInvocation","src":"5095:10:57"}],"name":"release","nameLocation":"5027:7:57","parameters":{"id":5164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5159,"mutability":"mutable","name":"account","nameLocation":"5043:7:57","nodeType":"VariableDeclaration","scope":5201,"src":"5035:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5158,"name":"address","nodeType":"ElementaryTypeName","src":"5035:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5161,"mutability":"mutable","name":"amount","nameLocation":"5060:6:57","nodeType":"VariableDeclaration","scope":5201,"src":"5052:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5160,"name":"uint256","nodeType":"ElementaryTypeName","src":"5052:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5163,"mutability":"mutable","name":"currency","nameLocation":"5076:8:57","nodeType":"VariableDeclaration","scope":5201,"src":"5068:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5162,"name":"address","nodeType":"ElementaryTypeName","src":"5068:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5034:51:57"},"returnParameters":{"id":5169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5168,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5201,"src":"5115:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5167,"name":"uint256","nodeType":"ElementaryTypeName","src":"5115:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5114:9:57"},"scope":5314,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5248,"nodeType":"FunctionDefinition","src":"5852:385:57","nodes":[],"body":{"id":5247,"nodeType":"Block","src":"5956:281:57","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5216,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5204,"src":"5987:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5217,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5208,"src":"5996:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5215,"name":"_getLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5303,"src":"5970:16:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":5218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5970:35:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5219,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5206,"src":"6008:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5970:44:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5224,"nodeType":"IfStatement","src":"5966:73:57","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5221,"name":"NoFundsToClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5079,"src":"6023:14:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6023:16:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5223,"nodeType":"RevertStatement","src":"6016:23:57"}},{"expression":{"arguments":[{"id":5226,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5204,"src":"6066:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5227,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5206,"src":"6075:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5228,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5208,"src":"6083:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5225,"name":"_subLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5267,"src":"6049:16:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6049:43:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5230,"nodeType":"ExpressionStatement","src":"6049:43:57"},{"expression":{"arguments":[{"expression":{"id":5232,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6121:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6125:6:57","memberName":"sender","nodeType":"MemberAccess","src":"6121:10:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5234,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5206,"src":"6133:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5235,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5208,"src":"6141:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5231,"name":"_sumLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3398,"src":"6105:15:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6105:45:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5237,"nodeType":"ExpressionStatement","src":"6105:45:57"},{"eventCall":{"arguments":[{"expression":{"id":5239,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6178:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6182:6:57","memberName":"sender","nodeType":"MemberAccess","src":"6178:10:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5241,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5206,"src":"6190:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5242,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5208,"src":"6198:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5238,"name":"FundsClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5073,"src":"6165:12:57","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6165:42:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5244,"nodeType":"EmitStatement","src":"6160:47:57"},{"expression":{"id":5245,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5206,"src":"6224:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5214,"id":5246,"nodeType":"Return","src":"6217:13:57"}]},"baseFunctions":[1257],"documentation":{"id":5202,"nodeType":"StructuredDocumentation","src":"5405:442:57","text":"@notice Claims a specific amount of locked funds on behalf of a claimer.\n @dev The claimer is authorized to process the funds from the account.\n Only operator role can handle this methods.\n @param account The address of the account whose funds are being claimed.\n @param amount The amount of funds to claim.\n @param currency The currency to associate claim with. Use address(0) for the native coin."},"functionSelector":"9e96a260","implemented":true,"kind":"function","modifiers":[{"id":5211,"kind":"modifierInvocation","modifierName":{"id":5210,"name":"restricted","nameLocations":["5927:10:57"],"nodeType":"IdentifierPath","referencedDeclaration":48183,"src":"5927:10:57"},"nodeType":"ModifierInvocation","src":"5927:10:57"}],"name":"claim","nameLocation":"5861:5:57","parameters":{"id":5209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5204,"mutability":"mutable","name":"account","nameLocation":"5875:7:57","nodeType":"VariableDeclaration","scope":5248,"src":"5867:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5203,"name":"address","nodeType":"ElementaryTypeName","src":"5867:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5206,"mutability":"mutable","name":"amount","nameLocation":"5892:6:57","nodeType":"VariableDeclaration","scope":5248,"src":"5884:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5205,"name":"uint256","nodeType":"ElementaryTypeName","src":"5884:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5208,"mutability":"mutable","name":"currency","nameLocation":"5908:8:57","nodeType":"VariableDeclaration","scope":5248,"src":"5900:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5207,"name":"address","nodeType":"ElementaryTypeName","src":"5900:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5866:51:57"},"returnParameters":{"id":5214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5213,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5248,"src":"5947:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5212,"name":"uint256","nodeType":"ElementaryTypeName","src":"5947:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5946:9:57"},"scope":5314,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5267,"nodeType":"FunctionDefinition","src":"6659:138:57","nodes":[],"body":{"id":5266,"nodeType":"Block","src":"6744:53:57","nodes":[],"statements":[{"expression":{"id":5264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5258,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"6754:7:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5261,"indexExpression":{"id":5259,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5251,"src":"6762:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6754:16:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5262,"indexExpression":{"id":5260,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5255,"src":"6771:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6754:26:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":5263,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5253,"src":"6784:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6754:36:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5265,"nodeType":"ExpressionStatement","src":"6754:36:57"}]},"documentation":{"id":5249,"nodeType":"StructuredDocumentation","src":"6243:411:57","text":"@notice Reduces the locked funds of an account for a specific currency.\n @dev Deducts the specified `amount` from the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked funds are being reduced.\n @param amount The amount to subtract from the locked balance.\n @param currency The address of the currency being reduced."},"implemented":true,"kind":"function","modifiers":[],"name":"_subLockedAmount","nameLocation":"6668:16:57","parameters":{"id":5256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5251,"mutability":"mutable","name":"account","nameLocation":"6693:7:57","nodeType":"VariableDeclaration","scope":5267,"src":"6685:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5250,"name":"address","nodeType":"ElementaryTypeName","src":"6685:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5253,"mutability":"mutable","name":"amount","nameLocation":"6710:6:57","nodeType":"VariableDeclaration","scope":5267,"src":"6702:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5252,"name":"uint256","nodeType":"ElementaryTypeName","src":"6702:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5255,"mutability":"mutable","name":"currency","nameLocation":"6726:8:57","nodeType":"VariableDeclaration","scope":5267,"src":"6718:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5254,"name":"address","nodeType":"ElementaryTypeName","src":"6718:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6684:51:57"},"returnParameters":{"id":5257,"nodeType":"ParameterList","parameters":[],"src":"6744:0:57"},"scope":5314,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":5286,"nodeType":"FunctionDefinition","src":"7213:138:57","nodes":[],"body":{"id":5285,"nodeType":"Block","src":"7298:53:57","nodes":[],"statements":[{"expression":{"id":5283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5277,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"7308:7:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5280,"indexExpression":{"id":5278,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5270,"src":"7316:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7308:16:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5281,"indexExpression":{"id":5279,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5274,"src":"7325:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7308:26:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5282,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5272,"src":"7338:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7308:36:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5284,"nodeType":"ExpressionStatement","src":"7308:36:57"}]},"documentation":{"id":5268,"nodeType":"StructuredDocumentation","src":"6803:405:57","text":"@notice Increases the locked funds of an account for a specific currency.\n @dev Adds the specified `amount` to the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked funds are being increased.\n @param amount The amount to add to the locked balance.\n @param currency The address of the currency being increased."},"implemented":true,"kind":"function","modifiers":[],"name":"_sumLockedAmount","nameLocation":"7222:16:57","parameters":{"id":5275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5270,"mutability":"mutable","name":"account","nameLocation":"7247:7:57","nodeType":"VariableDeclaration","scope":5286,"src":"7239:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5269,"name":"address","nodeType":"ElementaryTypeName","src":"7239:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5272,"mutability":"mutable","name":"amount","nameLocation":"7264:6:57","nodeType":"VariableDeclaration","scope":5286,"src":"7256:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5271,"name":"uint256","nodeType":"ElementaryTypeName","src":"7256:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5274,"mutability":"mutable","name":"currency","nameLocation":"7280:8:57","nodeType":"VariableDeclaration","scope":5286,"src":"7272:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5273,"name":"address","nodeType":"ElementaryTypeName","src":"7272:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7238:51:57"},"returnParameters":{"id":5276,"nodeType":"ParameterList","parameters":[],"src":"7298:0:57"},"scope":5314,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":5303,"nodeType":"FunctionDefinition","src":"7802:142:57","nodes":[],"body":{"id":5302,"nodeType":"Block","src":"7894:50:57","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":5296,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"7911:7:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5298,"indexExpression":{"id":5297,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5289,"src":"7919:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7911:16:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5300,"indexExpression":{"id":5299,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5291,"src":"7928:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7911:26:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5295,"id":5301,"nodeType":"Return","src":"7904:33:57"}]},"documentation":{"id":5287,"nodeType":"StructuredDocumentation","src":"7357:440:57","text":"@notice Retrieves the locked balance of an account for a specific currency.\n @dev Returns the value stored in the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked balance is being queried.\n @param currency The address of the currency to check the locked balance for.\n @return The locked balance of the specified account for the given currency."},"implemented":true,"kind":"function","modifiers":[],"name":"_getLockedAmount","nameLocation":"7811:16:57","parameters":{"id":5292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5289,"mutability":"mutable","name":"account","nameLocation":"7836:7:57","nodeType":"VariableDeclaration","scope":5303,"src":"7828:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5288,"name":"address","nodeType":"ElementaryTypeName","src":"7828:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5291,"mutability":"mutable","name":"currency","nameLocation":"7853:8:57","nodeType":"VariableDeclaration","scope":5303,"src":"7845:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5290,"name":"address","nodeType":"ElementaryTypeName","src":"7845:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7827:35:57"},"returnParameters":{"id":5295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5303,"src":"7885:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5293,"name":"uint256","nodeType":"ElementaryTypeName","src":"7885:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7884:9:57"},"scope":5314,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":5313,"nodeType":"FunctionDefinition","src":"8248:84:57","nodes":[],"body":{"id":5312,"nodeType":"Block","src":"8330:2:57","nodes":[],"statements":[]},"baseFunctions":[50865],"documentation":{"id":5304,"nodeType":"StructuredDocumentation","src":"7950:293:57","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":5310,"kind":"modifierInvocation","modifierName":{"id":5309,"name":"onlyAdmin","nameLocations":["8320:9:57"],"nodeType":"IdentifierPath","referencedDeclaration":2588,"src":"8320:9:57"},"nodeType":"ModifierInvocation","src":"8320:9:57"}],"name":"_authorizeUpgrade","nameLocation":"8257:17:57","overrides":{"id":5308,"nodeType":"OverrideSpecifier","overrides":[],"src":"8311:8:57"},"parameters":{"id":5307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5306,"mutability":"mutable","name":"newImplementation","nameLocation":"8283:17:57","nodeType":"VariableDeclaration","scope":5313,"src":"8275:25:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5305,"name":"address","nodeType":"ElementaryTypeName","src":"8275:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8274:27:57"},"returnParameters":{"id":5311,"nodeType":"ParameterList","parameters":[],"src":"8330:0:57"},"scope":5314,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":5025,"name":"Initializable","nameLocations":["1259:13:57"],"nodeType":"IdentifierPath","referencedDeclaration":50729,"src":"1259:13:57"},"id":5026,"nodeType":"InheritanceSpecifier","src":"1259:13:57"},{"baseName":{"id":5027,"name":"UUPSUpgradeable","nameLocations":["1278:15:57"],"nodeType":"IdentifierPath","referencedDeclaration":50911,"src":"1278:15:57"},"id":5028,"nodeType":"InheritanceSpecifier","src":"1278:15:57"},{"baseName":{"id":5029,"name":"AccessControlledUpgradeable","nameLocations":["1299:27:57"],"nodeType":"IdentifierPath","referencedDeclaration":2670,"src":"1299:27:57"},"id":5030,"nodeType":"InheritanceSpecifier","src":"1299:27:57"},{"baseName":{"id":5031,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1332:35:57"],"nodeType":"IdentifierPath","referencedDeclaration":52820,"src":"1332:35:57"},"id":5032,"nodeType":"InheritanceSpecifier","src":"1332:35:57"},{"baseName":{"id":5033,"name":"BalanceOperatorUpgradeable","nameLocations":["1373:26:57"],"nodeType":"IdentifierPath","referencedDeclaration":3103,"src":"1373:26:57"},"id":5034,"nodeType":"InheritanceSpecifier","src":"1373:26:57"},{"baseName":{"id":5035,"name":"ILedgerVault","nameLocations":["1405:12:57"],"nodeType":"IdentifierPath","referencedDeclaration":1270,"src":"1405:12:57"},"id":5036,"nodeType":"InheritanceSpecifier","src":"1405:12:57"}],"canonicalName":"LedgerVault","contractDependencies":[],"contractKind":"contract","documentation":{"id":5024,"nodeType":"StructuredDocumentation","src":"922:309:57","text":"@title LedgerVault\n @notice A vault contract designed to store, lock, release, and manage funds securely.\n @dev This contract includes administrative methods (`restricted`) and general user methods.\n Supports operations such as deposits, withdrawals, transfers, and locked funds management."},"fullyImplemented":true,"linearizedBaseContracts":[5314,1270,3103,909,3435,1051,1007,965,995,881,1037,52820,2670,48356,53853,52521,50911,59481,50729],"name":"LedgerVault","nameLocation":"1240:11:57","scope":5315,"usedErrors":[937,940,982,1024,1759,1763,2570,5076,5079,5082,50492,50495,50756,50761,52752,53824,53830,53834,59676,59689,61266,61972,62264],"usedEvents":[868,923,934,979,1021,5055,5064,5073,50500,53820,59403]}],"license":"MIT"},"id":57} diff --git a/src/config/abi/PoliciesAgg.json b/src/config/abi/PoliciesAgg.json index 0576bbcf..dc17f0c7 100644 --- a/src/config/abi/PoliciesAgg.json +++ b/src/config/abi/PoliciesAgg.json @@ -1,3861 +1 @@ -{ - "abi": [ - { - "type": "constructor", - "inputs": [ - { "name": "rightsPolicyAuthorizer", "type": "address", "internalType": "address" }, - { "name": "assetOwnership", "type": "address", "internalType": "address" } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "ASSET_OWNERSHIP", - "inputs": [], - "outputs": [{ "name": "", "type": "address", "internalType": "contract IAssetOwnership" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "RIGHTS_POLICY_AUTHORIZER", - "inputs": [], - "outputs": [ - { "name": "", "type": "address", "internalType": "contract IRightsPolicyAuthorizer" } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UPGRADE_INTERFACE_VERSION", - "inputs": [], - "outputs": [{ "name": "", "type": "string", "internalType": "string" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "authority", - "inputs": [], - "outputs": [{ "name": "", "type": "address", "internalType": "address" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getAssetSpecificPolicies", - "inputs": [{ "name": "assetId", "type": "uint256", "internalType": "uint256" }], - "outputs": [ - { - "name": "", - "type": "tuple[]", - "internalType": "struct PoliciesAgg.PolicyTerms[]", - "components": [ - { "name": "policy", "type": "address", "internalType": "address" }, - { - "name": "terms", - "type": "tuple", - "internalType": "struct T.Terms", - "components": [ - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { "name": "currency", "type": "address", "internalType": "address" }, - { "name": "rateBasis", "type": "uint8", "internalType": "enum T.RateBasis" }, - { "name": "uri", "type": "string", "internalType": "string" } - ] - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getAvailablePoliciesTerms", - "inputs": [ - { "name": "holder", "type": "address", "internalType": "address" }, - { "name": "criteria", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [ - { - "name": "", - "type": "tuple[]", - "internalType": "struct PoliciesAgg.PolicyTerms[]", - "components": [ - { "name": "policy", "type": "address", "internalType": "address" }, - { - "name": "terms", - "type": "tuple", - "internalType": "struct T.Terms", - "components": [ - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { "name": "currency", "type": "address", "internalType": "address" }, - { "name": "rateBasis", "type": "uint8", "internalType": "enum T.RateBasis" }, - { "name": "uri", "type": "string", "internalType": "string" } - ] - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getHolderWidePolicies", - "inputs": [{ "name": "holder", "type": "address", "internalType": "address" }], - "outputs": [ - { - "name": "", - "type": "tuple[]", - "internalType": "struct PoliciesAgg.PolicyTerms[]", - "components": [ - { "name": "policy", "type": "address", "internalType": "address" }, - { - "name": "terms", - "type": "tuple", - "internalType": "struct T.Terms", - "components": [ - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { "name": "currency", "type": "address", "internalType": "address" }, - { "name": "rateBasis", "type": "uint8", "internalType": "enum T.RateBasis" }, - { "name": "uri", "type": "string", "internalType": "string" } - ] - } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "initialize", - "inputs": [{ "name": "accessManager", "type": "address", "internalType": "address" }], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "isConsumingScheduledOp", - "inputs": [], - "outputs": [{ "name": "", "type": "bytes4", "internalType": "bytes4" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "proxiableUUID", - "inputs": [], - "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "setAuthority", - "inputs": [{ "name": "newAuthority", "type": "address", "internalType": "address" }], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "upgradeToAndCall", - "inputs": [ - { "name": "newImplementation", "type": "address", "internalType": "address" }, - { "name": "data", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [], - "stateMutability": "payable" - }, - { - "type": "event", - "name": "AuthorityUpdated", - "inputs": [ - { "name": "authority", "type": "address", "indexed": false, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Initialized", - "inputs": [ - { "name": "version", "type": "uint64", "indexed": false, "internalType": "uint64" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Upgraded", - "inputs": [ - { "name": "implementation", "type": "address", "indexed": true, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "error", - "name": "AccessManagedInvalidAuthority", - "inputs": [{ "name": "authority", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "AccessManagedRequiredDelay", - "inputs": [ - { "name": "caller", "type": "address", "internalType": "address" }, - { "name": "delay", "type": "uint32", "internalType": "uint32" } - ] - }, - { - "type": "error", - "name": "AccessManagedUnauthorized", - "inputs": [{ "name": "caller", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "AddressEmptyCode", - "inputs": [{ "name": "target", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "ERC1967InvalidImplementation", - "inputs": [{ "name": "implementation", "type": "address", "internalType": "address" }] - }, - { "type": "error", "name": "ERC1967NonPayable", "inputs": [] }, - { "type": "error", "name": "FailedCall", "inputs": [] }, - { "type": "error", "name": "InvalidInitialization", "inputs": [] }, - { - "type": "error", - "name": "InvalidUnauthorizedOperation", - "inputs": [{ "name": "", "type": "string", "internalType": "string" }] - }, - { "type": "error", "name": "NotInitializing", "inputs": [] }, - { "type": "error", "name": "UUPSUnauthorizedCallContext", "inputs": [] }, - { - "type": "error", - "name": "UUPSUnsupportedProxiableUUID", - "inputs": [{ "name": "slot", "type": "bytes32", "internalType": "bytes32" }] - } - ], - "bytecode": { - "object": "0x60e03461016657601f61169938819003918201601f19168301916001600160401b0383118484101761016a57808492604094855283398101031261016657610052602061004b8361017e565b920161017e565b90306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610157576002600160401b03196001600160401b038216016100ee575b506001600160a01b0390811660a0521660c0526040516115069081610193823960805181818161079f0152610837015260a0518181816104e90152611011015260c05181818160c901526106ed0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009d565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101665756fe60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461081757806352d1902d1461077857806376e5cef1146106775780637a9e5e4b146105a05780638fb360371461050d578063968e48cf146104bd5780639f30b60f146104a3578063ad3cb1cc14610444578063bf7e214f146103f2578063c4d66de814610154578063d45944ca146100f15763f520d4eb1461009d575f80fd5b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100ed5760206003193601126100ed57610150610144610110610c1d565b6040519073ffffffffffffffffffffffffffffffffffffffff811660208301526020825261013f604083610ca5565b610fb2565b60405191829182610ded565b0390f35b346100ed5760206003193601126100ed5761016d610c1d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ea575b60011490816103e0575b1590816103d7575b506103af57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561035a575b506102306113e0565b6102386113e0565b6102406113e0565b6102486113e0565b61025181611335565b6102596113e0565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102c757005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610227565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846101be565b303b1591506101b6565b8491506101ac565b346100ed575f6003193601126100ed57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100ed575f6003193601126100ed57610150604051610465604082610ca5565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610daa565b346100ed576101506101446104b736610d20565b90610fb2565b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100ed575f6003193601126100ed577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105985760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61056e565b346100ed5760206003193601126100ed576105b9610c1d565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361064b57803b156106095761060790611335565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100ed5760206003193601126100ed5760043560405190806020830152602082526106a4604083610ca5565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561076d575f9161072a575b6101506101448484610fb2565b90506020813d602011610765575b8161074560209383610ca5565b810103126100ed576101509161075d61014492610f09565b91509161071d565b3d9150610738565b6040513d5f823e3d90fd5b346100ed575f6003193601126100ed5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107ef5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b61082036610d20565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610bdb575b506107ef576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa90811561076d575f91610b8e575b5015610b0a5773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610ad6575b5061096e57837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610aab5750813b15610a8057807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610a4f575f8083602061060795519101845af4610a49610f83565b91611437565b505034610a5857005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610b02575b81610af260209383610ca5565b810103126100ed5751908561093d565b3d9150610ae5565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610bd3575b81610ba960409383610ca5565b810103126100ed5780519081151582036100ed576020015163ffffffff8116036100ed57836108e8565b3d9150610b9c565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610862565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b6040810190811067ffffffffffffffff821117610c5c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff821117610c5c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610c5c57604052565b67ffffffffffffffff8111610c5c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060406003198301126100ed5760043573ffffffffffffffffffffffffffffffffffffffff811681036100ed579160243567ffffffffffffffff81116100ed57816023820112156100ed57806004013590610d7a82610ce6565b92610d886040519485610ca5565b828452602483830101116100ed57815f92602460209301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b602081016020825282518091526040820190602060408260051b8501019401925f905b828210610e1f57505050505090565b90919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08282030185526020865173ffffffffffffffffffffffffffffffffffffffff8151168352015190604060208201528151604082015273ffffffffffffffffffffffffffffffffffffffff60208301511660608201526040820151916004831015610edc57610ecf8260c0606060209594600197608088970152015191608060a08201520190610daa565b9701950193920190610e10565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b519073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b67ffffffffffffffff8111610c5c5760051b60200190565b8051821015610f565760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3d15610fad573d90610f9482610ce6565b91610fa26040519384610ca5565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff604051927f591b43c50000000000000000000000000000000000000000000000000000000084521660048301525f8260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561076d575f9261129a575b508151917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061108861107285610f2a565b946110806040519687610ca5565b808652610f2a565b015f5b8181106112585750508051905f5b8281106110a7575050505090565b73ffffffffffffffffffffffffffffffffffffffff6110c68284610f42565b5116905f8060405160208101907fa39371110000000000000000000000000000000000000000000000000000000082526020602482015261113a8161110e604482018c610daa565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ca5565b5190855afa91611148610f83565b921561124e578251830160208101936020818303126100ed57602081015167ffffffffffffffff81116100ed570190608090829003126100ed576040519061118f82610c89565b602081015182526111a260408201610f09565b6020830152606081015160048110156100ed576040830152608081015167ffffffffffffffff81116100ed5760209101019380601f860112156100ed5784516111ea81610ce6565b916111f86040519384610ca5565b818352602082880101116100ed576020815f9282600199018386015e8301015260608201526040519161122a83610c40565b8252602082015261123b8288610f42565b526112468187610f42565b505b01611099565b5060019150611248565b60209060405161126781610c40565b5f815260405161127681610c89565b5f81525f848201525f6040820152606080820152838201528282880101520161108b565b9091503d805f833e6112ac8183610ca5565b8101906020818303126100ed5780519067ffffffffffffffff82116100ed57019080601f830112156100ed5781516112e381610f2a565b926112f16040519485610ca5565b81845260208085019260051b8201019283116100ed57602001905b82821061131d57505050905f611041565b6020809161132a84610f09565b81520191019061130c565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561140f57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611474575080511561144c57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114c7575b611485575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561147d56fea26469706673582212206e198600d9375685c03c162ac2037f24828cdb44e5d9d100b2db48c6015b780664736f6c634300081a0033", - "sourceMap": "760:3818:3:-:0;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;-1:-1:-1;;;;;760:3818:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:56;;1163:13;;8837:64:55;760:3818:3;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;760:3818:3;;7985:34:55;7981:146;;-1:-1:-1;;;;;;;760:3818:3;;;;1648:74;760:3818;1732:49;;760:3818;;;;;;;;1163:13:56;760:3818:3;;;;;;;;;;1648:74;760:3818;;;;;;;;;;1732:49;760:3818;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;760:3818:3;-1:-1:-1;;;;;760:3818:3;;;8837:64:55;760:3818:3;;;;;;8087:29:55;;760:3818:3;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;760:3818:3;-1:-1:-1;760:3818:3;;;;;;-1:-1:-1;760:3818:3;;;;;-1:-1:-1;760:3818:3;;;;-1:-1:-1;;;;;760:3818:3;;;;;;:::o", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461081757806352d1902d1461077857806376e5cef1146106775780637a9e5e4b146105a05780638fb360371461050d578063968e48cf146104bd5780639f30b60f146104a3578063ad3cb1cc14610444578063bf7e214f146103f2578063c4d66de814610154578063d45944ca146100f15763f520d4eb1461009d575f80fd5b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100ed5760206003193601126100ed57610150610144610110610c1d565b6040519073ffffffffffffffffffffffffffffffffffffffff811660208301526020825261013f604083610ca5565b610fb2565b60405191829182610ded565b0390f35b346100ed5760206003193601126100ed5761016d610c1d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ea575b60011490816103e0575b1590816103d7575b506103af57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561035a575b506102306113e0565b6102386113e0565b6102406113e0565b6102486113e0565b61025181611335565b6102596113e0565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102c757005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610227565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846101be565b303b1591506101b6565b8491506101ac565b346100ed575f6003193601126100ed57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100ed575f6003193601126100ed57610150604051610465604082610ca5565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610daa565b346100ed576101506101446104b736610d20565b90610fb2565b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100ed575f6003193601126100ed577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105985760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61056e565b346100ed5760206003193601126100ed576105b9610c1d565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361064b57803b156106095761060790611335565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100ed5760206003193601126100ed5760043560405190806020830152602082526106a4604083610ca5565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561076d575f9161072a575b6101506101448484610fb2565b90506020813d602011610765575b8161074560209383610ca5565b810103126100ed576101509161075d61014492610f09565b91509161071d565b3d9150610738565b6040513d5f823e3d90fd5b346100ed575f6003193601126100ed5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107ef5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b61082036610d20565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610bdb575b506107ef576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa90811561076d575f91610b8e575b5015610b0a5773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610ad6575b5061096e57837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610aab5750813b15610a8057807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610a4f575f8083602061060795519101845af4610a49610f83565b91611437565b505034610a5857005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610b02575b81610af260209383610ca5565b810103126100ed5751908561093d565b3d9150610ae5565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610bd3575b81610ba960409383610ca5565b810103126100ed5780519081151582036100ed576020015163ffffffff8116036100ed57836108e8565b3d9150610b9c565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610862565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b6040810190811067ffffffffffffffff821117610c5c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff821117610c5c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610c5c57604052565b67ffffffffffffffff8111610c5c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060406003198301126100ed5760043573ffffffffffffffffffffffffffffffffffffffff811681036100ed579160243567ffffffffffffffff81116100ed57816023820112156100ed57806004013590610d7a82610ce6565b92610d886040519485610ca5565b828452602483830101116100ed57815f92602460209301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b602081016020825282518091526040820190602060408260051b8501019401925f905b828210610e1f57505050505090565b90919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08282030185526020865173ffffffffffffffffffffffffffffffffffffffff8151168352015190604060208201528151604082015273ffffffffffffffffffffffffffffffffffffffff60208301511660608201526040820151916004831015610edc57610ecf8260c0606060209594600197608088970152015191608060a08201520190610daa565b9701950193920190610e10565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b519073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b67ffffffffffffffff8111610c5c5760051b60200190565b8051821015610f565760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3d15610fad573d90610f9482610ce6565b91610fa26040519384610ca5565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff604051927f591b43c50000000000000000000000000000000000000000000000000000000084521660048301525f8260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561076d575f9261129a575b508151917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061108861107285610f2a565b946110806040519687610ca5565b808652610f2a565b015f5b8181106112585750508051905f5b8281106110a7575050505090565b73ffffffffffffffffffffffffffffffffffffffff6110c68284610f42565b5116905f8060405160208101907fa39371110000000000000000000000000000000000000000000000000000000082526020602482015261113a8161110e604482018c610daa565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ca5565b5190855afa91611148610f83565b921561124e578251830160208101936020818303126100ed57602081015167ffffffffffffffff81116100ed570190608090829003126100ed576040519061118f82610c89565b602081015182526111a260408201610f09565b6020830152606081015160048110156100ed576040830152608081015167ffffffffffffffff81116100ed5760209101019380601f860112156100ed5784516111ea81610ce6565b916111f86040519384610ca5565b818352602082880101116100ed576020815f9282600199018386015e8301015260608201526040519161122a83610c40565b8252602082015261123b8288610f42565b526112468187610f42565b505b01611099565b5060019150611248565b60209060405161126781610c40565b5f815260405161127681610c89565b5f81525f848201525f6040820152606080820152838201528282880101520161108b565b9091503d805f833e6112ac8183610ca5565b8101906020818303126100ed5780519067ffffffffffffffff82116100ed57019080601f830112156100ed5781516112e381610f2a565b926112f16040519485610ca5565b81845260208085019260051b8201019283116100ed57602001905b82821061131d57505050905f611041565b6020809161132a84610f09565b81520191019061130c565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561140f57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611474575080511561144c57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114c7575b611485575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561147d56fea26469706673582212206e198600d9375685c03c162ac2037f24828cdb44e5d9d100b2db48c6015b780664736f6c634300081a0033", - "sourceMap": "760:3818:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;;;;1240:48;760:3818;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;2503:43;760:3818;;:::i;:::-;;;;;;;;2443:18;;760:3818;;2443:18;;;760:3818;2443:18;;:::i;:::-;2503:43;:::i;:::-;760:3818;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;;:::i;:::-;8837:64:55;760:3818:3;;;;;;4301:16:55;760:3818:3;;;;4726:16:55;;:34;;;;760:3818:3;4805:1:55;4790:16;:50;;;;760:3818:3;4855:13:55;:30;;;;760:3818:3;4851:91:55;;;760:3818:3;;4805:1:55;760:3818:3;;;;;8837:64:55;760:3818:3;4979:67:55;;760:3818:3;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;760:3818:3;;3295:62:102;760:3818:3;;;3295:62:102;760:3818:3;5066:101:55;;760:3818:3;5066:101:55;760:3818:3;8837:64:55;760:3818:3;;8837:64:55;760:3818:3;5142:14:55;760:3818:3;;;4805:1:55;760:3818:3;;5142:14:55;760:3818:3;4979:67:55;760:3818:3;;;;8837:64:55;760:3818:3;4979:67:55;;;4851:91;4908:23;760:3818:3;4908:23:55;760:3818:3;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;760:3818:3;;;;;-1:-1:-1;;760:3818:3;;;;;;;1782:71:54;760:3818:3;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;760:3818:3;;;;;;;;;1103:65;760:3818;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;1782:71:54;760:3818:3;;;;;4698:71:54;;;760:3818:3;;4698:71:54;760:3818:3;;;;;;;;4698:71:54;760:3818:3;;4698:71:54;;760:3818:3;;;;;-1:-1:-1;;760:3818:3;;;;;;;:::i;:::-;;1782:71:54;760:3818:3;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;760:3818:3;4355:110:54;760:3818:3;4411:43:54;;760:3818:3;4411:43:54;760:3818:3;;;;;4411:43:54;4254:92;4302:33;760:3818:3;4302:33:54;966:10:57;760:3818:3;;;;4302:33:54;760:3818:3;;;;;-1:-1:-1;;760:3818:3;;;;;;;;;2889:19;;760:3818;2889:19;;760:3818;;2889:19;;;760:3818;2889:19;;:::i;:::-;760:3818;;2935:32;760:3818;2935:32;;760:3818;2935:32;;760:3818;;2935:15;:32;:15;760:3818;2935:15;760:3818;2935:32;;;;;;;760:3818;2935:32;;;760:3818;;3009:43;;;;:::i;2935:32::-;;;760:3818;2935:32;;760:3818;2935:32;;;;;;760:3818;2935:32;;;:::i;:::-;;;760:3818;;;;;;;3009:43;760:3818;;:::i;:::-;2935:32;;;;;;;;-1:-1:-1;2935:32:3;;;760:3818;;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;5115:6:56;760:3818:3;5106:4:56;5098:23;5094:145;;760:3818:3;;;811:66:68;760:3818:3;;;5094:145:56;5199:29;760:3818:3;5199:29:56;760:3818:3;;5199:29:56;760:3818:3;;;;:::i;:::-;;4692:6:56;760:3818:3;4683:4:56;;4675:23;:120;;;;;760:3818:3;4658:251:56;;;3058:30:102;760:3818:3;;3295:62:102;760:3818:3;;;;3058:30:102;;;;760:3818:3;3058:30:102;;760:3818:3;;3058:30:102;;760:3818:3;1893:10:102;760:3818:3;;;;3058:30:102;;;;;;;760:3818:3;3058:30:102;;;760:3818:3;1869:35:102;;1865:140;;760:3818:3;;;;;;;6156:52:56;;760:3818:3;6156:52:56;760:3818:3;6156:52:56;;;;760:3818:3;;6156:52:56;;;760:3818:3;-1:-1:-1;6152:437:56;;6518:60;;760:3818:3;6518:60:56;760:3818:3;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;760:3818:3;;811:66:68;760:3818:3;;;811:66:68;760:3818:3;2407:36:68;760:3818:3;2407:36:68;;760:3818:3;;2458:15:68;:11;;760:3818:3;4049:25:75;;760:3818:3;4091:55:75;4049:25;;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:68:-;6163:9;;;6159:70;;760:3818:3;6159:70:68;6199:19;760:3818:3;6199:19:68;760:3818:3;;6199:19:68;1744:119;1805:47;760:3818:3;1805:47:68;760:3818:3;;;;1805:47:68;6246:120:56;6317:34;760:3818:3;6317:34:56;760:3818:3;;;;6317:34:56;6156:52;;;;760:3818:3;6156:52:56;;760:3818:3;6156:52:56;;;;;;760:3818:3;6156:52:56;;;:::i;:::-;;;760:3818:3;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;760:3818:3;;1927:67:102;;;760:3818:3;;1927:67:102;;520:1:100;;760:3818:3;520:1:100;;760:3818:3;520:1:100;3058:30:102;760:3818:3;;520:1:100;;;;;;1927:67:102;3058:30;;;760:3818:3;3058:30:102;;760:3818:3;3058:30:102;;;;;;760:3818:3;3058:30:102;;;:::i;:::-;;;760:3818:3;;;;;;;;;;;;;;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;4675:120:56;760:3818:3;;;811:66:68;760:3818:3;;4753:42:56;;4675:120;;;760:3818:3;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;760:3818:3;;;;;-1:-1:-1;760:3818:3;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;760:3818:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;760:3818:3;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;760:3818:3;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;760:3818:3;;;;:::o;:::-;;;:::o;3292:896::-;;760:3818;;;3469:54;760:3818;3469:54;;760:3818;3469:54;;;760:3818;-1:-1:-1;3469:24:3;:54;:24;760:3818;3469:24;760:3818;3469:54;;;;;;;-1:-1:-1;3469:54:3;;;3292:896;760:3818;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;760:3818:3;;;;;;;;;;3668:13;-1:-1:-1;3683:24:3;;;;;;4169:12;;;;3292:896;:::o;3709:20::-;760:3818;3769:11;;;;:::i;:::-;760:3818;;;-1:-1:-1;760:3818:3;;;;3818:48;;;;;;760:3818;3469:54;3818:48;;760:3818;3818:48;760:3818;;;;;;;:::i;:::-;3818:48;760:3818;3818:48;;;;;;:::i;:::-;3918:34;;;;;;;;:::i;:::-;3970:8;;3966:22;;760:3818;;4043:29;;760:3818;4043:29;;760:3818;;;;;;;;;4043:29;;760:3818;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;3469:54;760:3818;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;760:3818:3;;884:1:98;760:3818:3;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4097:51;;760:3818;4086:62;;;;:::i;:::-;;;;;;:::i;:::-;;3668:13;760:3818;3668:13;;3966:22;3980:8;884:1:98;3980:8:3;;;;760:3818;;;;;;;;:::i;:::-;-1:-1:-1;760:3818:3;;;;;;;:::i;:::-;-1:-1:-1;760:3818:3;;-1:-1:-1;760:3818:3;;;;-1:-1:-1;760:3818:3;;;;;;;;;;;;;;;;;;;;;;3469:54;;;;;;-1:-1:-1;3469:54:3;;;;;;:::i;:::-;;;760:3818;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3469:54;;;;;;;760:3818;;;;;;;:::i;:::-;;;;;;;;;4964:220:54;760:3818:3;;5147:30:54;4964:220;760:3818:3;;;1782:71:54;760:3818:3;;;1782:71:54;760:3818:3;;;;;;5147:30:54;4964:220::o;7084:141:55:-;760:3818:3;8837:64:55;760:3818:3;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;760:3818:3;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;760:3818:3;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;760:3818:3;4917:24:75;;4862:1;4917:24;760:3818:3;4917:24:75;760:3818:3;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;", - "linkReferences": {}, - "immutableReferences": { - "240": [ - { "start": 1257, "length": 32 }, - { "start": 4113, "length": 32 } - ], - "244": [ - { "start": 201, "length": 32 }, - { "start": 1773, "length": 32 } - ], - "43541": [ - { "start": 1951, "length": 32 }, - { "start": 2103, "length": 32 } - ] - } - }, - "methodIdentifiers": { - "ASSET_OWNERSHIP()": "f520d4eb", - "RIGHTS_POLICY_AUTHORIZER()": "968e48cf", - "UPGRADE_INTERFACE_VERSION()": "ad3cb1cc", - "authority()": "bf7e214f", - "getAssetSpecificPolicies(uint256)": "76e5cef1", - "getAvailablePoliciesTerms(address,bytes)": "9f30b60f", - "getHolderWidePolicies(address)": "d45944ca", - "initialize(address)": "c4d66de8", - "isConsumingScheduledOp()": "8fb36037", - "proxiableUUID()": "52d1902d", - "setAuthority(address)": "7a9e5e4b", - "upgradeToAndCall(address,bytes)": "4f1ef286" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyAuthorizer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"assetOwnership\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET_OWNERSHIP\",\"outputs\":[{\"internalType\":\"contract IAssetOwnership\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_AUTHORIZER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyAuthorizer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getAssetSpecificPolicies\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"getAvailablePoliciesTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getHolderWidePolicies\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAssetSpecificPolicies(uint256)\":{\"params\":{\"assetId\":\"The unique identifier of the asset whose policies are being queried.\"}},\"getAvailablePoliciesTerms(address,bytes)\":{\"params\":{\"criteria\":\"Encoded data for policy evaluation.\",\"holder\":\"Address of the rights holder.\"}},\"getHolderWidePolicies(address)\":{\"params\":{\"holder\":\"The address of the rights holder whose policies are being queried.\"}},\"initialize(address)\":{\"details\":\"Sets up the contract for usage.\",\"params\":{\"accessManager\":\"Address of the Access Manager contract used for permission handling.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"ASSET_OWNERSHIP\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_POLICY_AUTHORIZER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAssetSpecificPolicies(uint256)\":{\"notice\":\"Retrieves all policies that govern operations on a specific asset.\"},\"getAvailablePoliciesTerms(address,bytes)\":{\"notice\":\"Retrieves all available policies for a holder matching specific criteria.\"},\"getHolderWidePolicies(address)\":{\"notice\":\"Retrieves all policies that apply to the entirety of a holder's content.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/aggregation/PoliciesAgg.sol\":\"PoliciesAgg\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/aggregation/PoliciesAgg.sol\":{\"keccak256\":\"0xfdd745d8471c568185c27d032f98428d33564214b8105b62d6420012ceb420dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22eae57023f6b71576d7d1838814b34fbf55bcfcb67f25b86d278a6d176a81ad\",\"dweb:/ipfs/QmTBv6iGzAqfMzyV7jFCkN5935pRxwdoJUnetESBkwLT4n\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol\":{\"keccak256\":\"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025\",\"dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130\",\"dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}", - "metadata": { - "compiler": { "version": "0.8.26+commit.8a97fa7a" }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { "internalType": "address", "name": "rightsPolicyAuthorizer", "type": "address" }, - { "internalType": "address", "name": "assetOwnership", "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [{ "internalType": "address", "name": "authority", "type": "address" }], - "type": "error", - "name": "AccessManagedInvalidAuthority" - }, - { - "inputs": [ - { "internalType": "address", "name": "caller", "type": "address" }, - { "internalType": "uint32", "name": "delay", "type": "uint32" } - ], - "type": "error", - "name": "AccessManagedRequiredDelay" - }, - { - "inputs": [{ "internalType": "address", "name": "caller", "type": "address" }], - "type": "error", - "name": "AccessManagedUnauthorized" - }, - { - "inputs": [{ "internalType": "address", "name": "target", "type": "address" }], - "type": "error", - "name": "AddressEmptyCode" - }, - { - "inputs": [{ "internalType": "address", "name": "implementation", "type": "address" }], - "type": "error", - "name": "ERC1967InvalidImplementation" - }, - { "inputs": [], "type": "error", "name": "ERC1967NonPayable" }, - { "inputs": [], "type": "error", "name": "FailedCall" }, - { "inputs": [], "type": "error", "name": "InvalidInitialization" }, - { - "inputs": [{ "internalType": "string", "name": "", "type": "string" }], - "type": "error", - "name": "InvalidUnauthorizedOperation" - }, - { "inputs": [], "type": "error", "name": "NotInitializing" }, - { "inputs": [], "type": "error", "name": "UUPSUnauthorizedCallContext" }, - { - "inputs": [{ "internalType": "bytes32", "name": "slot", "type": "bytes32" }], - "type": "error", - "name": "UUPSUnsupportedProxiableUUID" - }, - { - "inputs": [ - { "internalType": "address", "name": "authority", "type": "address", "indexed": false } - ], - "type": "event", - "name": "AuthorityUpdated", - "anonymous": false - }, - { - "inputs": [ - { "internalType": "uint64", "name": "version", "type": "uint64", "indexed": false } - ], - "type": "event", - "name": "Initialized", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address", - "indexed": true - } - ], - "type": "event", - "name": "Upgraded", - "anonymous": false - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "ASSET_OWNERSHIP", - "outputs": [{ "internalType": "contract IAssetOwnership", "name": "", "type": "address" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "RIGHTS_POLICY_AUTHORIZER", - "outputs": [ - { "internalType": "contract IRightsPolicyAuthorizer", "name": "", "type": "address" } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "UPGRADE_INTERFACE_VERSION", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "authority", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }] - }, - { - "inputs": [{ "internalType": "uint256", "name": "assetId", "type": "uint256" }], - "stateMutability": "view", - "type": "function", - "name": "getAssetSpecificPolicies", - "outputs": [ - { - "internalType": "struct PoliciesAgg.PolicyTerms[]", - "name": "", - "type": "tuple[]", - "components": [ - { "internalType": "address", "name": "policy", "type": "address" }, - { - "internalType": "struct T.Terms", - "name": "terms", - "type": "tuple", - "components": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "address", "name": "currency", "type": "address" }, - { "internalType": "enum T.RateBasis", "name": "rateBasis", "type": "uint8" }, - { "internalType": "string", "name": "uri", "type": "string" } - ] - } - ] - } - ] - }, - { - "inputs": [ - { "internalType": "address", "name": "holder", "type": "address" }, - { "internalType": "bytes", "name": "criteria", "type": "bytes" } - ], - "stateMutability": "view", - "type": "function", - "name": "getAvailablePoliciesTerms", - "outputs": [ - { - "internalType": "struct PoliciesAgg.PolicyTerms[]", - "name": "", - "type": "tuple[]", - "components": [ - { "internalType": "address", "name": "policy", "type": "address" }, - { - "internalType": "struct T.Terms", - "name": "terms", - "type": "tuple", - "components": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "address", "name": "currency", "type": "address" }, - { "internalType": "enum T.RateBasis", "name": "rateBasis", "type": "uint8" }, - { "internalType": "string", "name": "uri", "type": "string" } - ] - } - ] - } - ] - }, - { - "inputs": [{ "internalType": "address", "name": "holder", "type": "address" }], - "stateMutability": "view", - "type": "function", - "name": "getHolderWidePolicies", - "outputs": [ - { - "internalType": "struct PoliciesAgg.PolicyTerms[]", - "name": "", - "type": "tuple[]", - "components": [ - { "internalType": "address", "name": "policy", "type": "address" }, - { - "internalType": "struct T.Terms", - "name": "terms", - "type": "tuple", - "components": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "address", "name": "currency", "type": "address" }, - { "internalType": "enum T.RateBasis", "name": "rateBasis", "type": "uint8" }, - { "internalType": "string", "name": "uri", "type": "string" } - ] - } - ] - } - ] - }, - { - "inputs": [{ "internalType": "address", "name": "accessManager", "type": "address" }], - "stateMutability": "nonpayable", - "type": "function", - "name": "initialize" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "isConsumingScheduledOp", - "outputs": [{ "internalType": "bytes4", "name": "", "type": "bytes4" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "proxiableUUID", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] - }, - { - "inputs": [{ "internalType": "address", "name": "newAuthority", "type": "address" }], - "stateMutability": "nonpayable", - "type": "function", - "name": "setAuthority" - }, - { - "inputs": [ - { "internalType": "address", "name": "newImplementation", "type": "address" }, - { "internalType": "bytes", "name": "data", "type": "bytes" } - ], - "stateMutability": "payable", - "type": "function", - "name": "upgradeToAndCall" - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "authority()": { "details": "Returns the current authority." }, - "constructor": { "custom:oz-upgrades-unsafe-allow": "constructor" }, - "getAssetSpecificPolicies(uint256)": { - "params": { - "assetId": "The unique identifier of the asset whose policies are being queried." - } - }, - "getAvailablePoliciesTerms(address,bytes)": { - "params": { - "criteria": "Encoded data for policy evaluation.", - "holder": "Address of the rights holder." - } - }, - "getHolderWidePolicies(address)": { - "params": { - "holder": "The address of the rights holder whose policies are being queried." - } - }, - "initialize(address)": { - "details": "Sets up the contract for usage.", - "params": { - "accessManager": "Address of the Access Manager contract used for permission handling." - } - }, - "isConsumingScheduledOp()": { - "details": "Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls." - }, - "proxiableUUID()": { - "details": "Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier." - }, - "setAuthority(address)": { - "details": "Transfers control to a new authority. The caller must be the current authority." - }, - "upgradeToAndCall(address,bytes)": { - "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall", - "details": "Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event." - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "getAssetSpecificPolicies(uint256)": { - "notice": "Retrieves all policies that govern operations on a specific asset." - }, - "getAvailablePoliciesTerms(address,bytes)": { - "notice": "Retrieves all available policies for a holder matching specific criteria." - }, - "getHolderWidePolicies(address)": { - "notice": "Retrieves all policies that apply to the entirety of a holder's content." - }, - "initialize(address)": { "notice": "Initializes the proxy state." } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - "@account-abstraction/=node_modules/@account-abstraction/", - "@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/", - "@ethsign/=node_modules/@ethsign/", - "@openzeppelin/=node_modules/@openzeppelin/", - "@synaps3/=node_modules/@synaps3/types/contracts/", - "@uniswap/=node_modules/@uniswap/", - "base64-sol/=node_modules/base64-sol/", - "forge-std/=lib/forge-std/src/", - "hardhat/=node_modules/hardhat/", - "solady/=lib/solady/src/" - ], - "optimizer": { "enabled": true, "runs": 20000 }, - "metadata": { "bytecodeHash": "ipfs" }, - "compilationTarget": { "contracts/aggregation/PoliciesAgg.sol": "PoliciesAgg" }, - "evmVersion": "cancun", - "libraries": {}, - "viaIR": true - }, - "sources": { - "contracts/aggregation/PoliciesAgg.sol": { - "keccak256": "0xfdd745d8471c568185c27d032f98428d33564214b8105b62d6420012ceb420dd", - "urls": [ - "bzz-raw://22eae57023f6b71576d7d1838814b34fbf55bcfcb67f25b86d278a6d176a81ad", - "dweb:/ipfs/QmTBv6iGzAqfMzyV7jFCkN5935pRxwdoJUnetESBkwLT4n" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol": { - "keccak256": "0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373", - "urls": [ - "bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447", - "dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { - "keccak256": "0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b", - "urls": [ - "bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609", - "dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol": { - "keccak256": "0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27", - "urls": [ - "bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e", - "dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { - "keccak256": "0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397", - "urls": [ - "bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9", - "dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol": { - "keccak256": "0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4", - "urls": [ - "bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e", - "dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol": { - "keccak256": "0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6", - "urls": [ - "bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694", - "dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol": { - "keccak256": "0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2", - "urls": [ - "bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4", - "dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol": { - "keccak256": "0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030", - "urls": [ - "bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c", - "dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol": { - "keccak256": "0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486", - "urls": [ - "bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d", - "dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol": { - "keccak256": "0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d", - "urls": [ - "bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196", - "dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol": { - "keccak256": "0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06", - "urls": [ - "bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c", - "dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol": { - "keccak256": "0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c", - "urls": [ - "bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa", - "dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": { - "keccak256": "0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261", - "urls": [ - "bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11", - "dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { - "keccak256": "0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1", - "urls": [ - "bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02", - "dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Address.sol": { - "keccak256": "0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5", - "urls": [ - "bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23", - "dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Errors.sol": { - "keccak256": "0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123", - "urls": [ - "bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf", - "dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Panic.sol": { - "keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a", - "urls": [ - "bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a", - "dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol": { - "keccak256": "0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97", - "urls": [ - "bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b", - "dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "keccak256": "0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8", - "urls": [ - "bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621", - "dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/math/Math.sol": { - "keccak256": "0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea", - "urls": [ - "bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d", - "dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol": { - "keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54", - "urls": [ - "bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8", - "dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/types/Time.sol": { - "keccak256": "0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc", - "urls": [ - "bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6", - "dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol": { - "keccak256": "0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f", - "urls": [ - "bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e", - "dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol": { - "keccak256": "0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18", - "urls": [ - "bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025", - "dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol": { - "keccak256": "0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02", - "urls": [ - "bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405", - "dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol": { - "keccak256": "0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419", - "urls": [ - "bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130", - "dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol": { - "keccak256": "0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411", - "urls": [ - "bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2", - "dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/primitives/Constants.sol": { - "keccak256": "0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e", - "urls": [ - "bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1", - "dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/primitives/Types.sol": { - "keccak256": "0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1", - "urls": [ - "bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf", - "dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol": { - "keccak256": "0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df", - "urls": [ - "bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2", - "dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "storageLayout": { "storage": [], "types": {} }, - "ast": { - "absolutePath": "contracts/aggregation/PoliciesAgg.sol", - "id": 472, - "exportedSymbols": { - "AccessControlledUpgradeable": [51361], - "IAssetOwnership": [50146], - "IPolicy": [50308], - "IRightsPolicyAuthorizer": [50391], - "Initializable": [43521], - "LoopOps": [50745], - "PoliciesAgg": [471], - "T": [51233], - "UUPSUpgradeable": [43703] - }, - "nodeType": "SourceUnit", - "src": "32:4547:3", - "nodes": [ - { - "id": 204, - "nodeType": "PragmaDirective", - "src": "32:23:3", - "nodes": [], - "literals": ["solidity", "0.8", ".26"] - }, - { - "id": 206, - "nodeType": "ImportDirective", - "src": "57:98:3", - "nodes": [], - "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "nameLocation": "-1:-1:-1", - "scope": 472, - "sourceUnit": 43522, - "symbolAliases": [ - { - "foreign": { - "id": 205, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43521, - "src": "66:13:3", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 208, - "nodeType": "ImportDirective", - "src": "156:102:3", - "nodes": [], - "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 472, - "sourceUnit": 43704, - "symbolAliases": [ - { - "foreign": { - "id": 207, - "name": "UUPSUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43703, - "src": "165:15:3", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 210, - "nodeType": "ImportDirective", - "src": "260:86:3", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol", - "file": "@synaps3/core/interfaces/assets/IAssetOwnership.sol", - "nameLocation": "-1:-1:-1", - "scope": 472, - "sourceUnit": 50147, - "symbolAliases": [ - { - "foreign": { - "id": 209, - "name": "IAssetOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50146, - "src": "269:15:3", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 212, - "nodeType": "ImportDirective", - "src": "347:115:3", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol", - "file": "@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 472, - "sourceUnit": 51362, - "symbolAliases": [ - { - "foreign": { - "id": 211, - "name": "AccessControlledUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51361, - "src": "356:27:3", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 214, - "nodeType": "ImportDirective", - "src": "463:102:3", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol", - "file": "@synaps3/core/interfaces/rights/IRightsPolicyAuthorizer.sol", - "nameLocation": "-1:-1:-1", - "scope": 472, - "sourceUnit": 50392, - "symbolAliases": [ - { - "foreign": { - "id": 213, - "name": "IRightsPolicyAuthorizer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50391, - "src": "472:23:3", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 216, - "nodeType": "ImportDirective", - "src": "567:72:3", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol", - "file": "@synaps3/core/interfaces/policies/IPolicy.sol", - "nameLocation": "-1:-1:-1", - "scope": 472, - "sourceUnit": 50309, - "symbolAliases": [ - { - "foreign": { - "id": 215, - "name": "IPolicy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50308, - "src": "576:7:3", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 218, - "nodeType": "ImportDirective", - "src": "640:62:3", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol", - "file": "@synaps3/core/libraries/LoopOps.sol", - "nameLocation": "-1:-1:-1", - "scope": 472, - "sourceUnit": 50746, - "symbolAliases": [ - { - "foreign": { - "id": 217, - "name": "LoopOps", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50745, - "src": "649:7:3", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 220, - "nodeType": "ImportDirective", - "src": "703:55:3", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/primitives/Types.sol", - "file": "@synaps3/core/primitives/Types.sol", - "nameLocation": "-1:-1:-1", - "scope": 472, - "sourceUnit": 51234, - "symbolAliases": [ - { - "foreign": { - "id": 219, - "name": "T", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51233, - "src": "712:1:3", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 471, - "nodeType": "ContractDefinition", - "src": "760:3818:3", - "nodes": [ - { - "id": 229, - "nodeType": "UsingForDirective", - "src": "850:26:3", - "nodes": [], - "global": false, - "libraryName": { - "id": 227, - "name": "LoopOps", - "nameLocations": ["856:7:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50745, - "src": "856:7:3" - }, - "typeName": { - "id": 228, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "868:7:3", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - }, - { - "id": 236, - "nodeType": "StructDefinition", - "src": "958:73:3", - "nodes": [], - "canonicalName": "PoliciesAgg.PolicyTerms", - "documentation": { - "id": 230, - "nodeType": "StructuredDocumentation", - "src": "882:71:3", - "text": "@notice structure to hold the relationship between policy and terms" - }, - "members": [ - { - "constant": false, - "id": 232, - "mutability": "mutable", - "name": "policy", - "nameLocation": "995:6:3", - "nodeType": "VariableDeclaration", - "scope": 236, - "src": "987:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 231, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "987:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 235, - "mutability": "mutable", - "name": "terms", - "nameLocation": "1019:5:3", - "nodeType": "VariableDeclaration", - "scope": 236, - "src": "1011:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Terms_$51222_storage_ptr", - "typeString": "struct T.Terms" - }, - "typeName": { - "id": 234, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 233, - "name": "T.Terms", - "nameLocations": ["1011:1:3", "1013:5:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 51222, - "src": "1011:7:3" - }, - "referencedDeclaration": 51222, - "src": "1011:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Terms_$51222_storage_ptr", - "typeString": "struct T.Terms" - } - }, - "visibility": "internal" - } - ], - "name": "PolicyTerms", - "nameLocation": "965:11:3", - "scope": 471, - "visibility": "public" - }, - { - "id": 240, - "nodeType": "VariableDeclaration", - "src": "1103:65:3", - "nodes": [], - "constant": false, - "documentation": { - "id": 237, - "nodeType": "StructuredDocumentation", - "src": "1037:61:3", - "text": "@custom:oz-upgrades-unsafe-allow state-variable-immutable" - }, - "functionSelector": "968e48cf", - "mutability": "immutable", - "name": "RIGHTS_POLICY_AUTHORIZER", - "nameLocation": "1144:24:3", - "scope": 471, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyAuthorizer_$50391", - "typeString": "contract IRightsPolicyAuthorizer" - }, - "typeName": { - "id": 239, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 238, - "name": "IRightsPolicyAuthorizer", - "nameLocations": ["1103:23:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50391, - "src": "1103:23:3" - }, - "referencedDeclaration": 50391, - "src": "1103:23:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyAuthorizer_$50391", - "typeString": "contract IRightsPolicyAuthorizer" - } - }, - "visibility": "public" - }, - { - "id": 244, - "nodeType": "VariableDeclaration", - "src": "1240:48:3", - "nodes": [], - "constant": false, - "documentation": { - "id": 241, - "nodeType": "StructuredDocumentation", - "src": "1174:61:3", - "text": "@custom:oz-upgrades-unsafe-allow state-variable-immutable" - }, - "functionSelector": "f520d4eb", - "mutability": "immutable", - "name": "ASSET_OWNERSHIP", - "nameLocation": "1273:15:3", - "scope": 471, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAssetOwnership_$50146", - "typeString": "contract IAssetOwnership" - }, - "typeName": { - "id": 243, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 242, - "name": "IAssetOwnership", - "nameLocations": ["1240:15:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50146, - "src": "1240:15:3" - }, - "referencedDeclaration": 50146, - "src": "1240:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAssetOwnership_$50146", - "typeString": "contract IAssetOwnership" - } - }, - "visibility": "public" - }, - { - "id": 268, - "nodeType": "FunctionDefinition", - "src": "1348:440:3", - "nodes": [], - "body": { - "id": 267, - "nodeType": "Block", - "src": "1416:372:3", - "nodes": [], - "statements": [ - { - "documentation": "https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5", - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 252, - "name": "_disableInitializers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43489, - "src": "1616:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1616:22:3", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 254, - "nodeType": "ExpressionStatement", - "src": "1616:22:3" - }, - { - "expression": { - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 255, - "name": "RIGHTS_POLICY_AUTHORIZER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 240, - "src": "1648:24:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyAuthorizer_$50391", - "typeString": "contract IRightsPolicyAuthorizer" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 257, - "name": "rightsPolicyAuthorizer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 247, - "src": "1699:22:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 256, - "name": "IRightsPolicyAuthorizer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50391, - "src": "1675:23:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IRightsPolicyAuthorizer_$50391_$", - "typeString": "type(contract IRightsPolicyAuthorizer)" - } - }, - "id": 258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1675:47:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyAuthorizer_$50391", - "typeString": "contract IRightsPolicyAuthorizer" - } - }, - "src": "1648:74:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyAuthorizer_$50391", - "typeString": "contract IRightsPolicyAuthorizer" - } - }, - "id": 260, - "nodeType": "ExpressionStatement", - "src": "1648:74:3" - }, - { - "expression": { - "id": 265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 261, - "name": "ASSET_OWNERSHIP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 244, - "src": "1732:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAssetOwnership_$50146", - "typeString": "contract IAssetOwnership" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 263, - "name": "assetOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 249, - "src": "1766:14:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 262, - "name": "IAssetOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50146, - "src": "1750:15:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IAssetOwnership_$50146_$", - "typeString": "type(contract IAssetOwnership)" - } - }, - "id": 264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1750:31:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAssetOwnership_$50146", - "typeString": "contract IAssetOwnership" - } - }, - "src": "1732:49:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAssetOwnership_$50146", - "typeString": "contract IAssetOwnership" - } - }, - "id": 266, - "nodeType": "ExpressionStatement", - "src": "1732:49:3" - } - ] - }, - "documentation": { - "id": 245, - "nodeType": "StructuredDocumentation", - "src": "1295:48:3", - "text": "@custom:oz-upgrades-unsafe-allow constructor" - }, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 250, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 247, - "mutability": "mutable", - "name": "rightsPolicyAuthorizer", - "nameLocation": "1368:22:3", - "nodeType": "VariableDeclaration", - "scope": 268, - "src": "1360:30:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 246, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1360:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 249, - "mutability": "mutable", - "name": "assetOwnership", - "nameLocation": "1400:14:3", - "nodeType": "VariableDeclaration", - "scope": 268, - "src": "1392:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 248, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1392:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "1359:56:3" - }, - "returnParameters": { - "id": 251, - "nodeType": "ParameterList", - "parameters": [], - "src": "1416:0:3" - }, - "scope": 471, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 284, - "nodeType": "FunctionDefinition", - "src": "1982:151:3", - "nodes": [], - "body": { - "id": 283, - "nodeType": "Block", - "src": "2044:89:3", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 276, - "name": "__UUPSUpgradeable_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43575, - "src": "2054:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2054:24:3", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 278, - "nodeType": "ExpressionStatement", - "src": "2054:24:3" - }, - { - "expression": { - "arguments": [ - { - "id": 280, - "name": "accessManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 271, - "src": "2112:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], - "id": 279, - "name": "__AccessControlled_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51296, - "src": "2088:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2088:38:3", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 282, - "nodeType": "ExpressionStatement", - "src": "2088:38:3" - } - ] - }, - "documentation": { - "id": 269, - "nodeType": "StructuredDocumentation", - "src": "1794:183:3", - "text": "@notice Initializes the proxy state.\n @dev Sets up the contract for usage.\n @param accessManager Address of the Access Manager contract used for permission handling." - }, - "functionSelector": "c4d66de8", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 274, - "kind": "modifierInvocation", - "modifierName": { - "id": 273, - "name": "initializer", - "nameLocations": ["2032:11:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43375, - "src": "2032:11:3" - }, - "nodeType": "ModifierInvocation", - "src": "2032:11:3" - } - ], - "name": "initialize", - "nameLocation": "1991:10:3", - "parameters": { - "id": 272, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 271, - "mutability": "mutable", - "name": "accessManager", - "nameLocation": "2010:13:3", - "nodeType": "VariableDeclaration", - "scope": 284, - "src": "2002:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 270, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2002:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "2001:23:3" - }, - "returnParameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [], - "src": "2044:0:3" - }, - "scope": 471, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 314, - "nodeType": "FunctionDefinition", - "src": "2317:261:3", - "nodes": [], - "body": { - "id": 313, - "nodeType": "Block", - "src": "2409:169:3", - "nodes": [], - "statements": [ - { - "assignments": [295], - "declarations": [ - { - "constant": false, - "id": 295, - "mutability": "mutable", - "name": "criteria", - "nameLocation": "2432:8:3", - "nodeType": "VariableDeclaration", - "scope": 313, - "src": "2419:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 294, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2419:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 300, - "initialValue": { - "arguments": [ - { - "id": 298, - "name": "holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 287, - "src": "2454:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], - "expression": { - "id": 296, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2443:3:3", - "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } - }, - "id": 297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2447:6:3", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "2443:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2443:18:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2419:42:3" - }, - { - "assignments": [305], - "declarations": [ - { - "constant": false, - "id": 305, - "mutability": "mutable", - "name": "policies", - "nameLocation": "2492:8:3", - "nodeType": "VariableDeclaration", - "scope": 313, - "src": "2471:29:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms[]" - }, - "typeName": { - "baseType": { - "id": 303, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 302, - "name": "PolicyTerms", - "nameLocations": ["2471:11:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 236, - "src": "2471:11:3" - }, - "referencedDeclaration": 236, - "src": "2471:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PolicyTerms_$236_storage_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms" - } - }, - "id": 304, - "nodeType": "ArrayTypeName", - "src": "2471:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms[]" - } - }, - "visibility": "internal" - } - ], - "id": 310, - "initialValue": { - "arguments": [ - { - "id": 307, - "name": "holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 287, - "src": "2529:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 308, - "name": "criteria", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "2537:8:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } - ], - "id": 306, - "name": "getAvailablePoliciesTerms", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 460, - "src": "2503:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (address,bytes memory) view returns (struct PoliciesAgg.PolicyTerms memory[] memory)" - } - }, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2503:43:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2471:75:3" - }, - { - "expression": { - "id": 311, - "name": "policies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 305, - "src": "2563:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms memory[] memory" - } - }, - "functionReturnParameters": 293, - "id": 312, - "nodeType": "Return", - "src": "2556:15:3" - } - ] - }, - "documentation": { - "id": 285, - "nodeType": "StructuredDocumentation", - "src": "2139:173:3", - "text": "@notice Retrieves all policies that apply to the entirety of a holder's content.\n @param holder The address of the rights holder whose policies are being queried." - }, - "functionSelector": "d45944ca", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getHolderWidePolicies", - "nameLocation": "2326:21:3", - "parameters": { - "id": 288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 287, - "mutability": "mutable", - "name": "holder", - "nameLocation": "2356:6:3", - "nodeType": "VariableDeclaration", - "scope": 314, - "src": "2348:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 286, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2348:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "2347:16:3" - }, - "returnParameters": { - "id": 293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 292, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 314, - "src": "2387:20:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms[]" - }, - "typeName": { - "baseType": { - "id": 290, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 289, - "name": "PolicyTerms", - "nameLocations": ["2387:11:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 236, - "src": "2387:11:3" - }, - "referencedDeclaration": 236, - "src": "2387:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PolicyTerms_$236_storage_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms" - } - }, - "id": 291, - "nodeType": "ArrayTypeName", - "src": "2387:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms[]" - } - }, - "visibility": "internal" - } - ], - "src": "2386:22:3" - }, - "scope": 471, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 351, - "nodeType": "FunctionDefinition", - "src": "2759:325:3", - "nodes": [], - "body": { - "id": 350, - "nodeType": "Block", - "src": "2855:229:3", - "nodes": [], - "statements": [ - { - "assignments": [325], - "declarations": [ - { - "constant": false, - "id": 325, - "mutability": "mutable", - "name": "criteria", - "nameLocation": "2878:8:3", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "2865:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 324, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2865:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 330, - "initialValue": { - "arguments": [ - { - "id": 328, - "name": "assetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 317, - "src": "2900:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], - "expression": { - "id": 326, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2889:3:3", - "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } - }, - "id": 327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2893:6:3", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "2889:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2889:19:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2865:43:3" - }, - { - "assignments": [332], - "declarations": [ - { - "constant": false, - "id": 332, - "mutability": "mutable", - "name": "holder", - "nameLocation": "2926:6:3", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "2918:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 331, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2918:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 337, - "initialValue": { - "arguments": [ - { - "id": 335, - "name": "assetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 317, - "src": "2959:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], - "expression": { - "id": 333, - "name": "ASSET_OWNERSHIP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 244, - "src": "2935:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IAssetOwnership_$50146", - "typeString": "contract IAssetOwnership" - } - }, - "id": 334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2951:7:3", - "memberName": "ownerOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 45357, - "src": "2935:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view external returns (address)" - } - }, - "id": 336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2935:32:3", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2918:49:3" - }, - { - "assignments": [342], - "declarations": [ - { - "constant": false, - "id": 342, - "mutability": "mutable", - "name": "policies", - "nameLocation": "2998:8:3", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "2977:29:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms[]" - }, - "typeName": { - "baseType": { - "id": 340, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 339, - "name": "PolicyTerms", - "nameLocations": ["2977:11:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 236, - "src": "2977:11:3" - }, - "referencedDeclaration": 236, - "src": "2977:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PolicyTerms_$236_storage_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms" - } - }, - "id": 341, - "nodeType": "ArrayTypeName", - "src": "2977:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms[]" - } - }, - "visibility": "internal" - } - ], - "id": 347, - "initialValue": { - "arguments": [ - { - "id": 344, - "name": "holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 332, - "src": "3035:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 345, - "name": "criteria", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "3043:8:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } - ], - "id": 343, - "name": "getAvailablePoliciesTerms", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 460, - "src": "3009:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (address,bytes memory) view returns (struct PoliciesAgg.PolicyTerms memory[] memory)" - } - }, - "id": 346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3009:43:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2977:75:3" - }, - { - "expression": { - "id": 348, - "name": "policies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "3069:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms memory[] memory" - } - }, - "functionReturnParameters": 323, - "id": 349, - "nodeType": "Return", - "src": "3062:15:3" - } - ] - }, - "documentation": { - "id": 315, - "nodeType": "StructuredDocumentation", - "src": "2584:170:3", - "text": "@notice Retrieves all policies that govern operations on a specific asset.\n @param assetId The unique identifier of the asset whose policies are being queried." - }, - "functionSelector": "76e5cef1", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAssetSpecificPolicies", - "nameLocation": "2768:24:3", - "parameters": { - "id": 318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 317, - "mutability": "mutable", - "name": "assetId", - "nameLocation": "2801:7:3", - "nodeType": "VariableDeclaration", - "scope": 351, - "src": "2793:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2793:7:3", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - } - ], - "src": "2792:17:3" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 322, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 351, - "src": "2833:20:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms[]" - }, - "typeName": { - "baseType": { - "id": 320, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 319, - "name": "PolicyTerms", - "nameLocations": ["2833:11:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 236, - "src": "2833:11:3" - }, - "referencedDeclaration": 236, - "src": "2833:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PolicyTerms_$236_storage_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms" - } - }, - "id": 321, - "nodeType": "ArrayTypeName", - "src": "2833:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms[]" - } - }, - "visibility": "internal" - } - ], - "src": "2832:22:3" - }, - "scope": 471, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 460, - "nodeType": "FunctionDefinition", - "src": "3292:896:3", - "nodes": [], - "body": { - "id": 459, - "nodeType": "Block", - "src": "3431:757:3", - "nodes": [], - "statements": [ - { - "assignments": [367], - "declarations": [ - { - "constant": false, - "id": 367, - "mutability": "mutable", - "name": "policies", - "nameLocation": "3458:8:3", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "3441:25:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 365, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3441:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 366, - "nodeType": "ArrayTypeName", - "src": "3441:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - } - ], - "id": 372, - "initialValue": { - "arguments": [ - { - "id": 370, - "name": "holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 354, - "src": "3516:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], - "expression": { - "id": 368, - "name": "RIGHTS_POLICY_AUTHORIZER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 240, - "src": "3469:24:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRightsPolicyAuthorizer_$50391", - "typeString": "contract IRightsPolicyAuthorizer" - } - }, - "id": 369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3494:21:3", - "memberName": "getAuthorizedPolicies", - "nodeType": "MemberAccess", - "referencedDeclaration": 50366, - "src": "3469:46:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address) view external returns (address[] memory)" - } - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3469:54:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3441:82:3" - }, - { - "assignments": [377], - "declarations": [ - { - "constant": false, - "id": 377, - "mutability": "mutable", - "name": "terms", - "nameLocation": "3554:5:3", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "3533:26:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms[]" - }, - "typeName": { - "baseType": { - "id": 375, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 374, - "name": "PolicyTerms", - "nameLocations": ["3533:11:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 236, - "src": "3533:11:3" - }, - "referencedDeclaration": 236, - "src": "3533:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PolicyTerms_$236_storage_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms" - } - }, - "id": 376, - "nodeType": "ArrayTypeName", - "src": "3533:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms[]" - } - }, - "visibility": "internal" - } - ], - "id": 385, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 382, - "name": "policies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 367, - "src": "3580:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3589:6:3", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "3580:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "3562:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct PoliciesAgg.PolicyTerms memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 379, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 378, - "name": "PolicyTerms", - "nameLocations": ["3566:11:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 236, - "src": "3566:11:3" - }, - "referencedDeclaration": 236, - "src": "3566:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PolicyTerms_$236_storage_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms" - } - }, - "id": 380, - "nodeType": "ArrayTypeName", - "src": "3566:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms[]" - } - } - }, - "id": 384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3562:34:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3533:63:3" - }, - { - "assignments": [387], - "declarations": [ - { - "constant": false, - "id": 387, - "mutability": "mutable", - "name": "availablePoliciesLen", - "nameLocation": "3614:20:3", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "3606:28:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 386, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3606:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 390, - "initialValue": { - "expression": { - "id": 388, - "name": "policies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 367, - "src": "3637:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3646:6:3", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "3637:15:3", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3606:46:3" - }, - { - "body": { - "id": 455, - "nodeType": "Block", - "src": "3731:428:3", - "statements": [ - { - "assignments": [405], - "declarations": [ - { - "constant": false, - "id": 405, - "mutability": "mutable", - "name": "policyAddress", - "nameLocation": "3753:13:3", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "3745:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 404, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3745:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 409, - "initialValue": { - "baseExpression": { - "id": 406, - "name": "policies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 367, - "src": "3769:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 408, - "indexExpression": { - "id": 407, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 392, - "src": "3778:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3769:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3745:35:3" - }, - { - "assignments": [411], - "declarations": [ - { - "constant": false, - "id": 411, - "mutability": "mutable", - "name": "callData", - "nameLocation": "3807:8:3", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "3794:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 410, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3794:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 419, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 414, - "name": "IPolicy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50308, - "src": "3833:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPolicy_$50308_$", - "typeString": "type(contract IPolicy)" - } - }, - "id": 415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3841:12:3", - "memberName": "resolveTerms", - "nodeType": "MemberAccess", - "referencedDeclaration": 50291, - "src": "3833:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_declaration_view$_t_bytes_memory_ptr_$returns$_t_struct$_Terms_$51222_memory_ptr_$", - "typeString": "function IPolicy.resolveTerms(bytes memory) view returns (struct T.Terms memory)" - } - }, - { - "components": [ - { - "id": 416, - "name": "criteria", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "3856:8:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "id": 417, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3855:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_function_declaration_view$_t_bytes_memory_ptr_$returns$_t_struct$_Terms_$51222_memory_ptr_$", - "typeString": "function IPolicy.resolveTerms(bytes memory) view returns (struct T.Terms memory)" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 412, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3818:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3822:10:3", - "memberName": "encodeCall", - "nodeType": "MemberAccess", - "src": "3818:14:3", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3818:48:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3794:72:3" - }, - { - "assignments": [421, 423], - "declarations": [ - { - "constant": false, - "id": 421, - "mutability": "mutable", - "name": "success", - "nameLocation": "3886:7:3", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "3881:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 420, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3881:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 423, - "mutability": "mutable", - "name": "result", - "nameLocation": "3908:6:3", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "3895:19:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 422, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3895:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 428, - "initialValue": { - "arguments": [ - { - "id": 426, - "name": "callData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "3943:8:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 424, - "name": "policyAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 405, - "src": "3918:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3932:10:3", - "memberName": "staticcall", - "nodeType": "MemberAccess", - "src": "3918:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) view returns (bool,bytes memory)" - } - }, - "id": 427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3918:34:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3880:72:3" - }, - { - "condition": { - "id": 430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3970:8:3", - "subExpression": { - "id": 429, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "3971:7:3", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 432, - "nodeType": "IfStatement", - "src": "3966:22:3", - "trueBody": { "id": 431, "nodeType": "Continue", "src": "3980:8:3" } - }, - { - "assignments": [437], - "declarations": [ - { - "constant": false, - "id": 437, - "mutability": "mutable", - "name": "term", - "nameLocation": "4036:4:3", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "4021:19:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Terms_$51222_memory_ptr", - "typeString": "struct T.Terms" - }, - "typeName": { - "id": 436, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 435, - "name": "T.Terms", - "nameLocations": ["4021:1:3", "4023:5:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 51222, - "src": "4021:7:3" - }, - "referencedDeclaration": 51222, - "src": "4021:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Terms_$51222_storage_ptr", - "typeString": "struct T.Terms" - } - }, - "visibility": "internal" - } - ], - "id": 445, - "initialValue": { - "arguments": [ - { - "id": 440, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 423, - "src": "4054:6:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "expression": { - "id": 441, - "name": "T", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51233, - "src": "4063:1:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_T_$51233_$", - "typeString": "type(library T)" - } - }, - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4065:5:3", - "memberName": "Terms", - "nodeType": "MemberAccess", - "referencedDeclaration": 51222, - "src": "4063:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Terms_$51222_storage_ptr_$", - "typeString": "type(struct T.Terms storage pointer)" - } - } - ], - "id": 443, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4062:9:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Terms_$51222_storage_ptr_$", - "typeString": "type(struct T.Terms storage pointer)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_struct$_Terms_$51222_storage_ptr_$", - "typeString": "type(struct T.Terms storage pointer)" - } - ], - "expression": { - "id": 438, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "4043:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4047:6:3", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "4043:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4043:29:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Terms_$51222_memory_ptr", - "typeString": "struct T.Terms memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4021:51:3" - }, - { - "expression": { - "id": 453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 446, - "name": "terms", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 377, - "src": "4086:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms memory[] memory" - } - }, - "id": 448, - "indexExpression": { - "id": 447, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 392, - "src": "4092:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4086:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PolicyTerms_$236_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 450, - "name": "policyAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 405, - "src": "4119:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 451, - "name": "term", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 437, - "src": "4141:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Terms_$51222_memory_ptr", - "typeString": "struct T.Terms memory" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { - "typeIdentifier": "t_struct$_Terms_$51222_memory_ptr", - "typeString": "struct T.Terms memory" - } - ], - "id": 449, - "name": "PolicyTerms", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 236, - "src": "4097:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_PolicyTerms_$236_storage_ptr_$", - "typeString": "type(struct PoliciesAgg.PolicyTerms storage pointer)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": ["4111:6:3", "4134:5:3"], - "names": ["policy", "terms"], - "nodeType": "FunctionCall", - "src": "4097:51:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_PolicyTerms_$236_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms memory" - } - }, - "src": "4086:62:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PolicyTerms_$236_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms memory" - } - }, - "id": 454, - "nodeType": "ExpressionStatement", - "src": "4086:62:3" - } - ] - }, - "condition": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 395, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 392, - "src": "3683:1:3", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 396, - "name": "availablePoliciesLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "3687:20:3", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "3683:24:3", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 456, - "initializationExpression": { - "assignments": [392], - "declarations": [ - { - "constant": false, - "id": 392, - "mutability": "mutable", - "name": "i", - "nameLocation": "3676:1:3", - "nodeType": "VariableDeclaration", - "scope": 456, - "src": "3668:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 391, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3668:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 394, - "initialValue": { - "hexValue": "30", - "id": 393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3680:1:3", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3668:13:3" - }, - "isSimpleCounterLoop": false, - "loopExpression": { - "expression": { - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 398, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 392, - "src": "3709:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 399, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 392, - "src": "3713:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3715:12:3", - "memberName": "uncheckedInc", - "nodeType": "MemberAccess", - "referencedDeclaration": 50744, - "src": "3713:14:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3713:16:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3709:20:3", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "id": 403, - "nodeType": "ExpressionStatement", - "src": "3709:20:3" - }, - "nodeType": "ForStatement", - "src": "3663:496:3" - }, - { - "expression": { - "id": 457, - "name": "terms", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 377, - "src": "4176:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms memory[] memory" - } - }, - "functionReturnParameters": 362, - "id": 458, - "nodeType": "Return", - "src": "4169:12:3" - } - ] - }, - "documentation": { - "id": 352, - "nodeType": "StructuredDocumentation", - "src": "3090:197:3", - "text": "@notice Retrieves all available policies for a holder matching specific criteria.\n @param holder Address of the rights holder.\n @param criteria Encoded data for policy evaluation." - }, - "functionSelector": "9f30b60f", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAvailablePoliciesTerms", - "nameLocation": "3301:25:3", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 354, - "mutability": "mutable", - "name": "holder", - "nameLocation": "3344:6:3", - "nodeType": "VariableDeclaration", - "scope": 460, - "src": "3336:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 353, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3336:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 356, - "mutability": "mutable", - "name": "criteria", - "nameLocation": "3373:8:3", - "nodeType": "VariableDeclaration", - "scope": 460, - "src": "3360:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 355, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3360:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3326:61:3" - }, - "returnParameters": { - "id": 362, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 361, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 460, - "src": "3409:20:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms[]" - }, - "typeName": { - "baseType": { - "id": 359, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 358, - "name": "PolicyTerms", - "nameLocations": ["3409:11:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 236, - "src": "3409:11:3" - }, - "referencedDeclaration": 236, - "src": "3409:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PolicyTerms_$236_storage_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms" - } - }, - "id": 360, - "nodeType": "ArrayTypeName", - "src": "3409:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr", - "typeString": "struct PoliciesAgg.PolicyTerms[]" - } - }, - "visibility": "internal" - } - ], - "src": "3408:22:3" - }, - "scope": 471, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 470, - "nodeType": "FunctionDefinition", - "src": "4492:84:3", - "nodes": [], - "body": { - "id": 469, - "nodeType": "Block", - "src": "4574:2:3", - "nodes": [], - "statements": [] - }, - "baseFunctions": [43657], - "documentation": { - "id": 461, - "nodeType": "StructuredDocumentation", - "src": "4194:293:3", - "text": "@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-" - }, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 467, - "kind": "modifierInvocation", - "modifierName": { - "id": 466, - "name": "onlyAdmin", - "nameLocations": ["4564:9:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 51279, - "src": "4564:9:3" - }, - "nodeType": "ModifierInvocation", - "src": "4564:9:3" - } - ], - "name": "_authorizeUpgrade", - "nameLocation": "4501:17:3", - "overrides": { - "id": 465, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4555:8:3" - }, - "parameters": { - "id": 464, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 463, - "mutability": "mutable", - "name": "newImplementation", - "nameLocation": "4527:17:3", - "nodeType": "VariableDeclaration", - "scope": 470, - "src": "4519:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4519:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "4518:27:3" - }, - "returnParameters": { - "id": 468, - "nodeType": "ParameterList", - "parameters": [], - "src": "4574:0:3" - }, - "scope": 471, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 221, - "name": "Initializable", - "nameLocations": ["784:13:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43521, - "src": "784:13:3" - }, - "id": 222, - "nodeType": "InheritanceSpecifier", - "src": "784:13:3" - }, - { - "baseName": { - "id": 223, - "name": "UUPSUpgradeable", - "nameLocations": ["799:15:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43703, - "src": "799:15:3" - }, - "id": 224, - "nodeType": "InheritanceSpecifier", - "src": "799:15:3" - }, - { - "baseName": { - "id": 225, - "name": "AccessControlledUpgradeable", - "nameLocations": ["816:27:3"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 51361, - "src": "816:27:3" - }, - "id": 226, - "nodeType": "InheritanceSpecifier", - "src": "816:27:3" - } - ], - "canonicalName": "PoliciesAgg", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [471, 51361, 43267, 43871, 43749, 43703, 44440, 43521], - "name": "PoliciesAgg", - "nameLocation": "769:11:3", - "scope": 472, - "usedErrors": [ - 43284, 43287, 43548, 43553, 43842, 43848, 43852, 44498, 44511, 45462, 45724, 51261 - ], - "usedEvents": [43292, 43838, 44413] - } - ], - "license": "MIT" - }, - "id": 3 -} +{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyAuthorizer","type":"address","internalType":"address"},{"name":"assetOwnership","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ASSET_OWNERSHIP","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAssetOwnership"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_AUTHORIZER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyAuthorizer"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAvailablePoliciesTerms","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"getPoliciesTerms","inputs":[{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"getPoliciesTerms","inputs":[{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60e03461016657601f61169838819003918201601f19168301916001600160401b0383118484101761016a57808492604094855283398101031261016657610052602061004b8361017e565b920161017e565b90306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610157576002600160401b03196001600160401b038216016100ee575b506001600160a01b0390811660a0521660c052604051611505908161019382396080518181816106a10152610739015260a0518181816104990152611010015260c05181818160cc0152610b9c0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009d565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101665756fe6080806040526004361015610012575f80fd5b5f3560e01c90816343e1da3314610b2a575080634f1ef2861461071957806352d1902d1461067a5780637a9e5e4b146105a35780637d155528146105505780638fb36037146104bd578063968e48cf1461046d5780639f30b60f14610447578063ad3cb1cc146103e4578063bf7e214f14610392578063c4d66de8146100f45763f520d4eb146100a0575f80fd5b346100f0575f6003193601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100f05760206003193601126100f05761010d610d7b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161038a575b6001149081610380575b159081610377575b5061034f57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102fa575b506101d06113df565b6101d86113df565b6101e06113df565b6101e86113df565b6101f181611334565b6101f96113df565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561026757005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101c7565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461015e565b303b159150610156565b84915061014c565b346100f0575f6003193601126100f057602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100f0575f6003193601126100f057610443604051610405604082610e03565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610c1c565b0390f35b346100f05761044361046161045b36610e7e565b90610fb1565b60405191829182610c5f565b346100f0575f6003193601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f0575f6003193601126100f0577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105485760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61051e565b346100f05760206003193601126100f05761044361046161056f610d7b565b6040519073ffffffffffffffffffffffffffffffffffffffff811660208301526020825261059e604083610e03565b610fb1565b346100f05760206003193601126100f0576105bc610d7b565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361064e57803b1561060c5761060a90611334565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100f0575f6003193601126100f05773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036106f15760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b61072236610e7e565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610ae8575b506106f1576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610add575f91610a90575b5015610a0c5773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f91816109d8575b5061087057837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8592036109ad5750813b1561098257807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610951575f8083602061060a95519101845af461094b610f82565b91611436565b50503461095a57005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610a04575b816109f460209383610e03565b810103126100f05751908561083f565b3d91506109e7565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610ad5575b81610aab60409383610e03565b810103126100f05780519081151582036100f0576020015163ffffffff8116036100f057836107ea565b3d9150610a9e565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610764565b346100f05760206003193601126100f05760043580602083015260208252610b53604083610e03565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610add575f91610bd9575b6104436104618484610fb1565b90506020813d602011610c14575b81610bf460209383610e03565b810103126100f05761044391610c0c61046192610f08565b915091610bcc565b3d9150610be7565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b602081016020825282518091526040820190602060408260051b8501019401925f905b828210610c9157505050505090565b90919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08282030185526020865173ffffffffffffffffffffffffffffffffffffffff8151168352015190604060208201528151604082015273ffffffffffffffffffffffffffffffffffffffff60208301511660608201526040820151916004831015610d4e57610d418260c0606060209594600197608088970152015191608060a08201520190610c1c565b9701950193920190610c82565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100f057565b6040810190811067ffffffffffffffff821117610dba57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff821117610dba57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dba57604052565b67ffffffffffffffff8111610dba57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060406003198301126100f05760043573ffffffffffffffffffffffffffffffffffffffff811681036100f0579160243567ffffffffffffffff81116100f057816023820112156100f057806004013590610ed882610e44565b92610ee66040519485610e03565b828452602483830101116100f057815f92602460209301838601378301015290565b519073ffffffffffffffffffffffffffffffffffffffff821682036100f057565b67ffffffffffffffff8111610dba5760051b60200190565b8051821015610f555760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3d15610fac573d90610f9382610e44565b91610fa16040519384610e03565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff604051927f591b43c50000000000000000000000000000000000000000000000000000000084521660048301525f8260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa918215610add575f92611299575b508151917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061108761107185610f29565b9461107f6040519687610e03565b808652610f29565b015f5b8181106112575750508051905f5b8281106110a6575050505090565b73ffffffffffffffffffffffffffffffffffffffff6110c58284610f41565b5116905f8060405160208101907fa3937111000000000000000000000000000000000000000000000000000000008252602060248201526111398161110d604482018c610c1c565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610e03565b5190855afa91611147610f82565b921561124d578251830160208101936020818303126100f057602081015167ffffffffffffffff81116100f0570190608090829003126100f0576040519061118e82610de7565b602081015182526111a160408201610f08565b6020830152606081015160048110156100f0576040830152608081015167ffffffffffffffff81116100f05760209101019380601f860112156100f05784516111e981610e44565b916111f76040519384610e03565b818352602082880101116100f0576020815f9282600199018386015e8301015260608201526040519161122983610d9e565b8252602082015261123a8288610f41565b526112458187610f41565b505b01611098565b5060019150611247565b60209060405161126681610d9e565b5f815260405161127581610de7565b5f81525f848201525f6040820152606080820152838201528282880101520161108a565b9091503d805f833e6112ab8183610e03565b8101906020818303126100f05780519067ffffffffffffffff82116100f057019080601f830112156100f05781516112e281610f29565b926112f06040519485610e03565b81845260208085019260051b8201019283116100f057602001905b82821061131c57505050905f611040565b6020809161132984610f08565b81520191019061130b565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561140e57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611473575080511561144b57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114c6575b611484575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561147c56fea2646970667358221220d01642bd5465c48d5275e079340316ddce23810aa58aff30674f480b8a89cc7d64736f6c634300081a0033","sourceMap":"760:3753:1:-:0;;;;;;;;;;;;;-1:-1:-1;;760:3753:1;;;;-1:-1:-1;;;;;760:3753:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:43;;1163:13;;8837:64:42;760:3753:1;;;;;;7896:76:42;;-1:-1:-1;;;;;;;;;;;760:3753:1;;7985:34:42;7981:146;;-1:-1:-1;;;;;;;760:3753:1;;;;1652:74;760:3753;1736:49;;760:3753;;;;;;;;1163:13:43;760:3753:1;;;;;;;;;;1652:74;760:3753;;;;;;;;;;1736:49;760:3753;;;;;;;;;;;7981:146:42;-1:-1:-1;;;;;;760:3753:1;-1:-1:-1;;;;;760:3753:1;;;8837:64:42;760:3753:1;;;;;;8087:29:42;;760:3753:1;;8087:29:42;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:42;;-1:-1:-1;7938:23:42;760:3753:1;-1:-1:-1;760:3753:1;;;;;;-1:-1:-1;760:3753:1;;;;;-1:-1:-1;760:3753:1;;;;-1:-1:-1;;;;;760:3753:1;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816343e1da3314610b2a575080634f1ef2861461071957806352d1902d1461067a5780637a9e5e4b146105a35780637d155528146105505780638fb36037146104bd578063968e48cf1461046d5780639f30b60f14610447578063ad3cb1cc146103e4578063bf7e214f14610392578063c4d66de8146100f45763f520d4eb146100a0575f80fd5b346100f0575f6003193601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100f05760206003193601126100f05761010d610d7b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161038a575b6001149081610380575b159081610377575b5061034f57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102fa575b506101d06113df565b6101d86113df565b6101e06113df565b6101e86113df565b6101f181611334565b6101f96113df565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561026757005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101c7565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461015e565b303b159150610156565b84915061014c565b346100f0575f6003193601126100f057602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100f0575f6003193601126100f057610443604051610405604082610e03565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610c1c565b0390f35b346100f05761044361046161045b36610e7e565b90610fb1565b60405191829182610c5f565b346100f0575f6003193601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f0575f6003193601126100f0577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105485760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61051e565b346100f05760206003193601126100f05761044361046161056f610d7b565b6040519073ffffffffffffffffffffffffffffffffffffffff811660208301526020825261059e604083610e03565b610fb1565b346100f05760206003193601126100f0576105bc610d7b565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361064e57803b1561060c5761060a90611334565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100f0575f6003193601126100f05773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036106f15760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b61072236610e7e565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610ae8575b506106f1576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610add575f91610a90575b5015610a0c5773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f91816109d8575b5061087057837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8592036109ad5750813b1561098257807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610951575f8083602061060a95519101845af461094b610f82565b91611436565b50503461095a57005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610a04575b816109f460209383610e03565b810103126100f05751908561083f565b3d91506109e7565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610ad5575b81610aab60409383610e03565b810103126100f05780519081151582036100f0576020015163ffffffff8116036100f057836107ea565b3d9150610a9e565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610764565b346100f05760206003193601126100f05760043580602083015260208252610b53604083610e03565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610add575f91610bd9575b6104436104618484610fb1565b90506020813d602011610c14575b81610bf460209383610e03565b810103126100f05761044391610c0c61046192610f08565b915091610bcc565b3d9150610be7565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b602081016020825282518091526040820190602060408260051b8501019401925f905b828210610c9157505050505090565b90919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08282030185526020865173ffffffffffffffffffffffffffffffffffffffff8151168352015190604060208201528151604082015273ffffffffffffffffffffffffffffffffffffffff60208301511660608201526040820151916004831015610d4e57610d418260c0606060209594600197608088970152015191608060a08201520190610c1c565b9701950193920190610c82565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100f057565b6040810190811067ffffffffffffffff821117610dba57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff821117610dba57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dba57604052565b67ffffffffffffffff8111610dba57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060406003198301126100f05760043573ffffffffffffffffffffffffffffffffffffffff811681036100f0579160243567ffffffffffffffff81116100f057816023820112156100f057806004013590610ed882610e44565b92610ee66040519485610e03565b828452602483830101116100f057815f92602460209301838601378301015290565b519073ffffffffffffffffffffffffffffffffffffffff821682036100f057565b67ffffffffffffffff8111610dba5760051b60200190565b8051821015610f555760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3d15610fac573d90610f9382610e44565b91610fa16040519384610e03565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff604051927f591b43c50000000000000000000000000000000000000000000000000000000084521660048301525f8260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa918215610add575f92611299575b508151917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061108761107185610f29565b9461107f6040519687610e03565b808652610f29565b015f5b8181106112575750508051905f5b8281106110a6575050505090565b73ffffffffffffffffffffffffffffffffffffffff6110c58284610f41565b5116905f8060405160208101907fa3937111000000000000000000000000000000000000000000000000000000008252602060248201526111398161110d604482018c610c1c565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610e03565b5190855afa91611147610f82565b921561124d578251830160208101936020818303126100f057602081015167ffffffffffffffff81116100f0570190608090829003126100f0576040519061118e82610de7565b602081015182526111a160408201610f08565b6020830152606081015160048110156100f0576040830152608081015167ffffffffffffffff81116100f05760209101019380601f860112156100f05784516111e981610e44565b916111f76040519384610e03565b818352602082880101116100f0576020815f9282600199018386015e8301015260608201526040519161122983610d9e565b8252602082015261123a8288610f41565b526112458187610f41565b505b01611098565b5060019150611247565b60209060405161126681610d9e565b5f815260405161127581610de7565b5f81525f848201525f6040820152606080820152838201528282880101520161108a565b9091503d805f833e6112ab8183610e03565b8101906020818303126100f05780519067ffffffffffffffff82116100f057019080601f830112156100f05781516112e281610f29565b926112f06040519485610e03565b81845260208085019260051b8201019283116100f057602001905b82821061131c57505050905f611040565b6020809161132984610f08565b81520191019061130b565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561140e57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611473575080511561144b57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114c6575b611484575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561147c56fea2646970667358221220d01642bd5465c48d5275e079340316ddce23810aa58aff30674f480b8a89cc7d64736f6c634300081a0033","sourceMap":"760:3753:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3753:1;;;;;;;;;1085:48;760:3753;;;;;;;;;;;;;-1:-1:-1;;760:3753:1;;;;;;;:::i;:::-;8837:64:42;760:3753:1;;;;;;4301:16:42;760:3753:1;;;;4726:16:42;;:34;;;;760:3753:1;4805:1:42;4790:16;:50;;;;760:3753:1;4855:13:42;:30;;;;760:3753:1;4851:91:42;;;760:3753:1;;4805:1:42;760:3753:1;;;;;8837:64:42;760:3753:1;4979:67:42;;760:3753:1;6893:76:42;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:41;;;:::i;:::-;6893:76:42;;:::i;:::-;760:3753:1;;3298:62:95;760:3753:1;;;3298:62:95;760:3753:1;5066:101:42;;760:3753:1;5066:101:42;760:3753:1;8837:64:42;760:3753:1;;8837:64:42;760:3753:1;5142:14:42;760:3753:1;;;4805:1:42;760:3753:1;;5142:14:42;760:3753:1;4979:67:42;760:3753:1;;;;8837:64:42;760:3753:1;4979:67:42;;;4851:91;4908:23;760:3753:1;4908:23:42;760:3753:1;;4908:23:42;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:42;;4726:34;;;-1:-1:-1;4726:34:42;;760:3753:1;;;;;-1:-1:-1;;760:3753:1;;;;;;;1782:71:41;760:3753:1;;;;;;;;;;;;;-1:-1:-1;;760:3753:1;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;760:3753:1;;;;;;;;;948:65;760:3753;;;;;;;;;-1:-1:-1;;760:3753:1;;;;;1782:71:41;760:3753:1;;;;;4698:71:41;;;760:3753:1;;4698:71:41;760:3753:1;;;;;;;;4698:71:41;760:3753:1;;4698:71:41;;760:3753:1;;;;;-1:-1:-1;;760:3753:1;;;;;;2477:43;760:3753;;:::i;:::-;;;;;;;;2442:18;;760:3753;;2442:18;;;760:3753;2442:18;;:::i;:::-;2477:43;:::i;760:3753::-;;;;;-1:-1:-1;;760:3753:1;;;;;;;:::i;:::-;;1782:71:41;760:3753:1;;966:10:44;4258:21:41;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;760:3753:1;4355:110:41;760:3753:1;4411:43:41;;760:3753:1;4411:43:41;760:3753:1;;;;;4411:43:41;4254:92;4302:33;760:3753:1;4302:33:41;966:10:44;760:3753:1;;;;4302:33:41;760:3753:1;;;;;-1:-1:-1;;760:3753:1;;;;;;5115:6:43;760:3753:1;5106:4:43;5098:23;5094:145;;760:3753:1;;;811:66:56;760:3753:1;;;5094:145:43;5199:29;760:3753:1;5199:29:43;760:3753:1;;5199:29:43;760:3753:1;;;;:::i;:::-;;4692:6:43;760:3753:1;4683:4:43;;4675:23;:120;;;;;760:3753:1;4658:251:43;;;3061:30:95;760:3753:1;;3298:62:95;760:3753:1;;;;3061:30:95;;;;760:3753:1;3061:30:95;;760:3753:1;;3061:30:95;;760:3753:1;1896:10:95;760:3753:1;;;;3061:30:95;;;;;;;760:3753:1;3061:30:95;;;760:3753:1;1872:35:95;;1868:140;;760:3753:1;;;;;;;6156:52:43;;760:3753:1;6156:52:43;760:3753:1;6156:52:43;;;;760:3753:1;;6156:52:43;;;760:3753:1;-1:-1:-1;6152:437:43;;6518:60;;760:3753:1;6518:60:43;760:3753:1;;;;6518:60:43;6152:437;6250:40;811:66:56;6250:40:43;;;6246:120;;1748:29:56;;;:34;1744:119;;760:3753:1;;811:66:56;760:3753:1;;;811:66:56;760:3753:1;2407:36:56;760:3753:1;2407:36:56;;760:3753:1;;2458:15:56;:11;;760:3753:1;4049:25:63;;760:3753:1;4091:55:63;4049:25;;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:56:-;6163:9;;;6159:70;;760:3753:1;6159:70:56;6199:19;760:3753:1;6199:19:56;760:3753:1;;6199:19:56;1744:119;1805:47;760:3753:1;1805:47:56;760:3753:1;;;;1805:47:56;6246:120:43;6317:34;760:3753:1;6317:34:43;760:3753:1;;;;6317:34:43;6156:52;;;;760:3753:1;6156:52:43;;760:3753:1;6156:52:43;;;;;;760:3753:1;6156:52:43;;;:::i;:::-;;;760:3753:1;;;;;6156:52:43;;;;;;;-1:-1:-1;6156:52:43;;1868:140:95;1930:67;760:3753:1;;1930:67:95;;;760:3753:1;;1930:67:95;;520:1:93;;760:3753:1;520:1:93;;760:3753:1;520:1:93;3061:30:95;760:3753:1;;520:1:93;;;;;;1930:67:95;3061:30;;;760:3753:1;3061:30:95;;760:3753:1;3061:30:95;;;;;;760:3753:1;3061:30:95;;;:::i;:::-;;;760:3753:1;;;;;;;;;;;;;;;;;;;;;;;3061:30:95;;;;;;-1:-1:-1;3061:30:95;;;760:3753:1;;;;;;;;;4675:120:43;760:3753:1;;;811:66:56;760:3753:1;;4753:42:43;;4675:120;;;760:3753:1;;;;;-1:-1:-1;;760:3753:1;;;;;;;2830:19;760:3753;2830:19;;760:3753;;2830:19;;;760:3753;2830:19;;:::i;:::-;760:3753;;2876:32;760:3753;2876:32;;760:3753;2876:32;;760:3753;;2876:15;:32;:15;760:3753;2876:15;760:3753;2876:32;;;;;;;760:3753;2876:32;;;760:3753;;2925:43;;;;:::i;2876:32::-;;;760:3753;2876:32;;760:3753;2876:32;;;;;;760:3753;2876:32;;;:::i;:::-;;;760:3753;;;;;;;2925:43;760:3753;;:::i;:::-;2876:32;;;;;;;;-1:-1:-1;2876:32:1;;760:3753;;;;;;;;;;;;;;;;;;;;-1:-1:-1;760:3753:1;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;760:3753:1;;;;;-1:-1:-1;760:3753:1;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;760:3753:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;760:3753:1;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;760:3753:1;;;;:::o;:::-;;;:::o;3183:940::-;;760:3753;;;3360:54;760:3753;3360:54;;760:3753;3360:54;;;760:3753;-1:-1:-1;3360:24:1;:54;:24;760:3753;3360:24;760:3753;3360:54;;;;;;;-1:-1:-1;3360:54:1;;;3183:940;760:3753;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;760:3753:1;;;;;;;;;;3559:13;-1:-1:-1;3574:24:1;;;;;;4104:12;;;;3183:940;:::o;3600:20::-;760:3753;3660:11;;;;:::i;:::-;760:3753;;;-1:-1:-1;760:3753:1;;;;3753:48;;;;;;760:3753;3360:54;3753:48;;760:3753;3753:48;760:3753;;;;;;;:::i;:::-;3753:48;760:3753;3753:48;;;;;;:::i;:::-;3853:34;;;;;;;;:::i;:::-;3905:8;;3901:22;;760:3753;;3978:29;;760:3753;3978:29;;760:3753;;;;;;;;;3978:29;;760:3753;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;3360:54;760:3753;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;760:3753:1;;884:1:90;760:3753:1;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4032:51;;760:3753;4021:62;;;;:::i;:::-;;;;;;:::i;:::-;;3559:13;760:3753;3559:13;;3901:22;3915:8;884:1:90;3915:8:1;;;;760:3753;;;;;;;;:::i;:::-;-1:-1:-1;760:3753:1;;;;;;;:::i;:::-;-1:-1:-1;760:3753:1;;-1:-1:-1;760:3753:1;;;;-1:-1:-1;760:3753:1;;;;;;;;;;;;;;;;;;;;;;3360:54;;;;;;-1:-1:-1;3360:54:1;;;;;;:::i;:::-;;;760:3753;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:54;;;;;;;760:3753;;;;;;;:::i;:::-;;;;;;;;;4964:220:41;760:3753:1;;5147:30:41;4964:220;760:3753:1;;;1782:71:41;760:3753:1;;;1782:71:41;760:3753:1;;;;;;5147:30:41;4964:220::o;7084:141:42:-;760:3753:1;8837:64:42;760:3753:1;;;;7150:18:42;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:42;;-1:-1:-1;7191:17:42;4421:582:63;;4593:8;;-1:-1:-1;760:3753:1;;5674:21:63;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;760:3753:1;;4841:22:63;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;760:3753:1;4917:24:63;;4862:1;4917:24;760:3753:1;4917:24:63;760:3753:1;;4862:1:63;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"316":[{"start":1177,"length":32},{"start":4112,"length":32}],"320":[{"start":204,"length":32},{"start":2972,"length":32}],"40433":[{"start":1697,"length":32},{"start":1849,"length":32}]}},"methodIdentifiers":{"ASSET_OWNERSHIP()":"f520d4eb","RIGHTS_POLICY_AUTHORIZER()":"968e48cf","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","getAvailablePoliciesTerms(address,bytes)":"9f30b60f","getPoliciesTerms(address)":"7d155528","getPoliciesTerms(uint256)":"43e1da33","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyAuthorizer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"assetOwnership\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET_OWNERSHIP\",\"outputs\":[{\"internalType\":\"contract IAssetOwnership\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_AUTHORIZER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyAuthorizer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"getAvailablePoliciesTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getPoliciesTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getPoliciesTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAvailablePoliciesTerms(address,bytes)\":{\"params\":{\"criteria\":\"Encoded data for policy evaluation.\",\"holder\":\"Address of the rights holder.\"}},\"getPoliciesTerms(address)\":{\"params\":{\"holder\":\"The address of the rights holder whose policies are being queried.\"}},\"getPoliciesTerms(uint256)\":{\"params\":{\"assetId\":\"The unique identifier of the asset whose policies are being queried.\"}},\"initialize(address)\":{\"details\":\"Sets up the contract for usage.\",\"params\":{\"accessManager\":\"Address of the Access Manager contract used for permission handling.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"ASSET_OWNERSHIP\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_POLICY_AUTHORIZER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAvailablePoliciesTerms(address,bytes)\":{\"notice\":\"Retrieves all available policies for a holder matching specific criteria.\"},\"getPoliciesTerms(address)\":{\"notice\":\"Retrieves all policies that apply to the entirety of a holder's content.\"},\"getPoliciesTerms(uint256)\":{\"notice\":\"Retrieves all policies that govern operations on a specific asset.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/aggregation/PoliciesAgg.sol\":\"PoliciesAgg\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/aggregation/PoliciesAgg.sol\":{\"keccak256\":\"0xfea1e271fc8e2a5d17be8f00de5fe301829e0bfb6c09d032a968e75b1ee5e737\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61ff4b2a0ab158276a428a2cc496c93d63ad99c72095b0c97eecbfeaecab3243\",\"dweb:/ipfs/QmfAZJE4tpdjK37bWmA1Ji9XPEuHkd5rykFBt4CbQjwYcP\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol\":{\"keccak256\":\"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025\",\"dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0x6bb2e4f5f93d957e5fc351e98155c0c038da3a31dd125e22e06f8cca0d0aa332\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0cb7da10029a309b52c9df25d9d59c3e0404faa156716d0805d540d0a3518915\",\"dweb:/ipfs/QmXgxHWuaQXRnBgAPiPA4hkWcHpcwLgg4d672gTkP793fd\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130\",\"dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x882f7c8f53621d83eaa7e8277379add8f40f8fb0352e6c5c5b8fae4f39c21cf4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f8638cb48fb32ea42b167b909b3d5fecd2ba14c7affdda956d9d5f547636789\",\"dweb:/ipfs/Qmdc5wXqQVCN91ussACQwCi2k6nZaCfsFC6g2nvL7hnKNv\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x9c0dbb09ad90b98817849666e45a70c371676cbe187709f76021bfd6f7d0bb57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb5dafd14005606dd486c8ea5aea374160a59224c03b9687a504360f1c5d190a\",\"dweb:/ipfs/QmVvn3SLREtxwehgxkGg1QE1eMw5QRk5R6kG8qyGujbCTf\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0x5d99ec9405886a20eeff6ea243c1d94b5994a474338b866d74ffa9bbfa9473f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1de4b84ddb631eee3d1eb0f921f0d0d20be3f6e808b8b2a21082436816884095\",\"dweb:/ipfs/QmaKZ938AabVXewdFBVtV8SFD4eWJq59AsdoV3aBMY7cmB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyAuthorizer","type":"address"},{"internalType":"address","name":"assetOwnership","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET_OWNERSHIP","outputs":[{"internalType":"contract IAssetOwnership","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_AUTHORIZER","outputs":[{"internalType":"contract IRightsPolicyAuthorizer","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"getAvailablePoliciesTerms","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoliciesTerms","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getPoliciesTerms","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAvailablePoliciesTerms(address,bytes)":{"params":{"criteria":"Encoded data for policy evaluation.","holder":"Address of the rights holder."}},"getPoliciesTerms(address)":{"params":{"holder":"The address of the rights holder whose policies are being queried."}},"getPoliciesTerms(uint256)":{"params":{"assetId":"The unique identifier of the asset whose policies are being queried."}},"initialize(address)":{"details":"Sets up the contract for usage.","params":{"accessManager":"Address of the Access Manager contract used for permission handling."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"getAvailablePoliciesTerms(address,bytes)":{"notice":"Retrieves all available policies for a holder matching specific criteria."},"getPoliciesTerms(address)":{"notice":"Retrieves all policies that apply to the entirety of a holder's content."},"getPoliciesTerms(uint256)":{"notice":"Retrieves all policies that govern operations on a specific asset."},"initialize(address)":{"notice":"Initializes the proxy state."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/aggregation/PoliciesAgg.sol":"PoliciesAgg"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/aggregation/PoliciesAgg.sol":{"keccak256":"0xfea1e271fc8e2a5d17be8f00de5fe301829e0bfb6c09d032a968e75b1ee5e737","urls":["bzz-raw://61ff4b2a0ab158276a428a2cc496c93d63ad99c72095b0c97eecbfeaecab3243","dweb:/ipfs/QmfAZJE4tpdjK37bWmA1Ji9XPEuHkd5rykFBt4CbQjwYcP"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol":{"keccak256":"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18","urls":["bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025","dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0x6bb2e4f5f93d957e5fc351e98155c0c038da3a31dd125e22e06f8cca0d0aa332","urls":["bzz-raw://0cb7da10029a309b52c9df25d9d59c3e0404faa156716d0805d540d0a3518915","dweb:/ipfs/QmXgxHWuaQXRnBgAPiPA4hkWcHpcwLgg4d672gTkP793fd"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol":{"keccak256":"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419","urls":["bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130","dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x882f7c8f53621d83eaa7e8277379add8f40f8fb0352e6c5c5b8fae4f39c21cf4","urls":["bzz-raw://1f8638cb48fb32ea42b167b909b3d5fecd2ba14c7affdda956d9d5f547636789","dweb:/ipfs/Qmdc5wXqQVCN91ussACQwCi2k6nZaCfsFC6g2nvL7hnKNv"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x9c0dbb09ad90b98817849666e45a70c371676cbe187709f76021bfd6f7d0bb57","urls":["bzz-raw://fb5dafd14005606dd486c8ea5aea374160a59224c03b9687a504360f1c5d190a","dweb:/ipfs/QmVvn3SLREtxwehgxkGg1QE1eMw5QRk5R6kG8qyGujbCTf"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0x5d99ec9405886a20eeff6ea243c1d94b5994a474338b866d74ffa9bbfa9473f0","urls":["bzz-raw://1de4b84ddb631eee3d1eb0f921f0d0d20be3f6e808b8b2a21082436816884095","dweb:/ipfs/QmaKZ938AabVXewdFBVtV8SFD4eWJq59AsdoV3aBMY7cmB"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/aggregation/PoliciesAgg.sol","id":541,"exportedSymbols":{"AccessControlledUpgradeable":[48582],"IAssetOwnership":[47145],"IPolicy":[47548],"IRightsPolicyAuthorizer":[47585],"Initializable":[40413],"LoopOps":[47966],"PoliciesAgg":[540],"T":[48454],"UUPSUpgradeable":[40595]},"nodeType":"SourceUnit","src":"32:4482:1","nodes":[{"id":287,"nodeType":"PragmaDirective","src":"32:23:1","nodes":[],"literals":["solidity","0.8",".26"]},{"id":289,"nodeType":"ImportDirective","src":"57:98:1","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":541,"sourceUnit":40414,"symbolAliases":[{"foreign":{"id":288,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40413,"src":"66:13:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":291,"nodeType":"ImportDirective","src":"156:102:1","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":541,"sourceUnit":40596,"symbolAliases":[{"foreign":{"id":290,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40595,"src":"165:15:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":293,"nodeType":"ImportDirective","src":"260:86:1","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol","file":"@synaps3/core/interfaces/assets/IAssetOwnership.sol","nameLocation":"-1:-1:-1","scope":541,"sourceUnit":47146,"symbolAliases":[{"foreign":{"id":292,"name":"IAssetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47145,"src":"269:15:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":295,"nodeType":"ImportDirective","src":"347:115:1","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":541,"sourceUnit":48583,"symbolAliases":[{"foreign":{"id":294,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48582,"src":"356:27:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":297,"nodeType":"ImportDirective","src":"463:102:1","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyAuthorizer.sol","nameLocation":"-1:-1:-1","scope":541,"sourceUnit":47586,"symbolAliases":[{"foreign":{"id":296,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47585,"src":"472:23:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":299,"nodeType":"ImportDirective","src":"567:72:1","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":541,"sourceUnit":47549,"symbolAliases":[{"foreign":{"id":298,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47548,"src":"576:7:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":301,"nodeType":"ImportDirective","src":"640:62:1","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":541,"sourceUnit":47967,"symbolAliases":[{"foreign":{"id":300,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47966,"src":"649:7:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":303,"nodeType":"ImportDirective","src":"703:55:1","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":541,"sourceUnit":48455,"symbolAliases":[{"foreign":{"id":302,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48454,"src":"712:1:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":540,"nodeType":"ContractDefinition","src":"760:3753:1","nodes":[{"id":312,"nodeType":"UsingForDirective","src":"850:26:1","nodes":[],"global":false,"libraryName":{"id":310,"name":"LoopOps","nameLocations":["856:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":47966,"src":"856:7:1"},"typeName":{"id":311,"name":"uint256","nodeType":"ElementaryTypeName","src":"868:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":316,"nodeType":"VariableDeclaration","src":"948:65:1","nodes":[],"constant":false,"documentation":{"id":313,"nodeType":"StructuredDocumentation","src":"882:61:1","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"968e48cf","mutability":"immutable","name":"RIGHTS_POLICY_AUTHORIZER","nameLocation":"989:24:1","scope":540,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$47585","typeString":"contract IRightsPolicyAuthorizer"},"typeName":{"id":315,"nodeType":"UserDefinedTypeName","pathNode":{"id":314,"name":"IRightsPolicyAuthorizer","nameLocations":["948:23:1"],"nodeType":"IdentifierPath","referencedDeclaration":47585,"src":"948:23:1"},"referencedDeclaration":47585,"src":"948:23:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$47585","typeString":"contract IRightsPolicyAuthorizer"}},"visibility":"public"},{"id":320,"nodeType":"VariableDeclaration","src":"1085:48:1","nodes":[],"constant":false,"documentation":{"id":317,"nodeType":"StructuredDocumentation","src":"1019:61:1","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f520d4eb","mutability":"immutable","name":"ASSET_OWNERSHIP","nameLocation":"1118:15:1","scope":540,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$47145","typeString":"contract IAssetOwnership"},"typeName":{"id":319,"nodeType":"UserDefinedTypeName","pathNode":{"id":318,"name":"IAssetOwnership","nameLocations":["1085:15:1"],"nodeType":"IdentifierPath","referencedDeclaration":47145,"src":"1085:15:1"},"referencedDeclaration":47145,"src":"1085:15:1","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$47145","typeString":"contract IAssetOwnership"}},"visibility":"public"},{"id":327,"nodeType":"StructDefinition","src":"1220:73:1","nodes":[],"canonicalName":"PoliciesAgg.PolicyTerms","documentation":{"id":321,"nodeType":"StructuredDocumentation","src":"1144:71:1","text":"@notice structure to hold the relationship between policy and terms"},"members":[{"constant":false,"id":323,"mutability":"mutable","name":"policy","nameLocation":"1257:6:1","nodeType":"VariableDeclaration","scope":327,"src":"1249:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":322,"name":"address","nodeType":"ElementaryTypeName","src":"1249:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":326,"mutability":"mutable","name":"terms","nameLocation":"1281:5:1","nodeType":"VariableDeclaration","scope":327,"src":"1273:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$48443_storage_ptr","typeString":"struct T.Terms"},"typeName":{"id":325,"nodeType":"UserDefinedTypeName","pathNode":{"id":324,"name":"T.Terms","nameLocations":["1273:1:1","1275:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":48443,"src":"1273:7:1"},"referencedDeclaration":48443,"src":"1273:7:1","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$48443_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"name":"PolicyTerms","nameLocation":"1227:11:1","scope":540,"visibility":"public"},{"id":351,"nodeType":"FunctionDefinition","src":"1352:440:1","nodes":[],"body":{"id":350,"nodeType":"Block","src":"1420:372:1","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":335,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40381,"src":"1620:20:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1620:22:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":337,"nodeType":"ExpressionStatement","src":"1620:22:1"},{"expression":{"id":342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":338,"name":"RIGHTS_POLICY_AUTHORIZER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"1652:24:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$47585","typeString":"contract IRightsPolicyAuthorizer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":340,"name":"rightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"1703:22:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":339,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47585,"src":"1679:23:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyAuthorizer_$47585_$","typeString":"type(contract IRightsPolicyAuthorizer)"}},"id":341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1679:47:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$47585","typeString":"contract IRightsPolicyAuthorizer"}},"src":"1652:74:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$47585","typeString":"contract IRightsPolicyAuthorizer"}},"id":343,"nodeType":"ExpressionStatement","src":"1652:74:1"},{"expression":{"id":348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":344,"name":"ASSET_OWNERSHIP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"1736:15:1","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$47145","typeString":"contract IAssetOwnership"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":346,"name":"assetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"1770:14:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":345,"name":"IAssetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47145,"src":"1754:15:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetOwnership_$47145_$","typeString":"type(contract IAssetOwnership)"}},"id":347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1754:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$47145","typeString":"contract IAssetOwnership"}},"src":"1736:49:1","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$47145","typeString":"contract IAssetOwnership"}},"id":349,"nodeType":"ExpressionStatement","src":"1736:49:1"}]},"documentation":{"id":328,"nodeType":"StructuredDocumentation","src":"1299:48:1","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":330,"mutability":"mutable","name":"rightsPolicyAuthorizer","nameLocation":"1372:22:1","nodeType":"VariableDeclaration","scope":351,"src":"1364:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":329,"name":"address","nodeType":"ElementaryTypeName","src":"1364:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":332,"mutability":"mutable","name":"assetOwnership","nameLocation":"1404:14:1","nodeType":"VariableDeclaration","scope":351,"src":"1396:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":331,"name":"address","nodeType":"ElementaryTypeName","src":"1396:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1363:56:1"},"returnParameters":{"id":334,"nodeType":"ParameterList","parameters":[],"src":"1420:0:1"},"scope":540,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":367,"nodeType":"FunctionDefinition","src":"1986:151:1","nodes":[],"body":{"id":366,"nodeType":"Block","src":"2048:89:1","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":359,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40467,"src":"2058:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2058:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":361,"nodeType":"ExpressionStatement","src":"2058:24:1"},{"expression":{"arguments":[{"id":363,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":354,"src":"2116:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":362,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48517,"src":"2092:23:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2092:38:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":365,"nodeType":"ExpressionStatement","src":"2092:38:1"}]},"documentation":{"id":352,"nodeType":"StructuredDocumentation","src":"1798:183:1","text":"@notice Initializes the proxy state.\n @dev Sets up the contract for usage.\n @param accessManager Address of the Access Manager contract used for permission handling."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":357,"kind":"modifierInvocation","modifierName":{"id":356,"name":"initializer","nameLocations":["2036:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":40267,"src":"2036:11:1"},"nodeType":"ModifierInvocation","src":"2036:11:1"}],"name":"initialize","nameLocation":"1995:10:1","parameters":{"id":355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":354,"mutability":"mutable","name":"accessManager","nameLocation":"2014:13:1","nodeType":"VariableDeclaration","scope":367,"src":"2006:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":353,"name":"address","nodeType":"ElementaryTypeName","src":"2006:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2005:23:1"},"returnParameters":{"id":358,"nodeType":"ParameterList","parameters":[],"src":"2048:0:1"},"scope":540,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":390,"nodeType":"FunctionDefinition","src":"2321:206:1","nodes":[],"body":{"id":389,"nodeType":"Block","src":"2408:119:1","nodes":[],"statements":[{"assignments":[378],"declarations":[{"constant":false,"id":378,"mutability":"mutable","name":"criteria","nameLocation":"2431:8:1","nodeType":"VariableDeclaration","scope":389,"src":"2418:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":377,"name":"bytes","nodeType":"ElementaryTypeName","src":"2418:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":383,"initialValue":{"arguments":[{"id":381,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"2453:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":379,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2442:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2446:6:1","memberName":"encode","nodeType":"MemberAccess","src":"2442:10:1","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2442:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2418:42:1"},{"expression":{"arguments":[{"id":385,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"2503:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":386,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"2511:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":384,"name":"getAvailablePoliciesTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":529,"src":"2477:25:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_struct$_PolicyTerms_$327_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,bytes memory) view returns (struct PoliciesAgg.PolicyTerms memory[] memory)"}},"id":387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2477:43:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$327_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":376,"id":388,"nodeType":"Return","src":"2470:50:1"}]},"documentation":{"id":368,"nodeType":"StructuredDocumentation","src":"2143:173:1","text":"@notice Retrieves all policies that apply to the entirety of a holder's content.\n @param holder The address of the rights holder whose policies are being queried."},"functionSelector":"7d155528","implemented":true,"kind":"function","modifiers":[],"name":"getPoliciesTerms","nameLocation":"2330:16:1","parameters":{"id":371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":370,"mutability":"mutable","name":"holder","nameLocation":"2355:6:1","nodeType":"VariableDeclaration","scope":390,"src":"2347:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":369,"name":"address","nodeType":"ElementaryTypeName","src":"2347:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2346:16:1"},"returnParameters":{"id":376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":390,"src":"2386:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$327_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":373,"nodeType":"UserDefinedTypeName","pathNode":{"id":372,"name":"PolicyTerms","nameLocations":["2386:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":327,"src":"2386:11:1"},"referencedDeclaration":327,"src":"2386:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$327_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":374,"nodeType":"ArrayTypeName","src":"2386:13:1","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$327_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"2385:22:1"},"scope":540,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":420,"nodeType":"FunctionDefinition","src":"2708:267:1","nodes":[],"body":{"id":419,"nodeType":"Block","src":"2796:179:1","nodes":[],"statements":[{"assignments":[401],"declarations":[{"constant":false,"id":401,"mutability":"mutable","name":"criteria","nameLocation":"2819:8:1","nodeType":"VariableDeclaration","scope":419,"src":"2806:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":400,"name":"bytes","nodeType":"ElementaryTypeName","src":"2806:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":406,"initialValue":{"arguments":[{"id":404,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":393,"src":"2841:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":402,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2830:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2834:6:1","memberName":"encode","nodeType":"MemberAccess","src":"2830:10:1","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2830:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2806:43:1"},{"assignments":[408],"declarations":[{"constant":false,"id":408,"mutability":"mutable","name":"holder","nameLocation":"2867:6:1","nodeType":"VariableDeclaration","scope":419,"src":"2859:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":407,"name":"address","nodeType":"ElementaryTypeName","src":"2859:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":413,"initialValue":{"arguments":[{"id":411,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":393,"src":"2900:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":409,"name":"ASSET_OWNERSHIP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"2876:15:1","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$47145","typeString":"contract IAssetOwnership"}},"id":410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2892:7:1","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":42425,"src":"2876:23:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2876:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2859:49:1"},{"expression":{"arguments":[{"id":415,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":408,"src":"2951:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":416,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":401,"src":"2959:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":414,"name":"getAvailablePoliciesTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":529,"src":"2925:25:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_struct$_PolicyTerms_$327_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,bytes memory) view returns (struct PoliciesAgg.PolicyTerms memory[] memory)"}},"id":417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2925:43:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$327_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":399,"id":418,"nodeType":"Return","src":"2918:50:1"}]},"documentation":{"id":391,"nodeType":"StructuredDocumentation","src":"2533:170:1","text":"@notice Retrieves all policies that govern operations on a specific asset.\n @param assetId The unique identifier of the asset whose policies are being queried."},"functionSelector":"43e1da33","implemented":true,"kind":"function","modifiers":[],"name":"getPoliciesTerms","nameLocation":"2717:16:1","parameters":{"id":394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":393,"mutability":"mutable","name":"assetId","nameLocation":"2742:7:1","nodeType":"VariableDeclaration","scope":420,"src":"2734:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":392,"name":"uint256","nodeType":"ElementaryTypeName","src":"2734:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2733:17:1"},"returnParameters":{"id":399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":398,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":420,"src":"2774:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$327_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":396,"nodeType":"UserDefinedTypeName","pathNode":{"id":395,"name":"PolicyTerms","nameLocations":["2774:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":327,"src":"2774:11:1"},"referencedDeclaration":327,"src":"2774:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$327_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":397,"nodeType":"ArrayTypeName","src":"2774:13:1","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$327_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"2773:22:1"},"scope":540,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":529,"nodeType":"FunctionDefinition","src":"3183:940:1","nodes":[],"body":{"id":528,"nodeType":"Block","src":"3322:801:1","nodes":[],"statements":[{"assignments":[436],"declarations":[{"constant":false,"id":436,"mutability":"mutable","name":"policies","nameLocation":"3349:8:1","nodeType":"VariableDeclaration","scope":528,"src":"3332:25:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":434,"name":"address","nodeType":"ElementaryTypeName","src":"3332:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":435,"nodeType":"ArrayTypeName","src":"3332:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":441,"initialValue":{"arguments":[{"id":439,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":423,"src":"3407:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":437,"name":"RIGHTS_POLICY_AUTHORIZER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"3360:24:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$47585","typeString":"contract IRightsPolicyAuthorizer"}},"id":438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3385:21:1","memberName":"getAuthorizedPolicies","nodeType":"MemberAccess","referencedDeclaration":47560,"src":"3360:46:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (address) view external returns (address[] memory)"}},"id":440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3360:54:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3332:82:1"},{"assignments":[446],"declarations":[{"constant":false,"id":446,"mutability":"mutable","name":"terms","nameLocation":"3445:5:1","nodeType":"VariableDeclaration","scope":528,"src":"3424:26:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$327_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":444,"nodeType":"UserDefinedTypeName","pathNode":{"id":443,"name":"PolicyTerms","nameLocations":["3424:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":327,"src":"3424:11:1"},"referencedDeclaration":327,"src":"3424:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$327_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":445,"nodeType":"ArrayTypeName","src":"3424:13:1","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$327_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"id":454,"initialValue":{"arguments":[{"expression":{"id":451,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"3471:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3480:6:1","memberName":"length","nodeType":"MemberAccess","src":"3471:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3453:17:1","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_PolicyTerms_$327_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct PoliciesAgg.PolicyTerms memory[] memory)"},"typeName":{"baseType":{"id":448,"nodeType":"UserDefinedTypeName","pathNode":{"id":447,"name":"PolicyTerms","nameLocations":["3457:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":327,"src":"3457:11:1"},"referencedDeclaration":327,"src":"3457:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$327_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":449,"nodeType":"ArrayTypeName","src":"3457:13:1","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$327_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}}},"id":453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3453:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$327_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3424:63:1"},{"assignments":[456],"declarations":[{"constant":false,"id":456,"mutability":"mutable","name":"availablePoliciesLen","nameLocation":"3505:20:1","nodeType":"VariableDeclaration","scope":528,"src":"3497:28:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":455,"name":"uint256","nodeType":"ElementaryTypeName","src":"3497:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":459,"initialValue":{"expression":{"id":457,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"3528:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3537:6:1","memberName":"length","nodeType":"MemberAccess","src":"3528:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3497:46:1"},{"body":{"id":524,"nodeType":"Block","src":"3622:472:1","statements":[{"assignments":[474],"declarations":[{"constant":false,"id":474,"mutability":"mutable","name":"policyAddress","nameLocation":"3644:13:1","nodeType":"VariableDeclaration","scope":524,"src":"3636:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":473,"name":"address","nodeType":"ElementaryTypeName","src":"3636:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":478,"initialValue":{"baseExpression":{"id":475,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"3660:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":477,"indexExpression":{"id":476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"3669:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3660:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3636:35:1"},{"assignments":[480],"declarations":[{"constant":false,"id":480,"mutability":"mutable","name":"callData","nameLocation":"3742:8:1","nodeType":"VariableDeclaration","scope":524,"src":"3729:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":479,"name":"bytes","nodeType":"ElementaryTypeName","src":"3729:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":488,"initialValue":{"arguments":[{"expression":{"id":483,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47548,"src":"3768:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$47548_$","typeString":"type(contract IPolicy)"}},"id":484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3776:12:1","memberName":"resolveTerms","nodeType":"MemberAccess","referencedDeclaration":47541,"src":"3768:20:1","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes_calldata_ptr_$returns$_t_struct$_Terms_$48443_memory_ptr_$","typeString":"function IPolicy.resolveTerms(bytes calldata) view returns (struct T.Terms memory)"}},{"components":[{"id":485,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"3791:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":486,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3790:10:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_view$_t_bytes_calldata_ptr_$returns$_t_struct$_Terms_$48443_memory_ptr_$","typeString":"function IPolicy.resolveTerms(bytes calldata) view returns (struct T.Terms memory)"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":481,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3753:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3757:10:1","memberName":"encodeCall","nodeType":"MemberAccess","src":"3753:14:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3753:48:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3729:72:1"},{"assignments":[490,492],"declarations":[{"constant":false,"id":490,"mutability":"mutable","name":"success","nameLocation":"3821:7:1","nodeType":"VariableDeclaration","scope":524,"src":"3816:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":489,"name":"bool","nodeType":"ElementaryTypeName","src":"3816:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":492,"mutability":"mutable","name":"result","nameLocation":"3843:6:1","nodeType":"VariableDeclaration","scope":524,"src":"3830:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":491,"name":"bytes","nodeType":"ElementaryTypeName","src":"3830:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":497,"initialValue":{"arguments":[{"id":495,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":480,"src":"3878:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":493,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"3853:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3867:10:1","memberName":"staticcall","nodeType":"MemberAccess","src":"3853:24:1","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3853:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3815:72:1"},{"condition":{"id":499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3905:8:1","subExpression":{"id":498,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":490,"src":"3906:7:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":501,"nodeType":"IfStatement","src":"3901:22:1","trueBody":{"id":500,"nodeType":"Continue","src":"3915:8:1"}},{"assignments":[506],"declarations":[{"constant":false,"id":506,"mutability":"mutable","name":"term","nameLocation":"3971:4:1","nodeType":"VariableDeclaration","scope":524,"src":"3956:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$48443_memory_ptr","typeString":"struct T.Terms"},"typeName":{"id":505,"nodeType":"UserDefinedTypeName","pathNode":{"id":504,"name":"T.Terms","nameLocations":["3956:1:1","3958:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":48443,"src":"3956:7:1"},"referencedDeclaration":48443,"src":"3956:7:1","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$48443_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"id":514,"initialValue":{"arguments":[{"id":509,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":492,"src":"3989:6:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":510,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48454,"src":"3998:1:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$48454_$","typeString":"type(library T)"}},"id":511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4000:5:1","memberName":"Terms","nodeType":"MemberAccess","referencedDeclaration":48443,"src":"3998:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$48443_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}}],"id":512,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3997:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$48443_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Terms_$48443_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}],"expression":{"id":507,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3978:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3982:6:1","memberName":"decode","nodeType":"MemberAccess","src":"3978:10:1","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3978:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$48443_memory_ptr","typeString":"struct T.Terms memory"}},"nodeType":"VariableDeclarationStatement","src":"3956:51:1"},{"expression":{"id":522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":515,"name":"terms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"4021:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$327_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"id":517,"indexExpression":{"id":516,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"4027:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4021:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$327_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":519,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"4054:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":520,"name":"term","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"4076:4:1","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$48443_memory_ptr","typeString":"struct T.Terms memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Terms_$48443_memory_ptr","typeString":"struct T.Terms memory"}],"id":518,"name":"PolicyTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"4032:11:1","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PolicyTerms_$327_storage_ptr_$","typeString":"type(struct PoliciesAgg.PolicyTerms storage pointer)"}},"id":521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4046:6:1","4069:5:1"],"names":["policy","terms"],"nodeType":"FunctionCall","src":"4032:51:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$327_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"src":"4021:62:1","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$327_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"id":523,"nodeType":"ExpressionStatement","src":"4021:62:1"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":464,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"3574:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":465,"name":"availablePoliciesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"3578:20:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3574:24:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":525,"initializationExpression":{"assignments":[461],"declarations":[{"constant":false,"id":461,"mutability":"mutable","name":"i","nameLocation":"3567:1:1","nodeType":"VariableDeclaration","scope":525,"src":"3559:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":460,"name":"uint256","nodeType":"ElementaryTypeName","src":"3559:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":463,"initialValue":{"hexValue":"30","id":462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3571:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3559:13:1"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":467,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"3600:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":468,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"3604:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3606:12:1","memberName":"uncheckedInc","nodeType":"MemberAccess","referencedDeclaration":47949,"src":"3604:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3604:16:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3600:20:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":472,"nodeType":"ExpressionStatement","src":"3600:20:1"},"nodeType":"ForStatement","src":"3554:540:1"},{"expression":{"id":526,"name":"terms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"4111:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$327_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":431,"id":527,"nodeType":"Return","src":"4104:12:1"}]},"documentation":{"id":421,"nodeType":"StructuredDocumentation","src":"2981:197:1","text":"@notice Retrieves all available policies for a holder matching specific criteria.\n @param holder Address of the rights holder.\n @param criteria Encoded data for policy evaluation."},"functionSelector":"9f30b60f","implemented":true,"kind":"function","modifiers":[],"name":"getAvailablePoliciesTerms","nameLocation":"3192:25:1","parameters":{"id":426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":423,"mutability":"mutable","name":"holder","nameLocation":"3235:6:1","nodeType":"VariableDeclaration","scope":529,"src":"3227:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":422,"name":"address","nodeType":"ElementaryTypeName","src":"3227:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":425,"mutability":"mutable","name":"criteria","nameLocation":"3264:8:1","nodeType":"VariableDeclaration","scope":529,"src":"3251:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":424,"name":"bytes","nodeType":"ElementaryTypeName","src":"3251:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3217:61:1"},"returnParameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":529,"src":"3300:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$327_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":428,"nodeType":"UserDefinedTypeName","pathNode":{"id":427,"name":"PolicyTerms","nameLocations":["3300:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":327,"src":"3300:11:1"},"referencedDeclaration":327,"src":"3300:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$327_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":429,"nodeType":"ArrayTypeName","src":"3300:13:1","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$327_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"3299:22:1"},"scope":540,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":539,"nodeType":"FunctionDefinition","src":"4427:84:1","nodes":[],"body":{"id":538,"nodeType":"Block","src":"4509:2:1","nodes":[],"statements":[]},"baseFunctions":[40549],"documentation":{"id":530,"nodeType":"StructuredDocumentation","src":"4129:293:1","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":536,"kind":"modifierInvocation","modifierName":{"id":535,"name":"onlyAdmin","nameLocations":["4499:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":48500,"src":"4499:9:1"},"nodeType":"ModifierInvocation","src":"4499:9:1"}],"name":"_authorizeUpgrade","nameLocation":"4436:17:1","overrides":{"id":534,"nodeType":"OverrideSpecifier","overrides":[],"src":"4490:8:1"},"parameters":{"id":533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":532,"mutability":"mutable","name":"newImplementation","nameLocation":"4462:17:1","nodeType":"VariableDeclaration","scope":539,"src":"4454:25:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":531,"name":"address","nodeType":"ElementaryTypeName","src":"4454:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4453:27:1"},"returnParameters":{"id":537,"nodeType":"ParameterList","parameters":[],"src":"4509:0:1"},"scope":540,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":304,"name":"Initializable","nameLocations":["784:13:1"],"nodeType":"IdentifierPath","referencedDeclaration":40413,"src":"784:13:1"},"id":305,"nodeType":"InheritanceSpecifier","src":"784:13:1"},{"baseName":{"id":306,"name":"UUPSUpgradeable","nameLocations":["799:15:1"],"nodeType":"IdentifierPath","referencedDeclaration":40595,"src":"799:15:1"},"id":307,"nodeType":"InheritanceSpecifier","src":"799:15:1"},{"baseName":{"id":308,"name":"AccessControlledUpgradeable","nameLocations":["816:27:1"],"nodeType":"IdentifierPath","referencedDeclaration":48582,"src":"816:27:1"},"id":309,"nodeType":"InheritanceSpecifier","src":"816:27:1"}],"canonicalName":"PoliciesAgg","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[540,48582,40159,40939,40641,40595,41508,40413],"name":"PoliciesAgg","nameLocation":"769:11:1","scope":541,"usedErrors":[40176,40179,40440,40445,40910,40916,40920,41566,41579,42530,42792,48482],"usedEvents":[40184,40906,41481]}],"license":"MIT"},"id":1} \ No newline at end of file diff --git a/src/config/abi/RightsPolicyAuthorizer.json b/src/config/abi/RightsPolicyAuthorizer.json index 5c0bf4b8..965722fe 100644 --- a/src/config/abi/RightsPolicyAuthorizer.json +++ b/src/config/abi/RightsPolicyAuthorizer.json @@ -1,4245 +1 @@ -{ - "abi": [ - { - "type": "constructor", - "inputs": [{ "name": "policyAudit", "type": "address", "internalType": "address" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "POLICY_AUDIT", - "inputs": [], - "outputs": [ - { "name": "", "type": "address", "internalType": "contract IPolicyAuditorVerifiable" } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "UPGRADE_INTERFACE_VERSION", - "inputs": [], - "outputs": [{ "name": "", "type": "string", "internalType": "string" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "authority", - "inputs": [], - "outputs": [{ "name": "", "type": "address", "internalType": "address" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "authorizePolicy", - "inputs": [ - { "name": "policy", "type": "address", "internalType": "address" }, - { "name": "data", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "getAuthorizedPolicies", - "inputs": [{ "name": "holder", "type": "address", "internalType": "address" }], - "outputs": [{ "name": "", "type": "address[]", "internalType": "address[]" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "initialize", - "inputs": [{ "name": "accessManager", "type": "address", "internalType": "address" }], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "isConsumingScheduledOp", - "inputs": [], - "outputs": [{ "name": "", "type": "bytes4", "internalType": "bytes4" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "isPolicyAuthorized", - "inputs": [ - { "name": "policy", "type": "address", "internalType": "address" }, - { "name": "holder", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "proxiableUUID", - "inputs": [], - "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "revokePolicy", - "inputs": [{ "name": "policy", "type": "address", "internalType": "address" }], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "setAuthority", - "inputs": [{ "name": "newAuthority", "type": "address", "internalType": "address" }], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "upgradeToAndCall", - "inputs": [ - { "name": "newImplementation", "type": "address", "internalType": "address" }, - { "name": "data", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [], - "stateMutability": "payable" - }, - { - "type": "event", - "name": "AuthorityUpdated", - "inputs": [ - { "name": "authority", "type": "address", "indexed": false, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Initialized", - "inputs": [ - { "name": "version", "type": "uint64", "indexed": false, "internalType": "uint64" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "RightsGranted", - "inputs": [ - { "name": "policy", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "holder", "type": "address", "indexed": true, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "RightsRevoked", - "inputs": [ - { "name": "policy", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "holder", "type": "address", "indexed": true, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Upgraded", - "inputs": [ - { "name": "implementation", "type": "address", "indexed": true, "internalType": "address" } - ], - "anonymous": false - }, - { - "type": "error", - "name": "AccessManagedInvalidAuthority", - "inputs": [{ "name": "authority", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "AccessManagedRequiredDelay", - "inputs": [ - { "name": "caller", "type": "address", "internalType": "address" }, - { "name": "delay", "type": "uint32", "internalType": "uint32" } - ] - }, - { - "type": "error", - "name": "AccessManagedUnauthorized", - "inputs": [{ "name": "caller", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "AddressEmptyCode", - "inputs": [{ "name": "target", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "ERC1967InvalidImplementation", - "inputs": [{ "name": "implementation", "type": "address", "internalType": "address" }] - }, - { "type": "error", "name": "ERC1967NonPayable", "inputs": [] }, - { "type": "error", "name": "FailedCall", "inputs": [] }, - { "type": "error", "name": "InvalidInitialization", "inputs": [] }, - { - "type": "error", - "name": "InvalidNotAuditedPolicy", - "inputs": [{ "name": "policy", "type": "address", "internalType": "address" }] - }, - { - "type": "error", - "name": "InvalidPolicyInitialization", - "inputs": [{ "name": "reason", "type": "string", "internalType": "string" }] - }, - { - "type": "error", - "name": "InvalidUnauthorizedOperation", - "inputs": [{ "name": "", "type": "string", "internalType": "string" }] - }, - { "type": "error", "name": "NotInitializing", "inputs": [] }, - { "type": "error", "name": "UUPSUnauthorizedCallContext", "inputs": [] }, - { - "type": "error", - "name": "UUPSUnsupportedProxiableUUID", - "inputs": [{ "name": "slot", "type": "bytes32", "internalType": "bytes32" }] - } - ], - "bytecode": { - "object": "0x60c03461014657601f61176838819003918201601f19168301916001600160401b0383118484101761014a5780849260209460405283398101031261014657516001600160a01b0381169081900361014657306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610137576002600160401b03196001600160401b038216016100ce575b5060a052604051611609908161015f82396080518181816108ab01526109ac015260a0518181816105e101526111a60152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009b565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610d995780634f1ef2861461092357806352d1902d14610884578063591b43c5146106dc5780637a9e5e4b1461060557806382e2b7c8146105b55780638fb36037146105225780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610fd8565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b6101269150611138565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610fd8565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c6114e3565b6102146114e3565b61021c6114e3565b6102246114e3565b61022d81611210565b6102356114e3565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610ffb565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610fd8565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f209216809261135d565b5033907fe26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e5f80a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105ad5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610583565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c5761061e610fd8565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b057803b1561066e5761066c90611210565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff61070a610fd8565b165f525f60205260405f20604051808260208294549384815201905f5260205f20925f5b81811061086b57505061074392500382610ffb565b805190610768610752836110d2565b926107606040519485610ffb565b8084526110d2565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840192013683378051905f805b8382106107fa578486604051918291602083019060208452518091526040830191905f5b8181106107cb575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff168452859450602093840193909201916001016107bd565b61082373ffffffffffffffffffffffffffffffffffffffff61081c84866110ea565b5116611138565b15610862576001809173ffffffffffffffffffffffffffffffffffffffff61084b85876110ea565b5116610857828a6110ea565b5201915b0190610799565b9060019061085b565b845483526001948501948694506020909301920161072e565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108fb5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c57610937610fd8565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061096482611069565b916109726040519384610ffb565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d57575b506108fb576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610d4c575f91610d01575b5015610c7d5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c49575b50610ae357847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610c1e5750823b15610bf357807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610bc1575f809161066c945190845af4610bbb6110a3565b9161153a565b50505034610bcb57005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c75575b81610c6560209383610ffb565b8101031261012c57519086610ab2565b3d9150610c58565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610d44575b81610d1c60409383610ffb565b8101031261012c576020610d2f8261112b565b91015163ffffffff81160361012c5784610a5d565b3d9150610d0f565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54161415846109d7565b3461012c57604060031936011261012c57610db2610fd8565b60243567ffffffffffffffff811161012c573660238201121561012c57806004013567ffffffffffffffff811161012c57366024828401011161012c57610df883611138565b15610f96575f91601f610ea9608485947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060405194828693602460208601997fd1f57894000000000000000000000000000000000000000000000000000000008b523382880152604060448801528260648801520186860137888582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ffb565b519082855af1610eb76110a3565b5015610f1257335f525f602052610ee973ffffffffffffffffffffffffffffffffffffffff60405f20921680926112d0565b5033907f164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d795f80a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff837fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761103c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff811161103c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d156110cd573d906110b482611069565b916110c26040519384610ffb565b82523d5f602084013e565b606090565b67ffffffffffffffff811161103c5760051b60200190565b80518210156110fe5760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff16801515908161115b575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610d4c575f916111d9575090565b90506020813d602011611208575b816111f460209383610ffb565b8101031261012c576112059061112b565b90565b3d91506111e7565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b80548210156110fe575f5260205f2001905f90565b5f828152600182016020526040902054611357578054906801000000000000000082101561103c578261134261130d8460018096018555846112bb565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f146114db577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116114ae578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116114ae57818103611479575b5050508054801561144c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061140f82826112bb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b61149961148961130d93866112bb565b90549060031b1c928392866112bb565b90555f528360205260405f20555f80806113d7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561151257565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611577575080511561154f57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806115ca575b611588575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561158056fea2646970667358221220057c58598f54b9385a4deaa7a40de35f032417baccf5eecb12fbc4fd5ed76c1864736f6c634300081a0033", - "sourceMap": "904:6459:59:-:0;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;-1:-1:-1;;;;;904:6459:59;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;904:6459:59;;;;;;;;1171:4:93;1163:13;;8837:64:92;904:6459:59;;;;;;7896:76:92;;-1:-1:-1;;;;;;;;;;;904:6459:59;;7985:34:92;7981:146;;-1:-1:-1;3100:52:59;;;904:6459;;;;;;;;1163:13:93;904:6459:59;;;;;;;;;;3100:52;904:6459;;;;;;;;;;;7981:146:92;-1:-1:-1;;;;;;904:6459:59;-1:-1:-1;;;;;904:6459:59;;;8837:64:92;904:6459:59;;;;;;8087:29:92;;904:6459:59;;8087:29:92;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:92;;-1:-1:-1;7938:23:92;904:6459:59;-1:-1:-1;904:6459:59;;;;;;-1:-1:-1;904:6459:59;;;;;-1:-1:-1;904:6459:59", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610d995780634f1ef2861461092357806352d1902d14610884578063591b43c5146106dc5780637a9e5e4b1461060557806382e2b7c8146105b55780638fb36037146105225780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610fd8565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b6101269150611138565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610fd8565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c6114e3565b6102146114e3565b61021c6114e3565b6102246114e3565b61022d81611210565b6102356114e3565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610ffb565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610fd8565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f209216809261135d565b5033907fe26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e5f80a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105ad5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610583565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c5761061e610fd8565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b057803b1561066e5761066c90611210565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff61070a610fd8565b165f525f60205260405f20604051808260208294549384815201905f5260205f20925f5b81811061086b57505061074392500382610ffb565b805190610768610752836110d2565b926107606040519485610ffb565b8084526110d2565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840192013683378051905f805b8382106107fa578486604051918291602083019060208452518091526040830191905f5b8181106107cb575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff168452859450602093840193909201916001016107bd565b61082373ffffffffffffffffffffffffffffffffffffffff61081c84866110ea565b5116611138565b15610862576001809173ffffffffffffffffffffffffffffffffffffffff61084b85876110ea565b5116610857828a6110ea565b5201915b0190610799565b9060019061085b565b845483526001948501948694506020909301920161072e565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108fb5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c57610937610fd8565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061096482611069565b916109726040519384610ffb565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d57575b506108fb576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610d4c575f91610d01575b5015610c7d5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c49575b50610ae357847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610c1e5750823b15610bf357807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610bc1575f809161066c945190845af4610bbb6110a3565b9161153a565b50505034610bcb57005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c75575b81610c6560209383610ffb565b8101031261012c57519086610ab2565b3d9150610c58565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610d44575b81610d1c60409383610ffb565b8101031261012c576020610d2f8261112b565b91015163ffffffff81160361012c5784610a5d565b3d9150610d0f565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54161415846109d7565b3461012c57604060031936011261012c57610db2610fd8565b60243567ffffffffffffffff811161012c573660238201121561012c57806004013567ffffffffffffffff811161012c57366024828401011161012c57610df883611138565b15610f96575f91601f610ea9608485947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060405194828693602460208601997fd1f57894000000000000000000000000000000000000000000000000000000008b523382880152604060448801528260648801520186860137888582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ffb565b519082855af1610eb76110a3565b5015610f1257335f525f602052610ee973ffffffffffffffffffffffffffffffffffffffff60405f20921680926112d0565b5033907f164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d795f80a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff837fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761103c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff811161103c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d156110cd573d906110b482611069565b916110c26040519384610ffb565b82523d5f602084013e565b606090565b67ffffffffffffffff811161103c5760051b60200190565b80518210156110fe5760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff16801515908161115b575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610d4c575f916111d9575090565b90506020813d602011611208575b816111f460209383610ffb565b8101031261012c576112059061112b565b90565b3d91506111e7565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b80548210156110fe575f5260205f2001905f90565b5f828152600182016020526040902054611357578054906801000000000000000082101561103c578261134261130d8460018096018555846112bb565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f146114db577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116114ae578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116114ae57818103611479575b5050508054801561144c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061140f82826112bb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b61149961148961130d93866112bb565b90549060031b1c928392866112bb565b90555f528360205260405f20555f80806113d7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561151257565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611577575080511561154f57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806115ca575b611588575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561158056fea2646970667358221220057c58598f54b9385a4deaa7a40de35f032417baccf5eecb12fbc4fd5ed76c1864736f6c634300081a0033", - "sourceMap": "904:6459:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4360:14:173;;904:6459:59;;;;;;4360:26:173;;5002:70:59;;;;904:6459;;;;;;;;;;5002:70;5050:22;;;;:::i;:::-;5002:70;;;904:6459;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;8837:64:92;904:6459:59;;;;;;4301:16:92;904:6459:59;;;;4726:16:92;;:34;;;;904:6459:59;4805:1:92;4790:16;:50;;;;904:6459:59;4855:13:92;:30;;;;904:6459:59;4851:91:92;;;904:6459:59;;4805:1:92;904:6459:59;;;;;8837:64:92;904:6459:59;4979:67:92;;904:6459:59;6893:76:92;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:90;;;:::i;:::-;6893:76:92;;:::i;:::-;904:6459:59;;3295:62:44;904:6459:59;;;3295:62:44;904:6459:59;5066:101:92;;904:6459:59;5066:101:92;904:6459:59;8837:64:92;904:6459:59;;8837:64:92;904:6459:59;5142:14:92;904:6459:59;;;4805:1:92;904:6459:59;;5142:14:92;904:6459:59;4979:67:92;904:6459:59;;;;8837:64:92;904:6459:59;4979:67:92;;;4851:91;4908:23;904:6459:59;4908:23:92;904:6459:59;;4908:23:92;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:92;;4726:34;;;-1:-1:-1;4726:34:92;;904:6459:59;;;;;-1:-1:-1;;904:6459:59;;;;;;;1782:71:90;904:6459:59;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;4552:10;904:6459;;;;;8703:53:173;904:6459:59;;;;;;8703:53:173;;;:::i;:::-;;4552:10:59;4593:33;;904:6459;4593:33;;904:6459;;;;;;-1:-1:-1;;904:6459:59;;;;;1782:71:90;904:6459:59;;;;;4698:71:90;;;904:6459:59;;4698:71:90;904:6459:59;;;;;;;;4698:71:90;904:6459:59;;4698:71:90;;904:6459:59;;;;;-1:-1:-1;;904:6459:59;;;;;;;;;1521:54;904:6459;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;;1782:71:90;904:6459:59;;966:10:96;4258:21:90;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;904:6459:59;4355:110:90;904:6459:59;4411:43:90;;904:6459:59;4411:43:90;904:6459:59;;;;;4411:43:90;4254:92;4302:33;904:6459:59;4302:33:90;966:10:96;904:6459:59;;;;4302:33:90;904:6459:59;;;;;-1:-1:-1;;904:6459:59;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;6278:13;904:6459;;6341:15;;;;;;904:6459;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;904:6459:59;;;;;;;;;;;;;6358:20;6399:27;904:6459;6414:11;;;;:::i;:::-;904:6459;;6399:27;:::i;:::-;6398:28;6394:42;;904:6459;6464:11;;904:6459;6464:11;;;;:::i;:::-;904:6459;;6450:25;;;;:::i;:::-;904:6459;;6358:20;6326:13;904:6459;6326:13;;;6394:42;6428:8;904:6459;6428:8;;;904:6459;;;;;;;;;;;;-1:-1:-1;904:6459:59;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;5115:6:93;904:6459:59;5106:4:93;5098:23;5094:145;;904:6459:59;;;811:66:130;904:6459:59;;;5094:145:93;5199:29;904:6459:59;5199:29:93;904:6459:59;;5199:29:93;904:6459:59;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:93;904:6459:59;4683:4:93;;4675:23;:120;;;;;904:6459:59;4658:251:93;;;3058:30:44;904:6459:59;;3295:62:44;904:6459:59;;;;3058:30:44;;;;904:6459:59;3058:30:44;;904:6459:59;;3058:30:44;;904:6459:59;1893:10:44;904:6459:59;;;;3058:30:44;;;;;;;904:6459:59;3058:30:44;;;904:6459:59;1869:35:44;;1865:140;;904:6459:59;;;;;;;6156:52:93;;904:6459:59;6156:52:93;904:6459:59;6156:52:93;;;;904:6459:59;;6156:52:93;;;904:6459:59;-1:-1:-1;6152:437:93;;6518:60;;904:6459:59;6518:60:93;904:6459:59;;;;6518:60:93;6152:437;6250:40;811:66:130;6250:40:93;;;6246:120;;1748:29:130;;;:34;1744:119;;904:6459:59;;811:66:130;904:6459:59;;;811:66:130;904:6459:59;2407:36:130;904:6459:59;2407:36:130;;904:6459:59;;2458:15:130;:11;;904:6459:59;4049:25:151;;4091:55;4049:25;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:130:-;6163:9;;;;6159:70;;904:6459:59;6159:70:130;6199:19;904:6459:59;6199:19:130;904:6459:59;;6199:19:130;1744:119;1805:47;904:6459:59;1805:47:130;904:6459:59;;;;1805:47:130;6246:120:93;6317:34;904:6459:59;6317:34:93;904:6459:59;;;;6317:34:93;6156:52;;;;904:6459:59;6156:52:93;;904:6459:59;6156:52:93;;;;;;904:6459:59;6156:52:93;;;:::i;:::-;;;904:6459:59;;;;;6156:52:93;;;;;;;-1:-1:-1;6156:52:93;;1865:140:44;1927:67;904:6459:59;;1927:67:44;;;904:6459:59;;1927:67:44;;520:1:42;904:6459:59;;520:1:42;;904:6459:59;520:1:42;3058:30:44;904:6459:59;;520:1:42;;;;;;1927:67:44;3058:30;;;904:6459:59;3058:30:44;;904:6459:59;3058:30:44;;;;;;904:6459:59;3058:30:44;;;:::i;:::-;;;904:6459:59;;;;;;;;:::i;:::-;;;;;;;;;;3058:30:44;;;;;;-1:-1:-1;3058:30:44;;;904:6459:59;;;;;;;;;4675:120:93;904:6459:59;;;811:66:130;904:6459:59;;4753:42:93;;4675:120;;;904:6459:59;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3775:22;;;:::i;:::-;3774:23;3770:67;;904:6459;;;3983:54;904:6459;;;;;;3983:54;;;;904:6459;;3983:54;;;;;;4019:10;3983:54;;;904:6459;;;;;;;;;;;;;;;;;;;;;;;;;;;3983:54;;904:6459;3983:54;;;;;;:::i;:::-;3971:67;;;;;;;;:::i;:::-;;4052:8;4048:91;;4019:10;904:6459;;;;;8382:50:173;904:6459:59;;;;;;8382:50:173;;;:::i;:::-;;4019:10:59;4259:33;;904:6459;4259:33;;904:6459;4048:91;904:6459;;;4069:70;;;904:6459;;4069:70;;904:6459;;;;;;;;;;;;;;;;4069:70;3770:67;904:6459;3806:31;;904:6459;3806:31;904:6459;;;;;3806:31;904:6459;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;904:6459:59;;;;;-1:-1:-1;904:6459:59;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;904:6459:59;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;7213:148::-;904:6459;;7299:20;;;:54;;;;7291:63;7213:148;:::o;7299:54::-;904:6459;;;;7323:30;904:6459;7323:30;;;;;904:6459;;7323:12;:30;:12;904:6459;7323:12;904:6459;7323:30;;;;;;;7317:1;7323:30;;;7299:54;7213:148;:::o;7323:30::-;;;904:6459;7323:30;;904:6459;7323:30;;;;;;904:6459;7323:30;;;:::i;:::-;;;904:6459;;;;;;;:::i;:::-;7213:148;:::o;7323:30::-;;;-1:-1:-1;7323:30:59;;4964:220:90;904:6459:59;;5147:30:90;4964:220;904:6459:59;;;1782:71:90;904:6459:59;;;1782:71:90;904:6459:59;;;;;;5147:30:90;4964:220::o;904:6459:59:-;;;;;;;;-1:-1:-1;904:6459:59;;-1:-1:-1;904:6459:59;;;-1:-1:-1;904:6459:59;:::o;2241:406:173:-;-1:-1:-1;904:6459:59;;;4360:14:173;;;904:6459:59;;;;;;2325:21:173;;904:6459:59;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2520:14:173;904:6459:59;;;;;;;2576:11:173;:::o;2320:321::-;2618:12;;904:6459:59;2618:12:173;:::o;2815:1368::-;;3010:14;;;904:6459:59;;;;;;;;;;;3046:13:173;;;3042:1135;3046:13;;;904:6459:59;;;;;;;;;;;;;;;;;;;3521:23:173;;;3517:378;;3042:1135;904:6459:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3010:14:173;4112:11;:::o;904:6459:59:-;;;;;;;;;;3517:378:173;904:6459:59;3584:22:173;3705:23;3584:22;;;:::i;:::-;904:6459:59;;;;;;3705:23:173;;;;;:::i;904:6459:59:-;;;;;;;;;;;;3517:378:173;;;;;904:6459:59;;;;;;;;;;3042:1135:173;4154:12;;;;904:6459:59;4154:12:173;:::o;7084:141:92:-;904:6459:59;8837:64:92;904:6459:59;;;;7150:18:92;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:92;;-1:-1:-1;7191:17:92;4421:582:151;;4593:8;;-1:-1:-1;904:6459:59;;5674:21:151;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;904:6459:59;;4841:22:151;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;904:6459:59;4917:24:151;;4862:1;4917:24;904:6459:59;4917:24:151;904:6459:59;;4862:1:151;4917:24;4841:49;4867:18;;;:23;4841:49;", - "linkReferences": {}, - "immutableReferences": { - "50482": [ - { "start": 2219, "length": 32 }, - { "start": 2476, "length": 32 } - ], - "5931": [ - { "start": 1505, "length": 32 }, - { "start": 4518, "length": 32 } - ] - } - }, - "methodIdentifiers": { - "POLICY_AUDIT()": "82e2b7c8", - "UPGRADE_INTERFACE_VERSION()": "ad3cb1cc", - "authority()": "bf7e214f", - "authorizePolicy(address,bytes)": "2f6cc102", - "getAuthorizedPolicies(address)": "591b43c5", - "initialize(address)": "c4d66de8", - "isConsumingScheduledOp()": "8fb36037", - "isPolicyAuthorized(address,address)": "ca89d8b2", - "proxiableUUID()": "52d1902d", - "revokePolicy(address)": "9fda230a", - "setAuthority(address)": "7a9e5e4b", - "upgradeToAndCall(address,bytes)": "4f1ef286" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policyAudit\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"InvalidNotAuditedPolicy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"RightsGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"RightsRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"POLICY_AUDIT\",\"outputs\":[{\"internalType\":\"contract IPolicyAuditorVerifiable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"authorizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAuthorizedPolicies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isPolicyAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"revokePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidNotAuditedPolicy(address)\":[{\"details\":\"Error thrown when a policy has not been audited or approved for operation.\",\"params\":{\"policy\":\"The address of the unaudited policy.\"}}],\"InvalidPolicyInitialization(string)\":[{\"details\":\"Error thrown when there is an issue with the policy setup.\",\"params\":{\"reason\":\"A string explaining the reason for the invalid policy setup.\"}}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RightsGranted(address,address)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address granted rights.\"}},\"RightsRevoked(address,address)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address whose rights are being revoked.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"authorizePolicy(address,bytes)\":{\"params\":{\"data\":\"The data to initialize policy.\",\"policy\":\"The address of the policy contract to be initialized and authorized.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAuthorizedPolicies(address)\":{\"details\":\"This function returns an array of policy addresses that have been granted rights by the holder.\",\"params\":{\"holder\":\"The address of the asset rights holder whose authorized policies are being queried.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"isPolicyAuthorized(address,address)\":{\"details\":\"Verify if the specified policy contract has been delegated the rights by the asset holder.\",\"params\":{\"holder\":\"the asset rights holder to check for delegation.\",\"policy\":\"The address of the policy contract to check for delegation.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"revokePolicy(address)\":{\"params\":{\"policy\":\"The address of the policy contract whose rights delegation is being revoked.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"POLICY_AUDIT\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"_authorizedPolicies\":{\"details\":\"Mapping to store the delegated rights for each policy contract (address)\"}},\"version\":1},\"userdoc\":{\"events\":{\"RightsGranted(address,address)\":{\"notice\":\"Emitted when rights are granted to a policy for content.\"},\"RightsRevoked(address,address)\":{\"notice\":\"Emitted when rights are revoked from a policy for content.\"}},\"kind\":\"user\",\"methods\":{\"authorizePolicy(address,bytes)\":{\"notice\":\"Initializes and authorizes a policy contract for content held by the holder.\"},\"getAuthorizedPolicies(address)\":{\"notice\":\"Retrieves all policies authorized by a specific content holder.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"revokePolicy(address)\":{\"notice\":\"Revokes the delegation of rights to a policy contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/rights/RightsPolicyAuthorizer.sol\":\"RightsPolicyAuthorizer\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xde948687c6e43423f1406a2e7f7f17b5f373e445b4612872b2a087949a71dbb4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5da4404cdf33625a3bbf8ab58d9acf0bfd80b78c53658f3bfb365a9c568e836\",\"dweb:/ipfs/QmaKqfhCLzBHoyg3GhUCQcEZo89arwe3YEgoysCWJUPWqv\"]},\"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol\":{\"keccak256\":\"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9\",\"dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4\"]},\"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130\",\"dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4\"]},\"contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]},\"contracts/rights/RightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7085af875aabb7e28420dceb6e73101b66642712e03b4319cc9de389b3ccf27f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c0d12e58e6e284ee12c61eab7e9f245d263b9fd9593575d938b54dc36c4e02d\",\"dweb:/ipfs/QmZyJgKPpDfns4TziFziFnmmUVDRy5gkUXE4kNDayuCbeb\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}", - "metadata": { - "compiler": { "version": "0.8.26+commit.8a97fa7a" }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [{ "internalType": "address", "name": "policyAudit", "type": "address" }], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [{ "internalType": "address", "name": "authority", "type": "address" }], - "type": "error", - "name": "AccessManagedInvalidAuthority" - }, - { - "inputs": [ - { "internalType": "address", "name": "caller", "type": "address" }, - { "internalType": "uint32", "name": "delay", "type": "uint32" } - ], - "type": "error", - "name": "AccessManagedRequiredDelay" - }, - { - "inputs": [{ "internalType": "address", "name": "caller", "type": "address" }], - "type": "error", - "name": "AccessManagedUnauthorized" - }, - { - "inputs": [{ "internalType": "address", "name": "target", "type": "address" }], - "type": "error", - "name": "AddressEmptyCode" - }, - { - "inputs": [{ "internalType": "address", "name": "implementation", "type": "address" }], - "type": "error", - "name": "ERC1967InvalidImplementation" - }, - { "inputs": [], "type": "error", "name": "ERC1967NonPayable" }, - { "inputs": [], "type": "error", "name": "FailedCall" }, - { "inputs": [], "type": "error", "name": "InvalidInitialization" }, - { - "inputs": [{ "internalType": "address", "name": "policy", "type": "address" }], - "type": "error", - "name": "InvalidNotAuditedPolicy" - }, - { - "inputs": [{ "internalType": "string", "name": "reason", "type": "string" }], - "type": "error", - "name": "InvalidPolicyInitialization" - }, - { - "inputs": [{ "internalType": "string", "name": "", "type": "string" }], - "type": "error", - "name": "InvalidUnauthorizedOperation" - }, - { "inputs": [], "type": "error", "name": "NotInitializing" }, - { "inputs": [], "type": "error", "name": "UUPSUnauthorizedCallContext" }, - { - "inputs": [{ "internalType": "bytes32", "name": "slot", "type": "bytes32" }], - "type": "error", - "name": "UUPSUnsupportedProxiableUUID" - }, - { - "inputs": [ - { "internalType": "address", "name": "authority", "type": "address", "indexed": false } - ], - "type": "event", - "name": "AuthorityUpdated", - "anonymous": false - }, - { - "inputs": [ - { "internalType": "uint64", "name": "version", "type": "uint64", "indexed": false } - ], - "type": "event", - "name": "Initialized", - "anonymous": false - }, - { - "inputs": [ - { "internalType": "address", "name": "policy", "type": "address", "indexed": true }, - { "internalType": "address", "name": "holder", "type": "address", "indexed": true } - ], - "type": "event", - "name": "RightsGranted", - "anonymous": false - }, - { - "inputs": [ - { "internalType": "address", "name": "policy", "type": "address", "indexed": true }, - { "internalType": "address", "name": "holder", "type": "address", "indexed": true } - ], - "type": "event", - "name": "RightsRevoked", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address", - "indexed": true - } - ], - "type": "event", - "name": "Upgraded", - "anonymous": false - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "POLICY_AUDIT", - "outputs": [ - { "internalType": "contract IPolicyAuditorVerifiable", "name": "", "type": "address" } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "UPGRADE_INTERFACE_VERSION", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "authority", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "policy", "type": "address" }, - { "internalType": "bytes", "name": "data", "type": "bytes" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "authorizePolicy" - }, - { - "inputs": [{ "internalType": "address", "name": "holder", "type": "address" }], - "stateMutability": "view", - "type": "function", - "name": "getAuthorizedPolicies", - "outputs": [{ "internalType": "address[]", "name": "", "type": "address[]" }] - }, - { - "inputs": [{ "internalType": "address", "name": "accessManager", "type": "address" }], - "stateMutability": "nonpayable", - "type": "function", - "name": "initialize" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "isConsumingScheduledOp", - "outputs": [{ "internalType": "bytes4", "name": "", "type": "bytes4" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "policy", "type": "address" }, - { "internalType": "address", "name": "holder", "type": "address" } - ], - "stateMutability": "view", - "type": "function", - "name": "isPolicyAuthorized", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "proxiableUUID", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] - }, - { - "inputs": [{ "internalType": "address", "name": "policy", "type": "address" }], - "stateMutability": "nonpayable", - "type": "function", - "name": "revokePolicy" - }, - { - "inputs": [{ "internalType": "address", "name": "newAuthority", "type": "address" }], - "stateMutability": "nonpayable", - "type": "function", - "name": "setAuthority" - }, - { - "inputs": [ - { "internalType": "address", "name": "newImplementation", "type": "address" }, - { "internalType": "bytes", "name": "data", "type": "bytes" } - ], - "stateMutability": "payable", - "type": "function", - "name": "upgradeToAndCall" - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "authority()": { "details": "Returns the current authority." }, - "authorizePolicy(address,bytes)": { - "params": { - "data": "The data to initialize policy.", - "policy": "The address of the policy contract to be initialized and authorized." - } - }, - "constructor": { "custom:oz-upgrades-unsafe-allow": "constructor" }, - "getAuthorizedPolicies(address)": { - "details": "This function returns an array of policy addresses that have been granted rights by the holder.", - "params": { - "holder": "The address of the asset rights holder whose authorized policies are being queried." - } - }, - "isConsumingScheduledOp()": { - "details": "Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls." - }, - "isPolicyAuthorized(address,address)": { - "details": "Verify if the specified policy contract has been delegated the rights by the asset holder.", - "params": { - "holder": "the asset rights holder to check for delegation.", - "policy": "The address of the policy contract to check for delegation." - } - }, - "proxiableUUID()": { - "details": "Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier." - }, - "revokePolicy(address)": { - "params": { - "policy": "The address of the policy contract whose rights delegation is being revoked." - } - }, - "setAuthority(address)": { - "details": "Transfers control to a new authority. The caller must be the current authority." - }, - "upgradeToAndCall(address,bytes)": { - "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall", - "details": "Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event." - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "authorizePolicy(address,bytes)": { - "notice": "Initializes and authorizes a policy contract for content held by the holder." - }, - "getAuthorizedPolicies(address)": { - "notice": "Retrieves all policies authorized by a specific content holder." - }, - "initialize(address)": { "notice": "Initializes the proxy state." }, - "revokePolicy(address)": { - "notice": "Revokes the delegation of rights to a policy contract." - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - "@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/", - "@ethsign/=node_modules/@ethsign/", - "@openzeppelin/=node_modules/@openzeppelin/", - "@synaps3/=contracts/", - "ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/", - "forge-std/=lib/forge-std/src/", - "hardhat/=node_modules/hardhat/", - "openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/", - "solady/=lib/solady/src/", - "solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/" - ], - "optimizer": { "enabled": true, "runs": 20000 }, - "metadata": { "bytecodeHash": "ipfs" }, - "compilationTarget": { - "contracts/rights/RightsPolicyAuthorizer.sol": "RightsPolicyAuthorizer" - }, - "evmVersion": "cancun", - "libraries": {}, - "viaIR": true - }, - "sources": { - "contracts/core/interfaces/access/IAccessManager.sol": { - "keccak256": "0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f", - "urls": [ - "bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e", - "dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ" - ], - "license": "MIT" - }, - "contracts/core/interfaces/policies/IPolicy.sol": { - "keccak256": "0xde948687c6e43423f1406a2e7f7f17b5f373e445b4612872b2a087949a71dbb4", - "urls": [ - "bzz-raw://e5da4404cdf33625a3bbf8ab58d9acf0bfd80b78c53658f3bfb365a9c568e836", - "dweb:/ipfs/QmaKqfhCLzBHoyg3GhUCQcEZo89arwe3YEgoysCWJUPWqv" - ], - "license": "MIT" - }, - "contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol": { - "keccak256": "0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa", - "urls": [ - "bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9", - "dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4" - ], - "license": "MIT" - }, - "contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol": { - "keccak256": "0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419", - "urls": [ - "bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130", - "dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4" - ], - "license": "MIT" - }, - "contracts/core/libraries/LoopOps.sol": { - "keccak256": "0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411", - "urls": [ - "bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2", - "dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL" - ], - "license": "MIT" - }, - "contracts/core/primitives/Constants.sol": { - "keccak256": "0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e", - "urls": [ - "bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1", - "dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3" - ], - "license": "MIT" - }, - "contracts/core/primitives/Types.sol": { - "keccak256": "0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1", - "urls": [ - "bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf", - "dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe" - ], - "license": "MIT" - }, - "contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol": { - "keccak256": "0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df", - "urls": [ - "bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2", - "dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj" - ], - "license": "MIT" - }, - "contracts/rights/RightsPolicyAuthorizer.sol": { - "keccak256": "0x7085af875aabb7e28420dceb6e73101b66642712e03b4319cc9de389b3ccf27f", - "urls": [ - "bzz-raw://0c0d12e58e6e284ee12c61eab7e9f245d263b9fd9593575d938b54dc36c4e02d", - "dweb:/ipfs/QmZyJgKPpDfns4TziFziFnmmUVDRy5gkUXE4kNDayuCbeb" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol": { - "keccak256": "0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373", - "urls": [ - "bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447", - "dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { - "keccak256": "0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b", - "urls": [ - "bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609", - "dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol": { - "keccak256": "0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27", - "urls": [ - "bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e", - "dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { - "keccak256": "0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397", - "urls": [ - "bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9", - "dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol": { - "keccak256": "0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4", - "urls": [ - "bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e", - "dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol": { - "keccak256": "0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6", - "urls": [ - "bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694", - "dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol": { - "keccak256": "0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2", - "urls": [ - "bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4", - "dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol": { - "keccak256": "0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030", - "urls": [ - "bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c", - "dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol": { - "keccak256": "0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486", - "urls": [ - "bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d", - "dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol": { - "keccak256": "0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d", - "urls": [ - "bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196", - "dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol": { - "keccak256": "0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06", - "urls": [ - "bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c", - "dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol": { - "keccak256": "0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c", - "urls": [ - "bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa", - "dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Address.sol": { - "keccak256": "0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5", - "urls": [ - "bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23", - "dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Errors.sol": { - "keccak256": "0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123", - "urls": [ - "bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf", - "dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/Panic.sol": { - "keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a", - "urls": [ - "bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a", - "dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol": { - "keccak256": "0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97", - "urls": [ - "bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b", - "dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/math/Math.sol": { - "keccak256": "0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea", - "urls": [ - "bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d", - "dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol": { - "keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54", - "urls": [ - "bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8", - "dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol": { - "keccak256": "0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212", - "urls": [ - "bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f", - "dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/types/Time.sol": { - "keccak256": "0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc", - "urls": [ - "bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6", - "dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "storageLayout": { - "storage": [ - { - "astId": 5937, - "contract": "contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer", - "label": "_authorizedPolicies", - "offset": 0, - "slot": "0", - "type": "t_mapping(t_address,t_struct(AddressSet)69868_storage)" - } - ], - "types": { - "t_address": { "encoding": "inplace", "label": "address", "numberOfBytes": "20" }, - "t_array(t_bytes32)dyn_storage": { - "encoding": "dynamic_array", - "label": "bytes32[]", - "numberOfBytes": "32", - "base": "t_bytes32" - }, - "t_bytes32": { "encoding": "inplace", "label": "bytes32", "numberOfBytes": "32" }, - "t_mapping(t_address,t_struct(AddressSet)69868_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct EnumerableSet.AddressSet)", - "numberOfBytes": "32", - "value": "t_struct(AddressSet)69868_storage" - }, - "t_mapping(t_bytes32,t_uint256)": { - "encoding": "mapping", - "key": "t_bytes32", - "label": "mapping(bytes32 => uint256)", - "numberOfBytes": "32", - "value": "t_uint256" - }, - "t_struct(AddressSet)69868_storage": { - "encoding": "inplace", - "label": "struct EnumerableSet.AddressSet", - "numberOfBytes": "64", - "members": [ - { - "astId": 69867, - "contract": "contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer", - "label": "_inner", - "offset": 0, - "slot": "0", - "type": "t_struct(Set)69553_storage" - } - ] - }, - "t_struct(Set)69553_storage": { - "encoding": "inplace", - "label": "struct EnumerableSet.Set", - "numberOfBytes": "64", - "members": [ - { - "astId": 69548, - "contract": "contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer", - "label": "_values", - "offset": 0, - "slot": "0", - "type": "t_array(t_bytes32)dyn_storage" - }, - { - "astId": 69552, - "contract": "contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer", - "label": "_positions", - "offset": 0, - "slot": "1", - "type": "t_mapping(t_bytes32,t_uint256)" - } - ] - }, - "t_uint256": { "encoding": "inplace", "label": "uint256", "numberOfBytes": "32" } - } - }, - "ast": { - "absolutePath": "contracts/rights/RightsPolicyAuthorizer.sol", - "id": 6203, - "exportedSymbols": { - "AccessControlledUpgradeable": [2660], - "EnumerableSet": [70155], - "IPolicy": [1353], - "IPolicyAuditorVerifiable": [1399], - "IRightsPolicyAuthorizer": [1482], - "Initializable": [50462], - "LoopOps": [2051], - "RightsPolicyAuthorizer": [6202], - "UUPSUpgradeable": [50644] - }, - "nodeType": "SourceUnit", - "src": "124:7240:59", - "nodes": [ - { - "id": 5896, - "nodeType": "PragmaDirective", - "src": "124:23:59", - "nodes": [], - "literals": ["solidity", "0.8", ".26"] - }, - { - "id": 5898, - "nodeType": "ImportDirective", - "src": "149:98:59", - "nodes": [], - "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "nameLocation": "-1:-1:-1", - "scope": 6203, - "sourceUnit": 50463, - "symbolAliases": [ - { - "foreign": { - "id": 5897, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50462, - "src": "158:13:59", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 5900, - "nodeType": "ImportDirective", - "src": "248:88:59", - "nodes": [], - "absolutePath": "node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol", - "file": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", - "nameLocation": "-1:-1:-1", - "scope": 6203, - "sourceUnit": 70156, - "symbolAliases": [ - { - "foreign": { - "id": 5899, - "name": "EnumerableSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 70155, - "src": "257:13:59", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 5902, - "nodeType": "ImportDirective", - "src": "337:102:59", - "nodes": [], - "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 6203, - "sourceUnit": 50645, - "symbolAliases": [ - { - "foreign": { - "id": 5901, - "name": "UUPSUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50644, - "src": "346:15:59", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 5904, - "nodeType": "ImportDirective", - "src": "440:115:59", - "nodes": [], - "absolutePath": "contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol", - "file": "@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 6203, - "sourceUnit": 2661, - "symbolAliases": [ - { - "foreign": { - "id": 5903, - "name": "AccessControlledUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2660, - "src": "449:27:59", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 5906, - "nodeType": "ImportDirective", - "src": "557:72:59", - "nodes": [], - "absolutePath": "contracts/core/interfaces/policies/IPolicy.sol", - "file": "@synaps3/core/interfaces/policies/IPolicy.sol", - "nameLocation": "-1:-1:-1", - "scope": 6203, - "sourceUnit": 1354, - "symbolAliases": [ - { - "foreign": { - "id": 5905, - "name": "IPolicy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1353, - "src": "566:7:59", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 5908, - "nodeType": "ImportDirective", - "src": "630:102:59", - "nodes": [], - "absolutePath": "contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol", - "file": "@synaps3/core/interfaces/rights/IRightsPolicyAuthorizer.sol", - "nameLocation": "-1:-1:-1", - "scope": 6203, - "sourceUnit": 1483, - "symbolAliases": [ - { - "foreign": { - "id": 5907, - "name": "IRightsPolicyAuthorizer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1482, - "src": "639:23:59", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 5910, - "nodeType": "ImportDirective", - "src": "733:106:59", - "nodes": [], - "absolutePath": "contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol", - "file": "@synaps3/core/interfaces/policies/IPolicyAuditorVerifiable.sol", - "nameLocation": "-1:-1:-1", - "scope": 6203, - "sourceUnit": 1400, - "symbolAliases": [ - { - "foreign": { - "id": 5909, - "name": "IPolicyAuditorVerifiable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1399, - "src": "742:24:59", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 5912, - "nodeType": "ImportDirective", - "src": "840:62:59", - "nodes": [], - "absolutePath": "contracts/core/libraries/LoopOps.sol", - "file": "@synaps3/core/libraries/LoopOps.sol", - "nameLocation": "-1:-1:-1", - "scope": 6203, - "sourceUnit": 2052, - "symbolAliases": [ - { - "foreign": { - "id": 5911, - "name": "LoopOps", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2051, - "src": "849:7:59", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 6202, - "nodeType": "ContractDefinition", - "src": "904:6459:59", - "nodes": [ - { - "id": 5923, - "nodeType": "UsingForDirective", - "src": "1046:26:59", - "nodes": [], - "global": false, - "libraryName": { - "id": 5921, - "name": "LoopOps", - "nameLocations": ["1052:7:59"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2051, - "src": "1052:7:59" - }, - "typeName": { - "id": 5922, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1064:7:59", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - }, - { - "id": 5927, - "nodeType": "UsingForDirective", - "src": "1077:49:59", - "nodes": [], - "global": false, - "libraryName": { - "id": 5924, - "name": "EnumerableSet", - "nameLocations": ["1083:13:59"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 70155, - "src": "1083:13:59" - }, - "typeName": { - "id": 5926, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5925, - "name": "EnumerableSet.AddressSet", - "nameLocations": ["1101:13:59", "1115:10:59"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 69868, - "src": "1101:24:59" - }, - "referencedDeclaration": 69868, - "src": "1101:24:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$69868_storage_ptr", - "typeString": "struct EnumerableSet.AddressSet" - } - } - }, - { - "id": 5931, - "nodeType": "VariableDeclaration", - "src": "1521:54:59", - "nodes": [], - "constant": false, - "documentation": { - "id": 5928, - "nodeType": "StructuredDocumentation", - "src": "1455:61:59", - "text": "@custom:oz-upgrades-unsafe-allow state-variable-immutable" - }, - "functionSelector": "82e2b7c8", - "mutability": "immutable", - "name": "POLICY_AUDIT", - "nameLocation": "1563:12:59", - "scope": 6202, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPolicyAuditorVerifiable_$1399", - "typeString": "contract IPolicyAuditorVerifiable" - }, - "typeName": { - "id": 5930, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5929, - "name": "IPolicyAuditorVerifiable", - "nameLocations": ["1521:24:59"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1399, - "src": "1521:24:59" - }, - "referencedDeclaration": 1399, - "src": "1521:24:59", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPolicyAuditorVerifiable_$1399", - "typeString": "contract IPolicyAuditorVerifiable" - } - }, - "visibility": "public" - }, - { - "id": 5937, - "nodeType": "VariableDeclaration", - "src": "1668:72:59", - "nodes": [], - "constant": false, - "documentation": { - "id": 5932, - "nodeType": "StructuredDocumentation", - "src": "1582:81:59", - "text": "@dev Mapping to store the delegated rights for each policy contract (address)" - }, - "mutability": "mutable", - "name": "_authorizedPolicies", - "nameLocation": "1721:19:59", - "scope": 6202, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$", - "typeString": "mapping(address => struct EnumerableSet.AddressSet)" - }, - "typeName": { - "id": 5936, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 5933, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1676:7:59", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "nodeType": "Mapping", - "src": "1668:44:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$", - "typeString": "mapping(address => struct EnumerableSet.AddressSet)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 5935, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5934, - "name": "EnumerableSet.AddressSet", - "nameLocations": ["1687:13:59", "1701:10:59"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 69868, - "src": "1687:24:59" - }, - "referencedDeclaration": 69868, - "src": "1687:24:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$69868_storage_ptr", - "typeString": "struct EnumerableSet.AddressSet" - } - } - }, - "visibility": "private" - }, - { - "id": 5944, - "nodeType": "EventDefinition", - "src": "1947:68:59", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 5938, - "nodeType": "StructuredDocumentation", - "src": "1746:196:59", - "text": "@notice Emitted when rights are granted to a policy for content.\n @param policy The policy contract address granted rights.\n @param holder The address of the asset rights holder." - }, - "eventSelector": "164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d79", - "name": "RightsGranted", - "nameLocation": "1953:13:59", - "parameters": { - "id": 5943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5940, - "indexed": true, - "mutability": "mutable", - "name": "policy", - "nameLocation": "1983:6:59", - "nodeType": "VariableDeclaration", - "scope": 5944, - "src": "1967:22:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5939, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1967:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5942, - "indexed": true, - "mutability": "mutable", - "name": "holder", - "nameLocation": "2007:6:59", - "nodeType": "VariableDeclaration", - "scope": 5944, - "src": "1991:22:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5941, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1991:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "1966:48:59" - } - }, - { - "id": 5951, - "nodeType": "EventDefinition", - "src": "2239:68:59", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 5945, - "nodeType": "StructuredDocumentation", - "src": "2020:214:59", - "text": "@notice Emitted when rights are revoked from a policy for content.\n @param policy The policy contract address whose rights are being revoked.\n @param holder The address of the asset rights holder." - }, - "eventSelector": "e26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e", - "name": "RightsRevoked", - "nameLocation": "2245:13:59", - "parameters": { - "id": 5950, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5947, - "indexed": true, - "mutability": "mutable", - "name": "policy", - "nameLocation": "2275:6:59", - "nodeType": "VariableDeclaration", - "scope": 5951, - "src": "2259:22:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5946, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2259:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5949, - "indexed": true, - "mutability": "mutable", - "name": "holder", - "nameLocation": "2299:6:59", - "nodeType": "VariableDeclaration", - "scope": 5951, - "src": "2283:22:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5948, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2283:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "2258:48:59" - } - }, - { - "id": 5956, - "nodeType": "ErrorDefinition", - "src": "2460:46:59", - "nodes": [], - "documentation": { - "id": 5952, - "nodeType": "StructuredDocumentation", - "src": "2313:142:59", - "text": "@dev Error thrown when a policy has not been audited or approved for operation.\n @param policy The address of the unaudited policy." - }, - "errorSelector": "e63549fa", - "name": "InvalidNotAuditedPolicy", - "nameLocation": "2466:23:59", - "parameters": { - "id": 5955, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5954, - "mutability": "mutable", - "name": "policy", - "nameLocation": "2498:6:59", - "nodeType": "VariableDeclaration", - "scope": 5956, - "src": "2490:14:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2490:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "2489:16:59" - } - }, - { - "id": 5961, - "nodeType": "ErrorDefinition", - "src": "2666:49:59", - "nodes": [], - "documentation": { - "id": 5957, - "nodeType": "StructuredDocumentation", - "src": "2511:150:59", - "text": "@dev Error thrown when there is an issue with the policy setup.\n @param reason A string explaining the reason for the invalid policy setup." - }, - "errorSelector": "47fc3bab", - "name": "InvalidPolicyInitialization", - "nameLocation": "2672:27:59", - "parameters": { - "id": 5960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5959, - "mutability": "mutable", - "name": "reason", - "nameLocation": "2707:6:59", - "nodeType": "VariableDeclaration", - "scope": 5961, - "src": "2700:13:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5958, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2700:6:59", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "2699:15:59" - } - }, - { - "id": 5977, - "nodeType": "FunctionDefinition", - "src": "2774:385:59", - "nodes": [], - "body": { - "id": 5976, - "nodeType": "Block", - "src": "2807:352:59", - "nodes": [], - "statements": [ - { - "documentation": "https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5", - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5967, - "name": "_disableInitializers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50430, - "src": "3007:20:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 5968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3007:22:59", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 5969, - "nodeType": "ExpressionStatement", - "src": "3007:22:59" - }, - { - "expression": { - "id": 5974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5970, - "name": "POLICY_AUDIT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5931, - "src": "3100:12:59", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPolicyAuditorVerifiable_$1399", - "typeString": "contract IPolicyAuditorVerifiable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 5972, - "name": "policyAudit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5964, - "src": "3140:11:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 5971, - "name": "IPolicyAuditorVerifiable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1399, - "src": "3115:24:59", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPolicyAuditorVerifiable_$1399_$", - "typeString": "type(contract IPolicyAuditorVerifiable)" - } - }, - "id": 5973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3115:37:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPolicyAuditorVerifiable_$1399", - "typeString": "contract IPolicyAuditorVerifiable" - } - }, - "src": "3100:52:59", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPolicyAuditorVerifiable_$1399", - "typeString": "contract IPolicyAuditorVerifiable" - } - }, - "id": 5975, - "nodeType": "ExpressionStatement", - "src": "3100:52:59" - } - ] - }, - "documentation": { - "id": 5962, - "nodeType": "StructuredDocumentation", - "src": "2721:48:59", - "text": "@custom:oz-upgrades-unsafe-allow constructor" - }, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 5965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5964, - "mutability": "mutable", - "name": "policyAudit", - "nameLocation": "2794:11:59", - "nodeType": "VariableDeclaration", - "scope": 5977, - "src": "2786:19:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5963, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2786:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "2785:21:59" - }, - "returnParameters": { - "id": 5966, - "nodeType": "ParameterList", - "parameters": [], - "src": "2807:0:59" - }, - "scope": 6202, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 5993, - "nodeType": "FunctionDefinition", - "src": "3210:151:59", - "nodes": [], - "body": { - "id": 5992, - "nodeType": "Block", - "src": "3272:89:59", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5985, - "name": "__UUPSUpgradeable_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50516, - "src": "3282:22:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 5986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3282:24:59", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 5987, - "nodeType": "ExpressionStatement", - "src": "3282:24:59" - }, - { - "expression": { - "arguments": [ - { - "id": 5989, - "name": "accessManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5980, - "src": "3340:13:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], - "id": 5988, - "name": "__AccessControlled_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2595, - "src": "3316:23:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 5990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3316:38:59", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 5991, - "nodeType": "ExpressionStatement", - "src": "3316:38:59" - } - ] - }, - "documentation": { - "id": 5978, - "nodeType": "StructuredDocumentation", - "src": "3165:40:59", - "text": "@notice Initializes the proxy state." - }, - "functionSelector": "c4d66de8", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 5983, - "kind": "modifierInvocation", - "modifierName": { - "id": 5982, - "name": "initializer", - "nameLocations": ["3260:11:59"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50316, - "src": "3260:11:59" - }, - "nodeType": "ModifierInvocation", - "src": "3260:11:59" - } - ], - "name": "initialize", - "nameLocation": "3219:10:59", - "parameters": { - "id": 5981, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5980, - "mutability": "mutable", - "name": "accessManager", - "nameLocation": "3238:13:59", - "nodeType": "VariableDeclaration", - "scope": 5993, - "src": "3230:21:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5979, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3230:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "3229:23:59" - }, - "returnParameters": { - "id": 5984, - "nodeType": "ParameterList", - "parameters": [], - "src": "3272:0:59" - }, - "scope": 6202, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 6047, - "nodeType": "FunctionDefinition", - "src": "3602:697:59", - "nodes": [], - "body": { - "id": 6046, - "nodeType": "Block", - "src": "3673:626:59", - "nodes": [], - "statements": [ - { - "condition": { - "id": 6004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3774:23:59", - "subExpression": { - "arguments": [ - { - "id": 6002, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5996, - "src": "3790:6:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 6001, - "name": "_isValidPolicy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6201, - "src": "3775:14:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 6003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3775:22:59", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 6009, - "nodeType": "IfStatement", - "src": "3770:67:59", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 6006, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5996, - "src": "3830:6:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 6005, - "name": "InvalidNotAuditedPolicy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5956, - "src": "3806:23:59", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 6007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3806:31:59", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_error", "typeString": "error" } - }, - "id": 6008, - "nodeType": "RevertStatement", - "src": "3799:38:59" - } - }, - { - "assignments": [6011, null], - "declarations": [ - { - "constant": false, - "id": 6011, - "mutability": "mutable", - "name": "success", - "nameLocation": "3958:7:59", - "nodeType": "VariableDeclaration", - "scope": 6046, - "src": "3953:12:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "typeName": { - "id": 6010, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3953:4:59", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "visibility": "internal" - }, - null - ], - "id": 6024, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "id": 6016, - "name": "IPolicy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1353, - "src": "3998:7:59", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPolicy_$1353_$", - "typeString": "type(contract IPolicy)" - } - }, - "id": 6017, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4006:10:59", - "memberName": "initialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "3998:18:59", - "typeDescriptions": { - "typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$", - "typeString": "function IPolicy.initialize(address,bytes calldata)" - } - }, - { - "components": [ - { - "expression": { - "id": 6018, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4019:3:59", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4023:6:59", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4019:10:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 6020, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5998, - "src": "4031:4:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "id": 6021, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4018:18:59", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_bytes_calldata_ptr_$", - "typeString": "tuple(address,bytes calldata)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$", - "typeString": "function IPolicy.initialize(address,bytes calldata)" - }, - { - "typeIdentifier": "t_tuple$_t_address_$_t_bytes_calldata_ptr_$", - "typeString": "tuple(address,bytes calldata)" - } - ], - "expression": { - "id": 6014, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3983:3:59", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 6015, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3987:10:59", - "memberName": "encodeCall", - "nodeType": "MemberAccess", - "src": "3983:14:59", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 6022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3983:54:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } - ], - "expression": { - "id": 6012, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5996, - "src": "3971:6:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3978:4:59", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "3971:11:59", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 6023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3971:67:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3952:86:59" - }, - { - "condition": { - "id": 6026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4052:8:59", - "subExpression": { - "id": 6025, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6011, - "src": "4053:7:59", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 6031, - "nodeType": "IfStatement", - "src": "4048:91:59", - "trueBody": { - "errorCall": { - "arguments": [ - { - "hexValue": "4572726f7220647572696e6720706f6c69637920696e697469616c697a6174696f6e2063616c6c", - "id": 6028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:41:59", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f", - "typeString": "literal_string \"Error during policy initialization call\"" - }, - "value": "Error during policy initialization call" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f", - "typeString": "literal_string \"Error during policy initialization call\"" - } - ], - "id": 6027, - "name": "InvalidPolicyInitialization", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5961, - "src": "4069:27:59", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$", - "typeString": "function (string memory) pure returns (error)" - } - }, - "id": 6029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4069:70:59", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_error", "typeString": "error" } - }, - "id": 6030, - "nodeType": "RevertStatement", - "src": "4062:77:59" - } - }, - { - "expression": { - "arguments": [ - { - "id": 6037, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5996, - "src": "4185:6:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], - "expression": { - "baseExpression": { - "id": 6032, - "name": "_authorizedPolicies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5937, - "src": "4149:19:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$", - "typeString": "mapping(address => struct EnumerableSet.AddressSet storage ref)" - } - }, - "id": 6035, - "indexExpression": { - "expression": { - "id": 6033, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4169:3:59", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4173:6:59", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4169:10:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4149:31:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$69868_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 6036, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4181:3:59", - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 69895, - "src": "4149:35:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$69868_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69868_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" - } - }, - "id": 6038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4149:43:59", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 6039, - "nodeType": "ExpressionStatement", - "src": "4149:43:59" - }, - { - "eventCall": { - "arguments": [ - { - "id": 6041, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5996, - "src": "4273:6:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 6042, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4281:3:59", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4285:6:59", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4281:10:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 6040, - "name": "RightsGranted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5944, - "src": "4259:13:59", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 6044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4259:33:59", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 6045, - "nodeType": "EmitStatement", - "src": "4254:38:59" - } - ] - }, - "baseFunctions": [1475], - "documentation": { - "id": 5994, - "nodeType": "StructuredDocumentation", - "src": "3367:230:59", - "text": "@notice Initializes and authorizes a policy contract for content held by the holder.\n @param policy The address of the policy contract to be initialized and authorized.\n @param data The data to initialize policy." - }, - "functionSelector": "2f6cc102", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "authorizePolicy", - "nameLocation": "3611:15:59", - "parameters": { - "id": 5999, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5996, - "mutability": "mutable", - "name": "policy", - "nameLocation": "3635:6:59", - "nodeType": "VariableDeclaration", - "scope": 6047, - "src": "3627:14:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 5995, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3627:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5998, - "mutability": "mutable", - "name": "data", - "nameLocation": "3658:4:59", - "nodeType": "VariableDeclaration", - "scope": 6047, - "src": "3643:19:59", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5997, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3643:5:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3626:37:59" - }, - "returnParameters": { - "id": 6000, - "nodeType": "ParameterList", - "parameters": [], - "src": "3673:0:59" - }, - "scope": 6202, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 6068, - "nodeType": "FunctionDefinition", - "src": "4475:158:59", - "nodes": [], - "body": { - "id": 6067, - "nodeType": "Block", - "src": "4522:111:59", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 6058, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6050, - "src": "4571:6:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], - "expression": { - "baseExpression": { - "id": 6053, - "name": "_authorizedPolicies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5937, - "src": "4532:19:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$", - "typeString": "mapping(address => struct EnumerableSet.AddressSet storage ref)" - } - }, - "id": 6056, - "indexExpression": { - "expression": { - "id": 6054, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4552:3:59", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4556:6:59", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4552:10:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4532:31:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$69868_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 6057, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4564:6:59", - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 69922, - "src": "4532:38:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$69868_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69868_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" - } - }, - "id": 6059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4532:46:59", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 6060, - "nodeType": "ExpressionStatement", - "src": "4532:46:59" - }, - { - "eventCall": { - "arguments": [ - { - "id": 6062, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6050, - "src": "4607:6:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 6063, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4615:3:59", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4619:6:59", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4615:10:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 6061, - "name": "RightsRevoked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5951, - "src": "4593:13:59", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 6065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4593:33:59", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } - }, - "id": 6066, - "nodeType": "EmitStatement", - "src": "4588:38:59" - } - ] - }, - "baseFunctions": [1481], - "documentation": { - "id": 6048, - "nodeType": "StructuredDocumentation", - "src": "4305:165:59", - "text": "@notice Revokes the delegation of rights to a policy contract.\n @param policy The address of the policy contract whose rights delegation is being revoked." - }, - "functionSelector": "9fda230a", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "revokePolicy", - "nameLocation": "4484:12:59", - "parameters": { - "id": 6051, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6050, - "mutability": "mutable", - "name": "policy", - "nameLocation": "4505:6:59", - "nodeType": "VariableDeclaration", - "scope": 6068, - "src": "4497:14:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 6049, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4497:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "4496:16:59" - }, - "returnParameters": { - "id": 6052, - "nodeType": "ParameterList", - "parameters": [], - "src": "4522:0:59" - }, - "scope": 6202, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 6090, - "nodeType": "FunctionDefinition", - "src": "4896:183:59", - "nodes": [], - "body": { - "id": 6089, - "nodeType": "Block", - "src": "4985:94:59", - "nodes": [], - "statements": [ - { - "expression": { - "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 6087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 6082, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6071, - "src": "5039:6:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "expression": { - "baseExpression": { - "id": 6078, - "name": "_authorizedPolicies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5937, - "src": "5002:19:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$", - "typeString": "mapping(address => struct EnumerableSet.AddressSet storage ref)" - } - }, - "id": 6080, - "indexExpression": { - "id": 6079, - "name": "holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6073, - "src": "5022:6:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5002:27:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$69868_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 6081, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5030:8:59", - "memberName": "contains", - "nodeType": "MemberAccess", - "referencedDeclaration": 69949, - "src": "5002:36:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$69868_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69868_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" - } - }, - "id": 6083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5002:44:59", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "arguments": [ - { - "id": 6085, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6071, - "src": "5065:6:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 6084, - "name": "_isValidPolicy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6201, - "src": "5050:14:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 6086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5050:22:59", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "src": "5002:70:59", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "functionReturnParameters": 6077, - "id": 6088, - "nodeType": "Return", - "src": "4995:77:59" - } - ] - }, - "baseFunctions": [1467], - "documentation": { - "id": 6069, - "nodeType": "StructuredDocumentation", - "src": "4639:252:59", - "text": "@dev Verify if the specified policy contract has been delegated the rights by the asset holder.\n @param policy The address of the policy contract to check for delegation.\n @param holder the asset rights holder to check for delegation." - }, - "functionSelector": "ca89d8b2", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPolicyAuthorized", - "nameLocation": "4905:18:59", - "parameters": { - "id": 6074, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6071, - "mutability": "mutable", - "name": "policy", - "nameLocation": "4932:6:59", - "nodeType": "VariableDeclaration", - "scope": 6090, - "src": "4924:14:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 6070, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4924:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6073, - "mutability": "mutable", - "name": "holder", - "nameLocation": "4948:6:59", - "nodeType": "VariableDeclaration", - "scope": 6090, - "src": "4940:14:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 6072, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4940:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "4923:32:59" - }, - "returnParameters": { - "id": 6077, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6076, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6090, - "src": "4979:4:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "typeName": { - "id": 6075, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4979:4:59", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "visibility": "internal" - } - ], - "src": "4978:6:59" - }, - "scope": 6202, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 6169, - "nodeType": "FunctionDefinition", - "src": "5380:1286:59", - "nodes": [], - "body": { - "id": 6168, - "nodeType": "Block", - "src": "5468:1198:59", - "nodes": [], - "statements": [ - { - "assignments": [6103], - "declarations": [ - { - "constant": false, - "id": 6103, - "mutability": "mutable", - "name": "policies", - "nameLocation": "6106:8:59", - "nodeType": "VariableDeclaration", - "scope": 6168, - "src": "6089:25:59", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 6101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6089:7:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6102, - "nodeType": "ArrayTypeName", - "src": "6089:9:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - } - ], - "id": 6109, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "baseExpression": { - "id": 6104, - "name": "_authorizedPolicies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5937, - "src": "6117:19:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$", - "typeString": "mapping(address => struct EnumerableSet.AddressSet storage ref)" - } - }, - "id": 6106, - "indexExpression": { - "id": 6105, - "name": "holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6093, - "src": "6137:6:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6117:27:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$69868_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 6107, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6145:6:59", - "memberName": "values", - "nodeType": "MemberAccess", - "referencedDeclaration": 70021, - "src": "6117:34:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$69868_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$69868_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)" - } - }, - "id": 6108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6117:36:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6089:64:59" - }, - { - "assignments": [6114], - "declarations": [ - { - "constant": false, - "id": 6114, - "mutability": "mutable", - "name": "filtered", - "nameLocation": "6180:8:59", - "nodeType": "VariableDeclaration", - "scope": 6168, - "src": "6163:25:59", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 6112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6163:7:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6113, - "nodeType": "ArrayTypeName", - "src": "6163:9:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - } - ], - "id": 6121, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 6118, - "name": "policies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6103, - "src": "6205:8:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 6119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6214:6:59", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "6205:15:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], - "id": 6117, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "6191:13:59", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 6115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6195:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6116, - "nodeType": "ArrayTypeName", - "src": "6195:9:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 6120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6191:30:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6163:58:59" - }, - { - "assignments": [6123], - "declarations": [ - { - "constant": false, - "id": 6123, - "mutability": "mutable", - "name": "policiesLen", - "nameLocation": "6239:11:59", - "nodeType": "VariableDeclaration", - "scope": 6168, - "src": "6231:19:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6122, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6231:7:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 6126, - "initialValue": { - "expression": { - "id": 6124, - "name": "policies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6103, - "src": "6253:8:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 6125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6262:6:59", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "6253:15:59", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6231:37:59" - }, - { - "assignments": [6128], - "declarations": [ - { - "constant": false, - "id": 6128, - "mutability": "mutable", - "name": "j", - "nameLocation": "6286:1:59", - "nodeType": "VariableDeclaration", - "scope": 6168, - "src": "6278:9:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6127, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6278:7:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 6130, - "initialValue": { - "hexValue": "30", - "id": 6129, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6290:1:59", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "6278:13:59" - }, - { - "body": { - "id": 6164, - "nodeType": "Block", - "src": "6380:254:59", - "statements": [ - { - "condition": { - "id": 6149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "6398:28:59", - "subExpression": { - "arguments": [ - { - "baseExpression": { - "id": 6145, - "name": "policies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6103, - "src": "6414:8:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 6147, - "indexExpression": { - "id": 6146, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "6423:1:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6414:11:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 6144, - "name": "_isValidPolicy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6201, - "src": "6399:14:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 6148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6399:27:59", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 6151, - "nodeType": "IfStatement", - "src": "6394:42:59", - "trueBody": { "id": 6150, "nodeType": "Continue", "src": "6428:8:59" } - }, - { - "expression": { - "id": 6158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 6152, - "name": "filtered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6114, - "src": "6450:8:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 6154, - "indexExpression": { - "id": 6153, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6128, - "src": "6459:1:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6450:11:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "id": 6155, - "name": "policies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6103, - "src": "6464:8:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 6157, - "indexExpression": { - "id": 6156, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "6473:1:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6464:11:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6450:25:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6159, - "nodeType": "ExpressionStatement", - "src": "6450:25:59" - }, - { - "id": 6163, - "nodeType": "UncheckedBlock", - "src": "6578:46:59", - "statements": [ - { - "expression": { - "id": 6161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "6606:3:59", - "subExpression": { - "id": 6160, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6128, - "src": "6608:1:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6162, - "nodeType": "ExpressionStatement", - "src": "6606:3:59" - } - ] - } - ] - }, - "condition": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6135, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "6341:1:59", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 6136, - "name": "policiesLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6123, - "src": "6345:11:59", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "6341:15:59", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 6165, - "initializationExpression": { - "assignments": [6132], - "declarations": [ - { - "constant": false, - "id": 6132, - "mutability": "mutable", - "name": "i", - "nameLocation": "6334:1:59", - "nodeType": "VariableDeclaration", - "scope": 6165, - "src": "6326:9:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6131, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6326:7:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 6134, - "initialValue": { - "hexValue": "30", - "id": 6133, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6338:1:59", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "6326:13:59" - }, - "isSimpleCounterLoop": false, - "loopExpression": { - "expression": { - "id": 6142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6138, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "6358:1:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 6139, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6132, - "src": "6362:1:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6364:12:59", - "memberName": "uncheckedInc", - "nodeType": "MemberAccess", - "referencedDeclaration": 2050, - "src": "6362:14:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 6141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6362:16:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6358:20:59", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "id": 6143, - "nodeType": "ExpressionStatement", - "src": "6358:20:59" - }, - "nodeType": "ForStatement", - "src": "6321:313:59" - }, - { - "expression": { - "id": 6166, - "name": "filtered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6114, - "src": "6651:8:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 6098, - "id": 6167, - "nodeType": "Return", - "src": "6644:15:59" - } - ] - }, - "baseFunctions": [1457], - "documentation": { - "id": 6091, - "nodeType": "StructuredDocumentation", - "src": "5085:290:59", - "text": "@notice Retrieves all policies authorized by a specific content holder.\n @dev This function returns an array of policy addresses that have been granted rights by the holder.\n @param holder The address of the asset rights holder whose authorized policies are being queried." - }, - "functionSelector": "591b43c5", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAuthorizedPolicies", - "nameLocation": "5389:21:59", - "parameters": { - "id": 6094, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6093, - "mutability": "mutable", - "name": "holder", - "nameLocation": "5419:6:59", - "nodeType": "VariableDeclaration", - "scope": 6169, - "src": "5411:14:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 6092, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5411:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "5410:16:59" - }, - "returnParameters": { - "id": 6098, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6097, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6169, - "src": "5450:16:59", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 6095, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5450:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "id": 6096, - "nodeType": "ArrayTypeName", - "src": "5450:9:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - } - ], - "src": "5449:18:59" - }, - "scope": 6202, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 6179, - "nodeType": "FunctionDefinition", - "src": "6864:84:59", - "nodes": [], - "body": { - "id": 6178, - "nodeType": "Block", - "src": "6946:2:59", - "nodes": [], - "statements": [] - }, - "baseFunctions": [50598], - "documentation": { - "id": 6170, - "nodeType": "StructuredDocumentation", - "src": "6672:187:59", - "text": "@dev Authorizes the upgrade of the contract.\n @notice Only the owner can authorize the upgrade.\n @param newImplementation The address of the new implementation contract." - }, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 6176, - "kind": "modifierInvocation", - "modifierName": { - "id": 6175, - "name": "onlyAdmin", - "nameLocations": ["6936:9:59"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2578, - "src": "6936:9:59" - }, - "nodeType": "ModifierInvocation", - "src": "6936:9:59" - } - ], - "name": "_authorizeUpgrade", - "nameLocation": "6873:17:59", - "overrides": { - "id": 6174, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "6927:8:59" - }, - "parameters": { - "id": 6173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6172, - "mutability": "mutable", - "name": "newImplementation", - "nameLocation": "6899:17:59", - "nodeType": "VariableDeclaration", - "scope": 6179, - "src": "6891:25:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 6171, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6891:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "6890:27:59" - }, - "returnParameters": { - "id": 6177, - "nodeType": "ParameterList", - "parameters": [], - "src": "6946:0:59" - }, - "scope": 6202, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 6201, - "nodeType": "FunctionDefinition", - "src": "7213:148:59", - "nodes": [], - "body": { - "id": 6200, - "nodeType": "Block", - "src": "7281:80:59", - "nodes": [], - "statements": [ - { - "expression": { - "components": [ - { - "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 6197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6187, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6182, - "src": "7299:6:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 6190, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7317:1:59", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6189, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7309:7:59", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 6188, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7309:7:59", - "typeDescriptions": {} - } - }, - "id": 6191, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7309:10:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7299:20:59", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "arguments": [ - { - "id": 6195, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6182, - "src": "7346:6:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "expression": { - "id": 6193, - "name": "POLICY_AUDIT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5931, - "src": "7323:12:59", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPolicyAuditorVerifiable_$1399", - "typeString": "contract IPolicyAuditorVerifiable" - } - }, - "id": 6194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7336:9:59", - "memberName": "isAudited", - "nodeType": "MemberAccess", - "referencedDeclaration": 1398, - "src": "7323:22:59", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 6196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7323:30:59", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "src": "7299:54:59", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - } - ], - "id": 6198, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7298:56:59", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "functionReturnParameters": 6186, - "id": 6199, - "nodeType": "Return", - "src": "7291:63:59" - } - ] - }, - "documentation": { - "id": 6180, - "nodeType": "StructuredDocumentation", - "src": "6954:254:59", - "text": "@notice Verifies whether a given policy is valid.\n @dev The function ensures that the policy address is not the zero address\n and that the policy has been audited.\n @param policy The address of the policy contract to verify." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isValidPolicy", - "nameLocation": "7222:14:59", - "parameters": { - "id": 6183, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6182, - "mutability": "mutable", - "name": "policy", - "nameLocation": "7245:6:59", - "nodeType": "VariableDeclaration", - "scope": 6201, - "src": "7237:14:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 6181, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7237:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "7236:16:59" - }, - "returnParameters": { - "id": 6186, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6185, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6201, - "src": "7275:4:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "typeName": { - "id": 6184, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7275:4:59", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "visibility": "internal" - } - ], - "src": "7274:6:59" - }, - "scope": 6202, - "stateMutability": "view", - "virtual": false, - "visibility": "private" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 5913, - "name": "Initializable", - "nameLocations": ["943:13:59"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50462, - "src": "943:13:59" - }, - "id": 5914, - "nodeType": "InheritanceSpecifier", - "src": "943:13:59" - }, - { - "baseName": { - "id": 5915, - "name": "UUPSUpgradeable", - "nameLocations": ["962:15:59"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50644, - "src": "962:15:59" - }, - "id": 5916, - "nodeType": "InheritanceSpecifier", - "src": "962:15:59" - }, - { - "baseName": { - "id": 5917, - "name": "AccessControlledUpgradeable", - "nameLocations": ["983:27:59"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2660, - "src": "983:27:59" - }, - "id": 5918, - "nodeType": "InheritanceSpecifier", - "src": "983:27:59" - }, - { - "baseName": { - "id": 5919, - "name": "IRightsPolicyAuthorizer", - "nameLocations": ["1016:23:59"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1482, - "src": "1016:23:59" - }, - "id": 5920, - "nodeType": "InheritanceSpecifier", - "src": "1016:23:59" - } - ], - "canonicalName": "RightsPolicyAuthorizer", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [6202, 1482, 2660, 48089, 53586, 52254, 50644, 59214, 50462], - "name": "RightsPolicyAuthorizer", - "nameLocation": "913:22:59", - "scope": 6203, - "usedErrors": [ - 2560, 5956, 5961, 50225, 50228, 50489, 50494, 53557, 53563, 53567, 59409, 59422, 61705, - 61997 - ], - "usedEvents": [5944, 5951, 50233, 53553, 59136] - } - ], - "license": "MIT" - }, - "id": 59 -} +{"abi":[{"type":"constructor","inputs":[{"name":"policyAudit","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"POLICY_AUDIT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPolicyAuditorVerifiable"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"authorizePolicy","inputs":[{"name":"policy","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAuthorizedPolicies","inputs":[{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"isPolicyAuthorized","inputs":[{"name":"policy","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"revokePolicy","inputs":[{"name":"policy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RightsGranted","inputs":[{"name":"policy","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RightsRevoked","inputs":[{"name":"policy","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNotAuditedPolicy","inputs":[{"name":"policy","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidPolicyInitialization","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60c03461014657601f61179e38819003918201601f19168301916001600160401b0383118484101761014a5780849260209460405283398101031261014657516001600160a01b0381169081900361014657306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610137576002600160401b03196001600160401b038216016100ce575b5060a05260405161163f908161015f82396080518181816108b201526109b3015260a0518181816105e801526111dc0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009b565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610da05780634f1ef2861461092a57806352d1902d1461088b578063591b43c5146106e35780637a9e5e4b1461060c57806382e2b7c8146105bc5780638fb36037146105295780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610fd0565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b610126915061116e565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610fd0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c611519565b610214611519565b61021c611519565b610224611519565b61022d81611246565b610235611519565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610ff3565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610fd0565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f2092168092611393565b50604051904282527f18147b94ec466a20610ebd8716adbb2e35876dbfc0f54295dd2fe1d750d7eff060203393a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105b45760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61058a565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c57610625610fd0565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b757803b156106755761067390611246565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff610711610fd0565b165f525f60205260405f20604051808260208294549384815201905f5260205f20925f5b81811061087257505061074a92500382610ff3565b80519061076f61075983611108565b926107676040519485610ff3565b808452611108565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840192013683378051905f805b838210610801578486604051918291602083019060208452518091526040830191905f5b8181106107d2575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff168452859450602093840193909201916001016107c4565b61082a73ffffffffffffffffffffffffffffffffffffffff6108238486611120565b511661116e565b15610869576001809173ffffffffffffffffffffffffffffffffffffffff6108528587611120565b511661085e828a611120565b5201915b01906107a0565b90600190610862565b8454835260019485019486945060209093019201610735565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036109025760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c5761093e610fd0565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061096b82611061565b916109796040519384610ff3565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d5e575b50610902576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610d53575f91610d08575b5015610c845773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c50575b50610aea57847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610c255750823b15610bfa57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610bc8575f8091610673945190845af4610bc26110d9565b91611570565b50505034610bd257005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c7c575b81610c6c60209383610ff3565b8101031261012c57519086610ab9565b3d9150610c5f565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610d4b575b81610d2360409383610ff3565b8101031261012c576020610d3682611161565b91015163ffffffff81160361012c5784610a64565b3d9150610d16565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54161415846109de565b3461012c57604060031936011261012c57610db9610fd0565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359167ffffffffffffffff831161012c576024810190602484369201011161012c57610e068261116e565b15610f8e575f8060405160208101907fd1f5789400000000000000000000000000000000000000000000000000000000825233602482015260406044820152610e8381610e57606482018a8961109b565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ff3565b519082865af1610e916110d9565b5015610f0a57610f057f6ba225fe6c79a8c5ddd429f9aa7654c4dbebe2cc98a02209616ac200ceba5c5691335f525f602052610ee873ffffffffffffffffffffffffffffffffffffffff60405f2095168095611306565b50604051918291428352604060208401523396604084019161109b565b0390a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff827fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761103457604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff811161103457601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b3d15611103573d906110ea82611061565b916110f86040519384610ff3565b82523d5f602084013e565b606090565b67ffffffffffffffff81116110345760051b60200190565b80518210156111345760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff168015159081611191575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610d53575f9161120f575090565b90506020813d60201161123e575b8161122a60209383610ff3565b8101031261012c5761123b90611161565b90565b3d915061121d565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b8054821015611134575f5260205f2001905f90565b5f82815260018201602052604090205461138d578054906801000000000000000082101561103457826113786113438460018096018555846112f1565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f14611511577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116114e4578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116114e4578181036114af575b50505080548015611482577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061144582826112f1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b6114cf6114bf61134393866112f1565b90549060031b1c928392866112f1565b90555f528360205260405f20555f808061140d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561154857565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b906115ad575080511561158557805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611600575b6115be575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b156115b656fea2646970667358221220f04516abb02e23da87e22651b1c0d81363e6708d1c9f66231c67f146ce80129964736f6c634300081a0033","sourceMap":"904:6770:38:-:0;;;;;;;;;;;;;-1:-1:-1;;904:6770:38;;;;-1:-1:-1;;;;;904:6770:38;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;904:6770:38;;;;;;;;1171:4:62;1163:13;;8837:64:61;904:6770:38;;;;;;7896:76:61;;-1:-1:-1;;;;;;;;;;;904:6770:38;;7985:34:61;7981:146;;-1:-1:-1;3371:52:38;;;904:6770;;;;;;;;1163:13:62;904:6770:38;;;;;;;;;;3371:52;904:6770;;;;;;;;;;;7981:146:61;-1:-1:-1;;;;;;904:6770:38;-1:-1:-1;;;;;904:6770:38;;;8837:64:61;904:6770:38;;;;;;8087:29:61;;904:6770:38;;8087:29:61;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:61;;-1:-1:-1;7938:23:61;904:6770:38;-1:-1:-1;904:6770:38;;;;;;-1:-1:-1;904:6770:38;;;;;-1:-1:-1;904:6770:38","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610da05780634f1ef2861461092a57806352d1902d1461088b578063591b43c5146106e35780637a9e5e4b1461060c57806382e2b7c8146105bc5780638fb36037146105295780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610fd0565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b610126915061116e565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610fd0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c611519565b610214611519565b61021c611519565b610224611519565b61022d81611246565b610235611519565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610ff3565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610fd0565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f2092168092611393565b50604051904282527f18147b94ec466a20610ebd8716adbb2e35876dbfc0f54295dd2fe1d750d7eff060203393a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105b45760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61058a565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c57610625610fd0565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b757803b156106755761067390611246565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff610711610fd0565b165f525f60205260405f20604051808260208294549384815201905f5260205f20925f5b81811061087257505061074a92500382610ff3565b80519061076f61075983611108565b926107676040519485610ff3565b808452611108565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840192013683378051905f805b838210610801578486604051918291602083019060208452518091526040830191905f5b8181106107d2575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff168452859450602093840193909201916001016107c4565b61082a73ffffffffffffffffffffffffffffffffffffffff6108238486611120565b511661116e565b15610869576001809173ffffffffffffffffffffffffffffffffffffffff6108528587611120565b511661085e828a611120565b5201915b01906107a0565b90600190610862565b8454835260019485019486945060209093019201610735565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036109025760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c5761093e610fd0565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061096b82611061565b916109796040519384610ff3565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d5e575b50610902576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610d53575f91610d08575b5015610c845773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c50575b50610aea57847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610c255750823b15610bfa57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610bc8575f8091610673945190845af4610bc26110d9565b91611570565b50505034610bd257005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c7c575b81610c6c60209383610ff3565b8101031261012c57519086610ab9565b3d9150610c5f565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610d4b575b81610d2360409383610ff3565b8101031261012c576020610d3682611161565b91015163ffffffff81160361012c5784610a64565b3d9150610d16565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54161415846109de565b3461012c57604060031936011261012c57610db9610fd0565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359167ffffffffffffffff831161012c576024810190602484369201011161012c57610e068261116e565b15610f8e575f8060405160208101907fd1f5789400000000000000000000000000000000000000000000000000000000825233602482015260406044820152610e8381610e57606482018a8961109b565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ff3565b519082865af1610e916110d9565b5015610f0a57610f057f6ba225fe6c79a8c5ddd429f9aa7654c4dbebe2cc98a02209616ac200ceba5c5691335f525f602052610ee873ffffffffffffffffffffffffffffffffffffffff60405f2095168095611306565b50604051918291428352604060208401523396604084019161109b565b0390a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff827fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761103457604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff811161103457601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b3d15611103573d906110ea82611061565b916110f86040519384610ff3565b82523d5f602084013e565b606090565b67ffffffffffffffff81116110345760051b60200190565b80518210156111345760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff168015159081611191575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610d53575f9161120f575090565b90506020813d60201161123e575b8161122a60209383610ff3565b8101031261012c5761123b90611161565b90565b3d915061121d565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b8054821015611134575f5260205f2001905f90565b5f82815260018201602052604090205461138d578054906801000000000000000082101561103457826113786113438460018096018555846112f1565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f14611511577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116114e4578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116114e4578181036114af575b50505080548015611482577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061144582826112f1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b6114cf6114bf61134393866112f1565b90549060031b1c928392866112f1565b90555f528360205260405f20555f808061140d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561154857565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b906115ad575080511561158557805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611600575b6115be575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b156115b656fea2646970667358221220f04516abb02e23da87e22651b1c0d81363e6708d1c9f66231c67f146ce80129964736f6c634300081a0033","sourceMap":"904:6770:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;904:6770:38;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4360:14:106;;904:6770:38;;;;;;4360:26:106;;5313:70:38;;;;904:6770;;;;;;;;;;5313:70;5361:22;;;;:::i;:::-;5313:70;;;904:6770;;;;;;;;;-1:-1:-1;;904:6770:38;;;;;;;:::i;:::-;8837:64:61;904:6770:38;;;;;;4301:16:61;904:6770:38;;;;4726:16:61;;:34;;;;904:6770:38;4805:1:61;4790:16;:50;;;;904:6770:38;4855:13:61;:30;;;;904:6770:38;4851:91:61;;;904:6770:38;;4805:1:61;904:6770:38;;;;;8837:64:61;904:6770:38;4979:67:61;;904:6770:38;6893:76:61;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:60;;;:::i;:::-;6893:76:61;;:::i;:::-;904:6770:38;;3298:62:32;904:6770:38;;;3298:62:32;904:6770:38;5066:101:61;;904:6770:38;5066:101:61;904:6770:38;8837:64:61;904:6770:38;;8837:64:61;904:6770:38;5142:14:61;904:6770:38;;;4805:1:61;904:6770:38;;5142:14:61;904:6770:38;4979:67:61;904:6770:38;;;;8837:64:61;904:6770:38;4979:67:61;;;4851:91;4908:23;904:6770:38;4908:23:61;904:6770:38;;4908:23:61;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:61;;4726:34;;;-1:-1:-1;4726:34:61;;904:6770:38;;;;;-1:-1:-1;;904:6770:38;;;;;;;1782:71:60;904:6770:38;;;;;;;;;;;;;-1:-1:-1;;904:6770:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;904:6770:38;;;;;;;:::i;:::-;4846:10;904:6770;;;;;8703:53:106;904:6770:38;;;;;;8703:53:106;;;:::i;:::-;;904:6770:38;;4921:15;;904:6770;;4887:50;904:6770;4846:10;4887:50;;904:6770;;;;;;-1:-1:-1;;904:6770:38;;;;;1782:71:60;904:6770:38;;;;;4698:71:60;;;904:6770:38;;4698:71:60;904:6770:38;;;;;;;;4698:71:60;904:6770:38;;4698:71:60;;904:6770:38;;;;;-1:-1:-1;;904:6770:38;;;;;;;;;1521:54;904:6770;;;;;;;;;-1:-1:-1;;904:6770:38;;;;;;;:::i;:::-;;1782:71:60;904:6770:38;;966:10:65;4258:21:60;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;904:6770:38;4355:110:60;904:6770:38;4411:43:60;;904:6770:38;4411:43:60;904:6770:38;;;;;4411:43:60;4254:92;4302:33;904:6770:38;4302:33:60;966:10:65;904:6770:38;;;;4302:33:60;904:6770:38;;;;;-1:-1:-1;;904:6770:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;6589:13;904:6770;;6652:15;;;;;;904:6770;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;904:6770:38;;;;;;;;;;;;;6669:20;6710:27;904:6770;6725:11;;;;:::i;:::-;904:6770;;6710:27;:::i;:::-;6709:28;6705:42;;904:6770;6775:11;;904:6770;6775:11;;;;:::i;:::-;904:6770;;6761:25;;;;:::i;:::-;904:6770;;6669:20;6637:13;904:6770;6637:13;;;6705:42;6739:8;904:6770;6739:8;;;904:6770;;;;;;;;;;;;-1:-1:-1;904:6770:38;;;;;;;;;;;;;-1:-1:-1;;904:6770:38;;;;;;5115:6:62;904:6770:38;5106:4:62;5098:23;5094:145;;904:6770:38;;;811:66:80;904:6770:38;;;5094:145:62;5199:29;904:6770:38;5199:29:62;904:6770:38;;5199:29:62;904:6770:38;;-1:-1:-1;;904:6770:38;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:62;904:6770:38;4683:4:62;;4675:23;:120;;;;;904:6770:38;4658:251:62;;;3061:30:32;904:6770:38;;3298:62:32;904:6770:38;;;;3061:30:32;;;;904:6770:38;3061:30:32;;904:6770:38;;3061:30:32;;904:6770:38;1896:10:32;904:6770:38;;;;3061:30:32;;;;;;;904:6770:38;3061:30:32;;;904:6770:38;1872:35:32;;1868:140;;904:6770:38;;;;;;;6156:52:62;;904:6770:38;6156:52:62;904:6770:38;6156:52:62;;;;904:6770:38;;6156:52:62;;;904:6770:38;-1:-1:-1;6152:437:62;;6518:60;;904:6770:38;6518:60:62;904:6770:38;;;;6518:60:62;6152:437;6250:40;811:66:80;6250:40:62;;;6246:120;;1748:29:80;;;:34;1744:119;;904:6770:38;;811:66:80;904:6770:38;;;811:66:80;904:6770:38;2407:36:80;904:6770:38;2407:36:80;;904:6770:38;;2458:15:80;:11;;904:6770:38;4049:25:92;;4091:55;4049:25;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:80:-;6163:9;;;;6159:70;;904:6770:38;6159:70:80;6199:19;904:6770:38;6199:19:80;904:6770:38;;6199:19:80;1744:119;1805:47;904:6770:38;1805:47:80;904:6770:38;;;;1805:47:80;6246:120:62;6317:34;904:6770:38;6317:34:62;904:6770:38;;;;6317:34:62;6156:52;;;;904:6770:38;6156:52:62;;904:6770:38;6156:52:62;;;;;;904:6770:38;6156:52:62;;;:::i;:::-;;;904:6770:38;;;;;6156:52:62;;;;;;;-1:-1:-1;6156:52:62;;1868:140:32;1930:67;904:6770:38;;1930:67:32;;;904:6770:38;;1930:67:32;;520:1:30;904:6770:38;;520:1:30;;904:6770:38;520:1:30;3061:30:32;904:6770:38;;520:1:30;;;;;;1930:67:32;3061:30;;;904:6770:38;3061:30:32;;904:6770:38;3061:30:32;;;;;;904:6770:38;3061:30:32;;;:::i;:::-;;;904:6770:38;;;;;;;;:::i;:::-;;;;;;;;;;3061:30:32;;;;;;-1:-1:-1;3061:30:32;;;904:6770:38;;;;;;;;;4675:120:62;904:6770:38;;;811:66:80;904:6770:38;;4753:42:62;;4675:120;;;904:6770:38;;;;;-1:-1:-1;;904:6770:38;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4046:22;;;:::i;:::-;4045:23;4041:67;;904:6770;;;;;4254:54;;;;;;4290:10;904:6770;4254:54;;904:6770;;;;;;4254:54;904:6770;;;;;;;;:::i;:::-;4254:54;;;;;;;;:::i;:::-;4242:67;;;;;;;;:::i;:::-;;4323:8;4319:91;;904:6770;4530:56;4290:10;;904:6770;;;;;8382:50:106;904:6770:38;;;;;;8382:50:106;;;:::i;:::-;;904:6770:38;;4564:15;;;;904:6770;;;;;;;4290:10;904:6770;;;;;;:::i;:::-;4530:56;;;904:6770;4319:91;4340:70;904:6770;;4340:70;;;904:6770;;4340:70;;904:6770;;;;;;;;;;;;;;;;4340:70;4041:67;904:6770;4077:31;;904:6770;4077:31;904:6770;;;;;4077:31;904:6770;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;904:6770:38;;;;;-1:-1:-1;904:6770:38;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;904:6770:38;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;904:6770:38;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;7524:148::-;904:6770;;7610:20;;;:54;;;;7602:63;7524:148;:::o;7610:54::-;904:6770;;;;7634:30;904:6770;7634:30;;;;;904:6770;;7634:12;:30;:12;904:6770;7634:12;904:6770;7634:30;;;;;;;7628:1;7634:30;;;7610:54;7524:148;:::o;7634:30::-;;;904:6770;7634:30;;904:6770;7634:30;;;;;;904:6770;7634:30;;;:::i;:::-;;;904:6770;;;;;;;:::i;:::-;7524:148;:::o;7634:30::-;;;-1:-1:-1;7634:30:38;;4964:220:60;904:6770:38;;5147:30:60;4964:220;904:6770:38;;;1782:71:60;904:6770:38;;;1782:71:60;904:6770:38;;;;;;5147:30:60;4964:220::o;904:6770:38:-;;;;;;;;-1:-1:-1;904:6770:38;;-1:-1:-1;904:6770:38;;;-1:-1:-1;904:6770:38;:::o;2241:406:106:-;-1:-1:-1;904:6770:38;;;4360:14:106;;;904:6770:38;;;;;;2325:21:106;;904:6770:38;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2520:14:106;904:6770:38;;;;;;;2576:11:106;:::o;2320:321::-;2618:12;;904:6770:38;2618:12:106;:::o;2815:1368::-;;3010:14;;;904:6770:38;;;;;;;;;;;3046:13:106;;;3042:1135;3046:13;;;904:6770:38;;;;;;;;;;;;;;;;;;;3521:23:106;;;3517:378;;3042:1135;904:6770:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3010:14:106;4112:11;:::o;904:6770:38:-;;;;;;;;;;3517:378:106;904:6770:38;3584:22:106;3705:23;3584:22;;;:::i;:::-;904:6770:38;;;;;;3705:23:106;;;;;:::i;904:6770:38:-;;;;;;;;;;;;3517:378:106;;;;;904:6770:38;;;;;;;;;;3042:1135:106;4154:12;;;;904:6770:38;4154:12:106;:::o;7084:141:61:-;904:6770:38;8837:64:61;904:6770:38;;;;7150:18:61;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:61;;-1:-1:-1;7191:17:61;4421:582:92;;4593:8;;-1:-1:-1;904:6770:38;;5674:21:92;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;904:6770:38;;4841:22:92;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;904:6770:38;4917:24:92;;4862:1;4917:24;904:6770:38;4917:24:92;904:6770:38;;4862:1:92;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"3622":[{"start":1512,"length":32},{"start":4572,"length":32}],"40807":[{"start":2226,"length":32},{"start":2483,"length":32}]}},"methodIdentifiers":{"POLICY_AUDIT()":"82e2b7c8","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","authorizePolicy(address,bytes)":"2f6cc102","getAuthorizedPolicies(address)":"591b43c5","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","isPolicyAuthorized(address,address)":"ca89d8b2","proxiableUUID()":"52d1902d","revokePolicy(address)":"9fda230a","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policyAudit\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"InvalidNotAuditedPolicy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"RightsGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"RightsRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"POLICY_AUDIT\",\"outputs\":[{\"internalType\":\"contract IPolicyAuditorVerifiable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"authorizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAuthorizedPolicies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isPolicyAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"revokePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidNotAuditedPolicy(address)\":[{\"details\":\"Error thrown when a policy has not been audited or approved for operation.\",\"params\":{\"policy\":\"The address of the unaudited policy.\"}}],\"InvalidPolicyInitialization(string)\":[{\"details\":\"Error thrown when there is an issue with the policy setup.\",\"params\":{\"reason\":\"A string explaining the reason for the invalid policy setup.\"}}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RightsGranted(address,address,uint256,bytes)\":{\"params\":{\"data\":\"The data used to initialize the policy.\",\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address granted rights.\",\"timestamp\":\"The timestamp indicating when the rights were granted.\"}},\"RightsRevoked(address,address,uint256)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address whose rights are being revoked.\",\"timestamp\":\"The timestamp indicating when the rights were revoked.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"authorizePolicy(address,bytes)\":{\"params\":{\"data\":\"The data to initialize policy.\",\"policy\":\"The address of the policy contract to be initialized and authorized.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAuthorizedPolicies(address)\":{\"details\":\"This function returns an array of policy addresses that have been granted rights by the holder.\",\"params\":{\"holder\":\"The address of the asset rights holder whose authorized policies are being queried.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"isPolicyAuthorized(address,address)\":{\"details\":\"Verify if the specified policy contract has been delegated the rights by the asset holder.\",\"params\":{\"holder\":\"the asset rights holder to check for delegation.\",\"policy\":\"The address of the policy contract to check for delegation.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"revokePolicy(address)\":{\"params\":{\"policy\":\"The address of the policy contract whose rights delegation is being revoked.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"POLICY_AUDIT\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"_authorizedPolicies\":{\"details\":\"Mapping to store the delegated rights for each policy contract (address)\"}},\"version\":1},\"userdoc\":{\"events\":{\"RightsGranted(address,address,uint256,bytes)\":{\"notice\":\"Emitted when rights are granted to a policy for content.\"},\"RightsRevoked(address,address,uint256)\":{\"notice\":\"Emitted when rights are revoked from a policy for content.\"}},\"kind\":\"user\",\"methods\":{\"authorizePolicy(address,bytes)\":{\"notice\":\"Initializes and authorizes a policy contract for content held by the holder.\"},\"getAuthorizedPolicies(address)\":{\"notice\":\"Retrieves all policies authorized by a specific content holder.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"revokePolicy(address)\":{\"notice\":\"Revokes the delegation of rights to a policy contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/rights/RightsPolicyAuthorizer.sol\":\"RightsPolicyAuthorizer\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0x6bb2e4f5f93d957e5fc351e98155c0c038da3a31dd125e22e06f8cca0d0aa332\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0cb7da10029a309b52c9df25d9d59c3e0404faa156716d0805d540d0a3518915\",\"dweb:/ipfs/QmXgxHWuaQXRnBgAPiPA4hkWcHpcwLgg4d672gTkP793fd\"]},\"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol\":{\"keccak256\":\"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9\",\"dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4\"]},\"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130\",\"dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4\"]},\"contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x9c0dbb09ad90b98817849666e45a70c371676cbe187709f76021bfd6f7d0bb57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb5dafd14005606dd486c8ea5aea374160a59224c03b9687a504360f1c5d190a\",\"dweb:/ipfs/QmVvn3SLREtxwehgxkGg1QE1eMw5QRk5R6kG8qyGujbCTf\"]},\"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0x5d99ec9405886a20eeff6ea243c1d94b5994a474338b866d74ffa9bbfa9473f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1de4b84ddb631eee3d1eb0f921f0d0d20be3f6e808b8b2a21082436816884095\",\"dweb:/ipfs/QmaKZ938AabVXewdFBVtV8SFD4eWJq59AsdoV3aBMY7cmB\"]},\"contracts/rights/RightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x5900b8c61b469e7c849401dd5f6e6df1282da123431348cbcad08dd50fb6ede9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59d356e7a693538b23b5bb0daa0fc933a1dd4377320f1d3918b2a163424392fe\",\"dweb:/ipfs/QmNqHW1MoHEhRpH6jCbhfFHUek9xPFPGpDo5c2movaGHTm\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"policyAudit","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"address","name":"policy","type":"address"}],"type":"error","name":"InvalidNotAuditedPolicy"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidPolicyInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"policy","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"RightsGranted","anonymous":false},{"inputs":[{"internalType":"address","name":"policy","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false}],"type":"event","name":"RightsRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"POLICY_AUDIT","outputs":[{"internalType":"contract IPolicyAuditorVerifiable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"authorizePolicy"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getAuthorizedPolicies","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isPolicyAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokePolicy"},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"authorizePolicy(address,bytes)":{"params":{"data":"The data to initialize policy.","policy":"The address of the policy contract to be initialized and authorized."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAuthorizedPolicies(address)":{"details":"This function returns an array of policy addresses that have been granted rights by the holder.","params":{"holder":"The address of the asset rights holder whose authorized policies are being queried."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"isPolicyAuthorized(address,address)":{"details":"Verify if the specified policy contract has been delegated the rights by the asset holder.","params":{"holder":"the asset rights holder to check for delegation.","policy":"The address of the policy contract to check for delegation."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"revokePolicy(address)":{"params":{"policy":"The address of the policy contract whose rights delegation is being revoked."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"authorizePolicy(address,bytes)":{"notice":"Initializes and authorizes a policy contract for content held by the holder."},"getAuthorizedPolicies(address)":{"notice":"Retrieves all policies authorized by a specific content holder."},"initialize(address)":{"notice":"Initializes the proxy state."},"revokePolicy(address)":{"notice":"Revokes the delegation of rights to a policy contract."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/rights/RightsPolicyAuthorizer.sol":"RightsPolicyAuthorizer"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0x6bb2e4f5f93d957e5fc351e98155c0c038da3a31dd125e22e06f8cca0d0aa332","urls":["bzz-raw://0cb7da10029a309b52c9df25d9d59c3e0404faa156716d0805d540d0a3518915","dweb:/ipfs/QmXgxHWuaQXRnBgAPiPA4hkWcHpcwLgg4d672gTkP793fd"],"license":"MIT"},"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol":{"keccak256":"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa","urls":["bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9","dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4"],"license":"MIT"},"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol":{"keccak256":"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419","urls":["bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130","dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4"],"license":"MIT"},"contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"contracts/core/primitives/Types.sol":{"keccak256":"0x9c0dbb09ad90b98817849666e45a70c371676cbe187709f76021bfd6f7d0bb57","urls":["bzz-raw://fb5dafd14005606dd486c8ea5aea374160a59224c03b9687a504360f1c5d190a","dweb:/ipfs/QmVvn3SLREtxwehgxkGg1QE1eMw5QRk5R6kG8qyGujbCTf"],"license":"MIT"},"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0x5d99ec9405886a20eeff6ea243c1d94b5994a474338b866d74ffa9bbfa9473f0","urls":["bzz-raw://1de4b84ddb631eee3d1eb0f921f0d0d20be3f6e808b8b2a21082436816884095","dweb:/ipfs/QmaKZ938AabVXewdFBVtV8SFD4eWJq59AsdoV3aBMY7cmB"],"license":"MIT"},"contracts/rights/RightsPolicyAuthorizer.sol":{"keccak256":"0x5900b8c61b469e7c849401dd5f6e6df1282da123431348cbcad08dd50fb6ede9","urls":["bzz-raw://59d356e7a693538b23b5bb0daa0fc933a1dd4377320f1d3918b2a163424392fe","dweb:/ipfs/QmNqHW1MoHEhRpH6jCbhfFHUek9xPFPGpDo5c2movaGHTm"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":3628,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_authorizedPolicies","offset":0,"slot":"0","type":"t_mapping(t_address,t_struct(AddressSet)50160_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_struct(AddressSet)50160_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct EnumerableSet.AddressSet)","numberOfBytes":"32","value":"t_struct(AddressSet)50160_storage"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(AddressSet)50160_storage":{"encoding":"inplace","label":"struct EnumerableSet.AddressSet","numberOfBytes":"64","members":[{"astId":50159,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_inner","offset":0,"slot":"0","type":"t_struct(Set)49845_storage"}]},"t_struct(Set)49845_storage":{"encoding":"inplace","label":"struct EnumerableSet.Set","numberOfBytes":"64","members":[{"astId":49840,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_values","offset":0,"slot":"0","type":"t_array(t_bytes32)dyn_storage"},{"astId":49844,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_positions","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/rights/RightsPolicyAuthorizer.sol","id":3905,"exportedSymbols":{"AccessControlledUpgradeable":[1943],"EnumerableSet":[50447],"IPolicy":[762],"IPolicyAuditorVerifiable":[774],"IRightsPolicyAuthorizer":[857],"Initializable":[40787],"LoopOps":[1327],"RightsPolicyAuthorizer":[3904],"UUPSUpgradeable":[40969]},"nodeType":"SourceUnit","src":"124:7551:38","nodes":[{"id":3587,"nodeType":"PragmaDirective","src":"124:23:38","nodes":[],"literals":["solidity","0.8",".26"]},{"id":3589,"nodeType":"ImportDirective","src":"149:98:38","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":3905,"sourceUnit":40788,"symbolAliases":[{"foreign":{"id":3588,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40787,"src":"158:13:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3591,"nodeType":"ImportDirective","src":"248:88:38","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":3905,"sourceUnit":50448,"symbolAliases":[{"foreign":{"id":3590,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50447,"src":"257:13:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3593,"nodeType":"ImportDirective","src":"337:102:38","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":3905,"sourceUnit":40970,"symbolAliases":[{"foreign":{"id":3592,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40969,"src":"346:15:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3595,"nodeType":"ImportDirective","src":"440:115:38","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":3905,"sourceUnit":1944,"symbolAliases":[{"foreign":{"id":3594,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"449:27:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3597,"nodeType":"ImportDirective","src":"557:72:38","nodes":[],"absolutePath":"contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":3905,"sourceUnit":763,"symbolAliases":[{"foreign":{"id":3596,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":762,"src":"566:7:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3599,"nodeType":"ImportDirective","src":"630:102:38","nodes":[],"absolutePath":"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyAuthorizer.sol","nameLocation":"-1:-1:-1","scope":3905,"sourceUnit":858,"symbolAliases":[{"foreign":{"id":3598,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":857,"src":"639:23:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3601,"nodeType":"ImportDirective","src":"733:106:38","nodes":[],"absolutePath":"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol","file":"@synaps3/core/interfaces/policies/IPolicyAuditorVerifiable.sol","nameLocation":"-1:-1:-1","scope":3905,"sourceUnit":775,"symbolAliases":[{"foreign":{"id":3600,"name":"IPolicyAuditorVerifiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":774,"src":"742:24:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3603,"nodeType":"ImportDirective","src":"840:62:38","nodes":[],"absolutePath":"contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":3905,"sourceUnit":1328,"symbolAliases":[{"foreign":{"id":3602,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1327,"src":"849:7:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3904,"nodeType":"ContractDefinition","src":"904:6770:38","nodes":[{"id":3614,"nodeType":"UsingForDirective","src":"1046:26:38","nodes":[],"global":false,"libraryName":{"id":3612,"name":"LoopOps","nameLocations":["1052:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":1327,"src":"1052:7:38"},"typeName":{"id":3613,"name":"uint256","nodeType":"ElementaryTypeName","src":"1064:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":3618,"nodeType":"UsingForDirective","src":"1077:49:38","nodes":[],"global":false,"libraryName":{"id":3615,"name":"EnumerableSet","nameLocations":["1083:13:38"],"nodeType":"IdentifierPath","referencedDeclaration":50447,"src":"1083:13:38"},"typeName":{"id":3617,"nodeType":"UserDefinedTypeName","pathNode":{"id":3616,"name":"EnumerableSet.AddressSet","nameLocations":["1101:13:38","1115:10:38"],"nodeType":"IdentifierPath","referencedDeclaration":50160,"src":"1101:24:38"},"referencedDeclaration":50160,"src":"1101:24:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$50160_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":3622,"nodeType":"VariableDeclaration","src":"1521:54:38","nodes":[],"constant":false,"documentation":{"id":3619,"nodeType":"StructuredDocumentation","src":"1455:61:38","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"82e2b7c8","mutability":"immutable","name":"POLICY_AUDIT","nameLocation":"1563:12:38","scope":3904,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$774","typeString":"contract IPolicyAuditorVerifiable"},"typeName":{"id":3621,"nodeType":"UserDefinedTypeName","pathNode":{"id":3620,"name":"IPolicyAuditorVerifiable","nameLocations":["1521:24:38"],"nodeType":"IdentifierPath","referencedDeclaration":774,"src":"1521:24:38"},"referencedDeclaration":774,"src":"1521:24:38","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$774","typeString":"contract IPolicyAuditorVerifiable"}},"visibility":"public"},{"id":3628,"nodeType":"VariableDeclaration","src":"1668:72:38","nodes":[],"constant":false,"documentation":{"id":3623,"nodeType":"StructuredDocumentation","src":"1582:81:38","text":"@dev Mapping to store the delegated rights for each policy contract (address)"},"mutability":"mutable","name":"_authorizedPolicies","nameLocation":"1721:19:38","scope":3904,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$50160_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet)"},"typeName":{"id":3627,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3624,"name":"address","nodeType":"ElementaryTypeName","src":"1676:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1668:44:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$50160_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3626,"nodeType":"UserDefinedTypeName","pathNode":{"id":3625,"name":"EnumerableSet.AddressSet","nameLocations":["1687:13:38","1701:10:38"],"nodeType":"IdentifierPath","referencedDeclaration":50160,"src":"1687:24:38"},"referencedDeclaration":50160,"src":"1687:24:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$50160_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"private"},{"id":3639,"nodeType":"EventDefinition","src":"2087:99:38","nodes":[],"anonymous":false,"documentation":{"id":3629,"nodeType":"StructuredDocumentation","src":"1746:336:38","text":"@notice Emitted when rights are granted to a policy for content.\n @param policy The policy contract address granted rights.\n @param holder The address of the asset rights holder.\n @param data The data used to initialize the policy.\n @param timestamp The timestamp indicating when the rights were granted."},"eventSelector":"6ba225fe6c79a8c5ddd429f9aa7654c4dbebe2cc98a02209616ac200ceba5c56","name":"RightsGranted","nameLocation":"2093:13:38","parameters":{"id":3638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3631,"indexed":true,"mutability":"mutable","name":"policy","nameLocation":"2123:6:38","nodeType":"VariableDeclaration","scope":3639,"src":"2107:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3630,"name":"address","nodeType":"ElementaryTypeName","src":"2107:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3633,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"2147:6:38","nodeType":"VariableDeclaration","scope":3639,"src":"2131:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3632,"name":"address","nodeType":"ElementaryTypeName","src":"2131:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3635,"indexed":false,"mutability":"mutable","name":"timestamp","nameLocation":"2163:9:38","nodeType":"VariableDeclaration","scope":3639,"src":"2155:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3634,"name":"uint256","nodeType":"ElementaryTypeName","src":"2155:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3637,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"2180:4:38","nodeType":"VariableDeclaration","scope":3639,"src":"2174:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3636,"name":"bytes","nodeType":"ElementaryTypeName","src":"2174:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2106:79:38"}},{"id":3648,"nodeType":"EventDefinition","src":"2491:87:38","nodes":[],"anonymous":false,"documentation":{"id":3640,"nodeType":"StructuredDocumentation","src":"2192:294:38","text":"@notice Emitted when rights are revoked from a policy for content.\n @param policy The policy contract address whose rights are being revoked.\n @param holder The address of the asset rights holder.\n @param timestamp The timestamp indicating when the rights were revoked."},"eventSelector":"18147b94ec466a20610ebd8716adbb2e35876dbfc0f54295dd2fe1d750d7eff0","name":"RightsRevoked","nameLocation":"2497:13:38","parameters":{"id":3647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3642,"indexed":true,"mutability":"mutable","name":"policy","nameLocation":"2527:6:38","nodeType":"VariableDeclaration","scope":3648,"src":"2511:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3641,"name":"address","nodeType":"ElementaryTypeName","src":"2511:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3644,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"2551:6:38","nodeType":"VariableDeclaration","scope":3648,"src":"2535:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3643,"name":"address","nodeType":"ElementaryTypeName","src":"2535:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3646,"indexed":false,"mutability":"mutable","name":"timestamp","nameLocation":"2567:9:38","nodeType":"VariableDeclaration","scope":3648,"src":"2559:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3645,"name":"uint256","nodeType":"ElementaryTypeName","src":"2559:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2510:67:38"}},{"id":3653,"nodeType":"ErrorDefinition","src":"2731:46:38","nodes":[],"documentation":{"id":3649,"nodeType":"StructuredDocumentation","src":"2584:142:38","text":"@dev Error thrown when a policy has not been audited or approved for operation.\n @param policy The address of the unaudited policy."},"errorSelector":"e63549fa","name":"InvalidNotAuditedPolicy","nameLocation":"2737:23:38","parameters":{"id":3652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3651,"mutability":"mutable","name":"policy","nameLocation":"2769:6:38","nodeType":"VariableDeclaration","scope":3653,"src":"2761:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3650,"name":"address","nodeType":"ElementaryTypeName","src":"2761:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2760:16:38"}},{"id":3658,"nodeType":"ErrorDefinition","src":"2937:49:38","nodes":[],"documentation":{"id":3654,"nodeType":"StructuredDocumentation","src":"2782:150:38","text":"@dev Error thrown when there is an issue with the policy setup.\n @param reason A string explaining the reason for the invalid policy setup."},"errorSelector":"47fc3bab","name":"InvalidPolicyInitialization","nameLocation":"2943:27:38","parameters":{"id":3657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3656,"mutability":"mutable","name":"reason","nameLocation":"2978:6:38","nodeType":"VariableDeclaration","scope":3658,"src":"2971:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3655,"name":"string","nodeType":"ElementaryTypeName","src":"2971:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2970:15:38"}},{"id":3674,"nodeType":"FunctionDefinition","src":"3045:385:38","nodes":[],"body":{"id":3673,"nodeType":"Block","src":"3078:352:38","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3664,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40755,"src":"3278:20:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":3665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3278:22:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3666,"nodeType":"ExpressionStatement","src":"3278:22:38"},{"expression":{"id":3671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3667,"name":"POLICY_AUDIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"3371:12:38","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$774","typeString":"contract IPolicyAuditorVerifiable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3669,"name":"policyAudit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3661,"src":"3411:11:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3668,"name":"IPolicyAuditorVerifiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":774,"src":"3386:24:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyAuditorVerifiable_$774_$","typeString":"type(contract IPolicyAuditorVerifiable)"}},"id":3670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3386:37:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$774","typeString":"contract IPolicyAuditorVerifiable"}},"src":"3371:52:38","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$774","typeString":"contract IPolicyAuditorVerifiable"}},"id":3672,"nodeType":"ExpressionStatement","src":"3371:52:38"}]},"documentation":{"id":3659,"nodeType":"StructuredDocumentation","src":"2992:48:38","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":3662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3661,"mutability":"mutable","name":"policyAudit","nameLocation":"3065:11:38","nodeType":"VariableDeclaration","scope":3674,"src":"3057:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3660,"name":"address","nodeType":"ElementaryTypeName","src":"3057:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3056:21:38"},"returnParameters":{"id":3663,"nodeType":"ParameterList","parameters":[],"src":"3078:0:38"},"scope":3904,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":3690,"nodeType":"FunctionDefinition","src":"3481:151:38","nodes":[],"body":{"id":3689,"nodeType":"Block","src":"3543:89:38","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3682,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40841,"src":"3553:22:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":3683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3553:24:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3684,"nodeType":"ExpressionStatement","src":"3553:24:38"},{"expression":{"arguments":[{"id":3686,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"3611:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3685,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1878,"src":"3587:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3587:38:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3688,"nodeType":"ExpressionStatement","src":"3587:38:38"}]},"documentation":{"id":3675,"nodeType":"StructuredDocumentation","src":"3436:40:38","text":"@notice Initializes the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":3680,"kind":"modifierInvocation","modifierName":{"id":3679,"name":"initializer","nameLocations":["3531:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":40641,"src":"3531:11:38"},"nodeType":"ModifierInvocation","src":"3531:11:38"}],"name":"initialize","nameLocation":"3490:10:38","parameters":{"id":3678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3677,"mutability":"mutable","name":"accessManager","nameLocation":"3509:13:38","nodeType":"VariableDeclaration","scope":3690,"src":"3501:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3676,"name":"address","nodeType":"ElementaryTypeName","src":"3501:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3500:23:38"},"returnParameters":{"id":3681,"nodeType":"ParameterList","parameters":[],"src":"3543:0:38"},"scope":3904,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":3747,"nodeType":"FunctionDefinition","src":"3873:720:38","nodes":[],"body":{"id":3746,"nodeType":"Block","src":"3944:649:38","nodes":[],"statements":[{"condition":{"id":3701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4045:23:38","subExpression":{"arguments":[{"id":3699,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3693,"src":"4061:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3698,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3903,"src":"4046:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":3700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4046:22:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3706,"nodeType":"IfStatement","src":"4041:67:38","trueBody":{"errorCall":{"arguments":[{"id":3703,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3693,"src":"4101:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3702,"name":"InvalidNotAuditedPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3653,"src":"4077:23:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":3704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4077:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3705,"nodeType":"RevertStatement","src":"4070:38:38"}},{"assignments":[3708,null],"declarations":[{"constant":false,"id":3708,"mutability":"mutable","name":"success","nameLocation":"4229:7:38","nodeType":"VariableDeclaration","scope":3746,"src":"4224:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3707,"name":"bool","nodeType":"ElementaryTypeName","src":"4224:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":3721,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":3713,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":762,"src":"4269:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$762_$","typeString":"type(contract IPolicy)"}},"id":3714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4277:10:38","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":714,"src":"4269:18:38","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPolicy.initialize(address,bytes calldata)"}},{"components":[{"expression":{"id":3715,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4290:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4294:6:38","memberName":"sender","nodeType":"MemberAccess","src":"4290:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3717,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3695,"src":"4302:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"id":3718,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4289:18:38","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_calldata_ptr_$","typeString":"tuple(address,bytes calldata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPolicy.initialize(address,bytes calldata)"},{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_calldata_ptr_$","typeString":"tuple(address,bytes calldata)"}],"expression":{"id":3711,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4254:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4258:10:38","memberName":"encodeCall","nodeType":"MemberAccess","src":"4254:14:38","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4254:54:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3709,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3693,"src":"4242:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4249:4:38","memberName":"call","nodeType":"MemberAccess","src":"4242:11:38","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":3720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4242:67:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4223:86:38"},{"condition":{"id":3723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4323:8:38","subExpression":{"id":3722,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"4324:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3728,"nodeType":"IfStatement","src":"4319:91:38","trueBody":{"errorCall":{"arguments":[{"hexValue":"4572726f7220647572696e6720706f6c69637920696e697469616c697a6174696f6e2063616c6c","id":3725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4368:41:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f","typeString":"literal_string \"Error during policy initialization call\""},"value":"Error during policy initialization call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f","typeString":"literal_string \"Error during policy initialization call\""}],"id":3724,"name":"InvalidPolicyInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3658,"src":"4340:27:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":3726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4340:70:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3727,"nodeType":"RevertStatement","src":"4333:77:38"}},{"expression":{"arguments":[{"id":3734,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3693,"src":"4456:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":3729,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"4420:19:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$50160_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":3732,"indexExpression":{"expression":{"id":3730,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4440:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4444:6:38","memberName":"sender","nodeType":"MemberAccess","src":"4440:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4420:31:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$50160_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":3733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4452:3:38","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":50187,"src":"4420:35:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$50160_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$50160_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":3735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4420:43:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3736,"nodeType":"ExpressionStatement","src":"4420:43:38"},{"eventCall":{"arguments":[{"id":3738,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3693,"src":"4544:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3739,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4552:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4556:6:38","memberName":"sender","nodeType":"MemberAccess","src":"4552:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3741,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4564:5:38","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4570:9:38","memberName":"timestamp","nodeType":"MemberAccess","src":"4564:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3743,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3695,"src":"4581:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":3737,"name":"RightsGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3639,"src":"4530:13:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":3744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4530:56:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3745,"nodeType":"EmitStatement","src":"4525:61:38"}]},"baseFunctions":[850],"documentation":{"id":3691,"nodeType":"StructuredDocumentation","src":"3638:230:38","text":"@notice Initializes and authorizes a policy contract for content held by the holder.\n @param policy The address of the policy contract to be initialized and authorized.\n @param data The data to initialize policy."},"functionSelector":"2f6cc102","implemented":true,"kind":"function","modifiers":[],"name":"authorizePolicy","nameLocation":"3882:15:38","parameters":{"id":3696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3693,"mutability":"mutable","name":"policy","nameLocation":"3906:6:38","nodeType":"VariableDeclaration","scope":3747,"src":"3898:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3692,"name":"address","nodeType":"ElementaryTypeName","src":"3898:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3695,"mutability":"mutable","name":"data","nameLocation":"3929:4:38","nodeType":"VariableDeclaration","scope":3747,"src":"3914:19:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3694,"name":"bytes","nodeType":"ElementaryTypeName","src":"3914:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3897:37:38"},"returnParameters":{"id":3697,"nodeType":"ParameterList","parameters":[],"src":"3944:0:38"},"scope":3904,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":3770,"nodeType":"FunctionDefinition","src":"4769:175:38","nodes":[],"body":{"id":3769,"nodeType":"Block","src":"4816:128:38","nodes":[],"statements":[{"expression":{"arguments":[{"id":3758,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3750,"src":"4865:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":3753,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"4826:19:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$50160_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":3756,"indexExpression":{"expression":{"id":3754,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4846:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4850:6:38","memberName":"sender","nodeType":"MemberAccess","src":"4846:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4826:31:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$50160_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":3757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4858:6:38","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":50214,"src":"4826:38:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$50160_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$50160_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":3759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4826:46:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3760,"nodeType":"ExpressionStatement","src":"4826:46:38"},{"eventCall":{"arguments":[{"id":3762,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3750,"src":"4901:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3763,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4909:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4913:6:38","memberName":"sender","nodeType":"MemberAccess","src":"4909:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3765,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4921:5:38","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4927:9:38","memberName":"timestamp","nodeType":"MemberAccess","src":"4921:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3761,"name":"RightsRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3648,"src":"4887:13:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4887:50:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3768,"nodeType":"EmitStatement","src":"4882:55:38"}]},"baseFunctions":[856],"documentation":{"id":3748,"nodeType":"StructuredDocumentation","src":"4599:165:38","text":"@notice Revokes the delegation of rights to a policy contract.\n @param policy The address of the policy contract whose rights delegation is being revoked."},"functionSelector":"9fda230a","implemented":true,"kind":"function","modifiers":[],"name":"revokePolicy","nameLocation":"4778:12:38","parameters":{"id":3751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3750,"mutability":"mutable","name":"policy","nameLocation":"4799:6:38","nodeType":"VariableDeclaration","scope":3770,"src":"4791:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3749,"name":"address","nodeType":"ElementaryTypeName","src":"4791:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4790:16:38"},"returnParameters":{"id":3752,"nodeType":"ParameterList","parameters":[],"src":"4816:0:38"},"scope":3904,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":3792,"nodeType":"FunctionDefinition","src":"5207:183:38","nodes":[],"body":{"id":3791,"nodeType":"Block","src":"5296:94:38","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3784,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5350:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":3780,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"5313:19:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$50160_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":3782,"indexExpression":{"id":3781,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3775,"src":"5333:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5313:27:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$50160_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":3783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5341:8:38","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":50241,"src":"5313:36:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$50160_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$50160_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":3785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5313:44:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":3787,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5376:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3786,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3903,"src":"5361:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":3788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5361:22:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5313:70:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3779,"id":3790,"nodeType":"Return","src":"5306:77:38"}]},"baseFunctions":[842],"documentation":{"id":3771,"nodeType":"StructuredDocumentation","src":"4950:252:38","text":"@dev Verify if the specified policy contract has been delegated the rights by the asset holder.\n @param policy The address of the policy contract to check for delegation.\n @param holder the asset rights holder to check for delegation."},"functionSelector":"ca89d8b2","implemented":true,"kind":"function","modifiers":[],"name":"isPolicyAuthorized","nameLocation":"5216:18:38","parameters":{"id":3776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3773,"mutability":"mutable","name":"policy","nameLocation":"5243:6:38","nodeType":"VariableDeclaration","scope":3792,"src":"5235:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3772,"name":"address","nodeType":"ElementaryTypeName","src":"5235:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3775,"mutability":"mutable","name":"holder","nameLocation":"5259:6:38","nodeType":"VariableDeclaration","scope":3792,"src":"5251:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3774,"name":"address","nodeType":"ElementaryTypeName","src":"5251:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5234:32:38"},"returnParameters":{"id":3779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3792,"src":"5290:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3777,"name":"bool","nodeType":"ElementaryTypeName","src":"5290:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5289:6:38"},"scope":3904,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":3871,"nodeType":"FunctionDefinition","src":"5691:1286:38","nodes":[],"body":{"id":3870,"nodeType":"Block","src":"5779:1198:38","nodes":[],"statements":[{"assignments":[3805],"declarations":[{"constant":false,"id":3805,"mutability":"mutable","name":"policies","nameLocation":"6417:8:38","nodeType":"VariableDeclaration","scope":3870,"src":"6400:25:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3803,"name":"address","nodeType":"ElementaryTypeName","src":"6400:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3804,"nodeType":"ArrayTypeName","src":"6400:9:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":3811,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":3806,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"6428:19:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$50160_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":3808,"indexExpression":{"id":3807,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3795,"src":"6448:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6428:27:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$50160_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":3809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6456:6:38","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":50313,"src":"6428:34:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$50160_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$50160_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":3810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6428:36:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6400:64:38"},{"assignments":[3816],"declarations":[{"constant":false,"id":3816,"mutability":"mutable","name":"filtered","nameLocation":"6491:8:38","nodeType":"VariableDeclaration","scope":3870,"src":"6474:25:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3814,"name":"address","nodeType":"ElementaryTypeName","src":"6474:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3815,"nodeType":"ArrayTypeName","src":"6474:9:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":3823,"initialValue":{"arguments":[{"expression":{"id":3820,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3805,"src":"6516:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6525:6:38","memberName":"length","nodeType":"MemberAccess","src":"6516:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6502:13:38","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":3817,"name":"address","nodeType":"ElementaryTypeName","src":"6506:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3818,"nodeType":"ArrayTypeName","src":"6506:9:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":3822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6502:30:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6474:58:38"},{"assignments":[3825],"declarations":[{"constant":false,"id":3825,"mutability":"mutable","name":"policiesLen","nameLocation":"6550:11:38","nodeType":"VariableDeclaration","scope":3870,"src":"6542:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3824,"name":"uint256","nodeType":"ElementaryTypeName","src":"6542:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3828,"initialValue":{"expression":{"id":3826,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3805,"src":"6564:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6573:6:38","memberName":"length","nodeType":"MemberAccess","src":"6564:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6542:37:38"},{"assignments":[3830],"declarations":[{"constant":false,"id":3830,"mutability":"mutable","name":"j","nameLocation":"6597:1:38","nodeType":"VariableDeclaration","scope":3870,"src":"6589:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3829,"name":"uint256","nodeType":"ElementaryTypeName","src":"6589:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3832,"initialValue":{"hexValue":"30","id":3831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6601:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6589:13:38"},{"body":{"id":3866,"nodeType":"Block","src":"6691:254:38","statements":[{"condition":{"id":3851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6709:28:38","subExpression":{"arguments":[{"baseExpression":{"id":3847,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3805,"src":"6725:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3849,"indexExpression":{"id":3848,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3834,"src":"6734:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6725:11:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3846,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3903,"src":"6710:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":3850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6710:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3853,"nodeType":"IfStatement","src":"6705:42:38","trueBody":{"id":3852,"nodeType":"Continue","src":"6739:8:38"}},{"expression":{"id":3860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3854,"name":"filtered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3816,"src":"6761:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3856,"indexExpression":{"id":3855,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"6770:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6761:11:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":3857,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3805,"src":"6775:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3859,"indexExpression":{"id":3858,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3834,"src":"6784:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6775:11:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6761:25:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3861,"nodeType":"ExpressionStatement","src":"6761:25:38"},{"id":3865,"nodeType":"UncheckedBlock","src":"6889:46:38","statements":[{"expression":{"id":3863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6917:3:38","subExpression":{"id":3862,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"6919:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3864,"nodeType":"ExpressionStatement","src":"6917:3:38"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3837,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3834,"src":"6652:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3838,"name":"policiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3825,"src":"6656:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6652:15:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3867,"initializationExpression":{"assignments":[3834],"declarations":[{"constant":false,"id":3834,"mutability":"mutable","name":"i","nameLocation":"6645:1:38","nodeType":"VariableDeclaration","scope":3867,"src":"6637:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3833,"name":"uint256","nodeType":"ElementaryTypeName","src":"6637:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3836,"initialValue":{"hexValue":"30","id":3835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6649:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6637:13:38"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":3844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3840,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3834,"src":"6669:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3841,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3834,"src":"6673:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6675:12:38","memberName":"uncheckedInc","nodeType":"MemberAccess","referencedDeclaration":1326,"src":"6673:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6673:16:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6669:20:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3845,"nodeType":"ExpressionStatement","src":"6669:20:38"},"nodeType":"ForStatement","src":"6632:313:38"},{"expression":{"id":3868,"name":"filtered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3816,"src":"6962:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":3800,"id":3869,"nodeType":"Return","src":"6955:15:38"}]},"baseFunctions":[832],"documentation":{"id":3793,"nodeType":"StructuredDocumentation","src":"5396:290:38","text":"@notice Retrieves all policies authorized by a specific content holder.\n @dev This function returns an array of policy addresses that have been granted rights by the holder.\n @param holder The address of the asset rights holder whose authorized policies are being queried."},"functionSelector":"591b43c5","implemented":true,"kind":"function","modifiers":[],"name":"getAuthorizedPolicies","nameLocation":"5700:21:38","parameters":{"id":3796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3795,"mutability":"mutable","name":"holder","nameLocation":"5730:6:38","nodeType":"VariableDeclaration","scope":3871,"src":"5722:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3794,"name":"address","nodeType":"ElementaryTypeName","src":"5722:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5721:16:38"},"returnParameters":{"id":3800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3799,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3871,"src":"5761:16:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3797,"name":"address","nodeType":"ElementaryTypeName","src":"5761:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3798,"nodeType":"ArrayTypeName","src":"5761:9:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5760:18:38"},"scope":3904,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":3881,"nodeType":"FunctionDefinition","src":"7175:84:38","nodes":[],"body":{"id":3880,"nodeType":"Block","src":"7257:2:38","nodes":[],"statements":[]},"baseFunctions":[40923],"documentation":{"id":3872,"nodeType":"StructuredDocumentation","src":"6983:187:38","text":"@dev Authorizes the upgrade of the contract.\n @notice Only the owner can authorize the upgrade.\n @param newImplementation The address of the new implementation contract."},"implemented":true,"kind":"function","modifiers":[{"id":3878,"kind":"modifierInvocation","modifierName":{"id":3877,"name":"onlyAdmin","nameLocations":["7247:9:38"],"nodeType":"IdentifierPath","referencedDeclaration":1861,"src":"7247:9:38"},"nodeType":"ModifierInvocation","src":"7247:9:38"}],"name":"_authorizeUpgrade","nameLocation":"7184:17:38","overrides":{"id":3876,"nodeType":"OverrideSpecifier","overrides":[],"src":"7238:8:38"},"parameters":{"id":3875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3874,"mutability":"mutable","name":"newImplementation","nameLocation":"7210:17:38","nodeType":"VariableDeclaration","scope":3881,"src":"7202:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3873,"name":"address","nodeType":"ElementaryTypeName","src":"7202:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7201:27:38"},"returnParameters":{"id":3879,"nodeType":"ParameterList","parameters":[],"src":"7257:0:38"},"scope":3904,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":3903,"nodeType":"FunctionDefinition","src":"7524:148:38","nodes":[],"body":{"id":3902,"nodeType":"Block","src":"7592:80:38","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3889,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3884,"src":"7610:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7628:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7620:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3890,"name":"address","nodeType":"ElementaryTypeName","src":"7620:7:38","typeDescriptions":{}}},"id":3893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7620:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7610:20:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":3897,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3884,"src":"7657:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3895,"name":"POLICY_AUDIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"7634:12:38","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$774","typeString":"contract IPolicyAuditorVerifiable"}},"id":3896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7647:9:38","memberName":"isAudited","nodeType":"MemberAccess","referencedDeclaration":773,"src":"7634:22:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":3898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7634:30:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7610:54:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":3900,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7609:56:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3888,"id":3901,"nodeType":"Return","src":"7602:63:38"}]},"documentation":{"id":3882,"nodeType":"StructuredDocumentation","src":"7265:254:38","text":"@notice Verifies whether a given policy is valid.\n @dev The function ensures that the policy address is not the zero address\n and that the policy has been audited.\n @param policy The address of the policy contract to verify."},"implemented":true,"kind":"function","modifiers":[],"name":"_isValidPolicy","nameLocation":"7533:14:38","parameters":{"id":3885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3884,"mutability":"mutable","name":"policy","nameLocation":"7556:6:38","nodeType":"VariableDeclaration","scope":3903,"src":"7548:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3883,"name":"address","nodeType":"ElementaryTypeName","src":"7548:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7547:16:38"},"returnParameters":{"id":3888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3903,"src":"7586:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3886,"name":"bool","nodeType":"ElementaryTypeName","src":"7586:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7585:6:38"},"scope":3904,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":3604,"name":"Initializable","nameLocations":["943:13:38"],"nodeType":"IdentifierPath","referencedDeclaration":40787,"src":"943:13:38"},"id":3605,"nodeType":"InheritanceSpecifier","src":"943:13:38"},{"baseName":{"id":3606,"name":"UUPSUpgradeable","nameLocations":["962:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":40969,"src":"962:15:38"},"id":3607,"nodeType":"InheritanceSpecifier","src":"962:15:38"},{"baseName":{"id":3608,"name":"AccessControlledUpgradeable","nameLocations":["983:27:38"],"nodeType":"IdentifierPath","referencedDeclaration":1943,"src":"983:27:38"},"id":3609,"nodeType":"InheritanceSpecifier","src":"983:27:38"},{"baseName":{"id":3610,"name":"IRightsPolicyAuthorizer","nameLocations":["1016:23:38"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"1016:23:38"},"id":3611,"nodeType":"InheritanceSpecifier","src":"1016:23:38"}],"canonicalName":"RightsPolicyAuthorizer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[3904,857,1943,40533,42974,42579,40969,43543,40787],"name":"RightsPolicyAuthorizer","nameLocation":"913:22:38","scope":3905,"usedErrors":[1843,3653,3658,40550,40553,40814,40819,42945,42951,42955,43738,43751,44975,45267],"usedEvents":[3639,3648,40558,42941,43516]}],"license":"MIT"},"id":38} diff --git a/src/config/abi/SubscriptionCampaign.json b/src/config/abi/SubscriptionCampaign.json new file mode 100644 index 00000000..a0cf3431 --- /dev/null +++ b/src/config/abi/SubscriptionCampaign.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"ledgerVault","type":"address","internalType":"address"},{"name":"mmc","type":"address","internalType":"address"},{"name":"policy","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"LEDGER_VAULT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILedgerVault"}],"stateMutability":"view"},{"type":"function","name":"MMC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"POLICY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPolicy"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"addFunds","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getFundsBalance","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLedgerBalance","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMaxRateLimit","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPolicyAllocation","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"broker","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRateCounter","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTerms","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"broker","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ICampaign.CampaignTerms","components":[{"name":"duration","type":"uint256","internalType":"uint256"},{"name":"allocation","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isActiveCampaign","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"broker","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"removeFunds","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"run","inputs":[{"name":"sponsor","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxRateLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPolicyAllocation","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"broker","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CampaignRun","inputs":[{"name":"sponsor","type":"address","indexed":true,"internalType":"address"},{"name":"account","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FundsAdded","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FundsRemoved","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"MaxRateLimitSet","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PolicyAllocationSet","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"broker","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x610100346101b257601f61236638819003918201601f19168301916001600160401b038311848410176101b6578084926060946040528339810103126101b257610048816101ca565b6100606040610059602085016101ca565b93016101ca565b90306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166101a3576002600160401b03196001600160401b0382160161013a575b506001600160a01b0390811660e0521660c05260a05260405161218790816101df8239608051818181611579015261167a015260a0518181816101b801528181610bec0152818161104c01528181611ab101528181611aeb0152611daf015260c0518181816105eb015261134f015260e0518181816102fb01528181610c4901528181610df50152611beb0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f6100ab565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101b25756fe6080806040526004361015610012575f80fd5b5f3560e01c90816301f7960014611de3575080632a363a9014611d395780632f38452314611ad557806344dea5a714611a855780634f1ef286146115f157806352d1902d146115525780635571df93146112915780635c975abb146112505780635d150187146111be57806372d2bf0914610fe65780637a9e5e4b14610f0f5780638fb3603714610e7c578063ad3cb1cc14610e19578063bc23e35e14610dc9578063be99970514610b9c578063bf7e214f14610b4a578063c4d66de81461082e578063c61f19b2146107e9578063c9f196a41461077b578063d1a72b5b146106a2578063d949b8441461060f578063dadbccee146105bf5763fc4dcacb14610119575f80fd5b346103c75760406003193601126103c757610132611e23565b61013a611e46565b9060ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054166105975773ffffffffffffffffffffffffffffffffffffffff8116805f525f60205260405f205491815f52600260205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f5260205260405f2054927f0000000000000000000000000000000000000000000000000000000000000000835f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f5260205260405f20549273ffffffffffffffffffffffffffffffffffffffff871692835f52600160205260405f205494871561051357871161048f5784101561040b57600184018094116103de578186610285926102e1966020965f526001875260405f2055611f43565b6040517fb4fb2ea70000000000000000000000000000000000000000000000000000000081523360048201526024810186905273ffffffffffffffffffffffffffffffffffffffff909116604482015291829081906064820190565b03815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af180156103d35761037d575b506040805173ffffffffffffffffffffffffffffffffffffffff9490941684526020808501849052937f016278ed156d0c840c4a75f61de5ab65a5e51849d11d1325ce5b91f00f2378c89190a2604051908152f35b926020843d6020116103cb575b8161039760209383611e85565b810103126103c75792507f016278ed156d0c840c4a75f61de5ab65a5e51849d11d1325ce5b91f00f2378c8610328565b5f80fd5b3d915061038a565b6040513d5f823e3d90fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4578636565646564206d61782073706f6e736f7265642061636365737320696e60448201527f2063616d706169676e2e000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4e6f2066756e647320746f2073706f6e736f722061636365737320696e20636160448201527f6d706169676e2e000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f4e6f20706f6c69637920616c6c6f636174696f6e2073657420666f722074686960448201527f732063616d706169676e2e0000000000000000000000000000000000000000006064820152fd5b7fd93c0665000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103c7575f6003193601126103c757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103c75760406003193601126103c757610628611e23565b73ffffffffffffffffffffffffffffffffffffffff61068c610648611e46565b9273ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346103c75760206003193601126103c75760043580156106f757335f525f6020528060405f20556040519081527f13ba89ef96a96deb83090becd7c7a4ac146056bd2c143e7288b36d3167d1ecf260203392a2005b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f52617465206c696d6974206d7573742062652067726561746572207468616e2060448201527f7a65726f2e0000000000000000000000000000000000000000000000000000006064820152fd5b346103c75760406003193601126103c757610794611e23565b73ffffffffffffffffffffffffffffffffffffffff6107b1611e46565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346103c75760206003193601126103c75773ffffffffffffffffffffffffffffffffffffffff610817611e23565b165f526001602052602060405f2054604051908152f35b346103c75760206003193601126103c757610847611e23565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff821680159081610b42575b6001149081610b38575b159081610b2f575b50610b0757818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610ab2575b5061090a612061565b610912612061565b61091a612061565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054167fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330055610988612061565b610990612061565b610998612061565b6109a0612061565b6109a981611fb6565b6109b1612061565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0055610a1f57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610901565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610898565b303b159150610890565b849150610886565b346103c7575f6003193601126103c757602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346103c75760206003193601126103c7576004358015610d45576040517f2c2eb94a00000000000000000000000000000000000000000000000000000000815233600482015260248101919091527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff81166044830152602082806064810103815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19182156103d3575f92610d11575b50335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f208054918083018093116103de579190556040805133815260208101929092527f8fe10ae416f22f5e5220b0018a6c1d4ff534d6aa3a471f2a20cb7747fe63e5b99190819081015b0390a1005b9091506020813d602011610d3d575b81610d2d60209383611e85565b810103126103c757519082610c79565b3d9150610d20565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f496e76616c696420616d6f756e7420746f20616c6c6f6361746520696e20636160448201527f6d706169676e2e000000000000000000000000000000000000000000000000006064820152fd5b346103c7575f6003193601126103c757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103c7575f6003193601126103c757610e78604051610e3a604082611e85565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190611f00565b0390f35b346103c7575f6003193601126103c7577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff1615610f075760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610edd565b346103c75760206003193601126103c757610f28611e23565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054163303610fba57803b15610f7857610f7690611fb6565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346103c75760406003193601126103c757600435611002611e46565b811561116057335f9081527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f006020526040902073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165f526020528160405f2054106110dc5773ffffffffffffffffffffffffffffffffffffffff90335f52600260205260405f208282165f526020528260405f205560405192835216907f333ce65bf69c327ddeaef4b3d299b396ffa60f981d2b8b56d24f80e3a43d113c60203392a3005b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e73756666696369656e742066756e647320696e2063616d706169676e207460448201527f6f20616c6c6f636174652e0000000000000000000000000000000000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f496e76616c6964207a65726f2066756e647320616c6c6f636174696f6e2e00006044820152fd5b346103c75760406003193601126103c7576111d7611e23565b73ffffffffffffffffffffffffffffffffffffffff6111f4611e46565b9116805f525f60205260405f205415159081611218575b6020826040519015158152f35b90505f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f205415158261120b565b346103c7575f6003193601126103c757602060ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054166040519015158152f35b346103c75760406003193601126103c7576113366112ad611e23565b6112b5611e46565b905f60206040516112c581611e69565b82815201525f73ffffffffffffffffffffffffffffffffffffffff604051921691826020820152602081526112fb604082611e85565b604051809581927fa3937111000000000000000000000000000000000000000000000000000000008352602060048401526024830190611f00565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9283156103d3575f93611427575b505f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490519081156113fa578190048181029181830414811517156103de57818004600114821517156103de57604091602083516113e681611e69565b838152019081528251918252516020820152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b9092503d805f833e6114398183611e85565b8101906020818303126103c75780519067ffffffffffffffff82116103c75701906080828203126103c757604051916080830183811067ffffffffffffffff8211176115255760405280518352602081015173ffffffffffffffffffffffffffffffffffffffff811681036103c7576020840152604081015160048110156103c757604084015260608101519067ffffffffffffffff82116103c7570181601f820112156103c7578051906114ed82611ec6565b926114fb6040519485611e85565b828452602083830101116103c757815f9260208093018386015e830101526060820152918361137f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b346103c7575f6003193601126103c75773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036115c95760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60406003193601126103c757611605611e23565b6024359067ffffffffffffffff82116103c757366023830112156103c75781600401359061163282611ec6565b916116406040519384611e85565b808352602083019336602483830101116103c757815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115611a43575b506115c9576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa9081156103d3575f916119f6575b50156119725773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f918161193e575b506117b157847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036119135750823b156118e857807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156118b6575f8091610f76945190845af43d156118ae573d9161189283611ec6565b926118a06040519485611e85565b83523d5f602085013e6120b8565b6060916120b8565b505050346118c057005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d60201161196a575b8161195a60209383611e85565b810103126103c757519086611780565b3d915061194d565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011611a3b575b81611a1160409383611e85565b810103126103c75780519081151582036103c7576020015163ffffffff8116036103c7578461172b565b3d9150611a04565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54161415846116a5565b346103c7575f6003193601126103c757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103c75760206003193601126103c7576004357f000000000000000000000000000000000000000000000000000000000000000090611b523373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff83165f526020528060405f205410611cb5576040517fdbba0f01000000000000000000000000000000000000000000000000000000008152336004820152602481019190915273ffffffffffffffffffffffffffffffffffffffff82166044820152602081806064810103815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103d3575f91611c63575b7fdf8abc6a5b0f90b413231e87356f90121a51d6182d7536cd3cfbccadd5de750e610d0c83611c4b868233611f43565b60408051338152602081019290925290918291820190565b90506020813d602011611cad575b81611c7e60209383611e85565b810103126103c757517fdf8abc6a5b0f90b413231e87356f90121a51d6182d7536cd3cfbccadd5de750e611c1b565b3d9150611c71565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f496e73756666696369656e742066756e647320616c6c6f636174656420696e2060448201527f63616d706169676e2e00000000000000000000000000000000000000000000006064820152fd5b346103c75760206003193601126103c757611d98611d55611e23565b73ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165f52602052602060405f2054604051908152f35b346103c75760206003193601126103c75760209073ffffffffffffffffffffffffffffffffffffffff611e14611e23565b165f525f825260405f20548152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036103c757565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036103c757565b6040810190811067ffffffffffffffff82111761152557604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761152557604052565b67ffffffffffffffff811161152557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f2080549182039182116103de5755565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561209057565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b906120f557508051156120cd57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580612148575b612106575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b156120fe56fea26469706673582212200338a97f72b6a167e69951f4bb4c1b7d0f0983eda81b509faba85d230655e16564736f6c634300081a0033","sourceMap":"259:2331:3:-:0;;;;;;;;;;;;;-1:-1:-1;;259:2331:3;;;;-1:-1:-1;;;;;259:2331:3;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:28;;1163:13;;8837:64:27;259:2331:3;;;;;;7896:76:27;;-1:-1:-1;;;;;;;;;;;259:2331:3;;7985:34:27;7981:146;;-1:-1:-1;;;;;;;259:2331:3;;;3676:40:2;;259:2331:3;3726:24:2;;259:2331:3;3797:9:2;-1:-1:-1;259:2331:3;;;;;;;1163:13:28;259:2331:3;;;;;;;;;;3797:9:2;259:2331:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3726:24:2;259:2331:3;;;;;;;;;;3676:40:2;259:2331:3;;;;;;;;;;;;;;;;;;;;;7981:146:27;-1:-1:-1;;;;;;259:2331:3;-1:-1:-1;;;;;259:2331:3;;;8837:64:27;259:2331:3;;;;;;8087:29:27;;259:2331:3;;8087:29:27;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:27;;-1:-1:-1;7938:23:27;259:2331:3;-1:-1:-1;259:2331:3;;;;;;-1:-1:-1;259:2331:3;;;;;-1:-1:-1;259:2331:3;;;;-1:-1:-1;;;;;259:2331:3;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301f7960014611de3575080632a363a9014611d395780632f38452314611ad557806344dea5a714611a855780634f1ef286146115f157806352d1902d146115525780635571df93146112915780635c975abb146112505780635d150187146111be57806372d2bf0914610fe65780637a9e5e4b14610f0f5780638fb3603714610e7c578063ad3cb1cc14610e19578063bc23e35e14610dc9578063be99970514610b9c578063bf7e214f14610b4a578063c4d66de81461082e578063c61f19b2146107e9578063c9f196a41461077b578063d1a72b5b146106a2578063d949b8441461060f578063dadbccee146105bf5763fc4dcacb14610119575f80fd5b346103c75760406003193601126103c757610132611e23565b61013a611e46565b9060ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054166105975773ffffffffffffffffffffffffffffffffffffffff8116805f525f60205260405f205491815f52600260205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f5260205260405f2054927f0000000000000000000000000000000000000000000000000000000000000000835f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f5260205260405f20549273ffffffffffffffffffffffffffffffffffffffff871692835f52600160205260405f205494871561051357871161048f5784101561040b57600184018094116103de578186610285926102e1966020965f526001875260405f2055611f43565b6040517fb4fb2ea70000000000000000000000000000000000000000000000000000000081523360048201526024810186905273ffffffffffffffffffffffffffffffffffffffff909116604482015291829081906064820190565b03815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af180156103d35761037d575b506040805173ffffffffffffffffffffffffffffffffffffffff9490941684526020808501849052937f016278ed156d0c840c4a75f61de5ab65a5e51849d11d1325ce5b91f00f2378c89190a2604051908152f35b926020843d6020116103cb575b8161039760209383611e85565b810103126103c75792507f016278ed156d0c840c4a75f61de5ab65a5e51849d11d1325ce5b91f00f2378c8610328565b5f80fd5b3d915061038a565b6040513d5f823e3d90fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4578636565646564206d61782073706f6e736f7265642061636365737320696e60448201527f2063616d706169676e2e000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4e6f2066756e647320746f2073706f6e736f722061636365737320696e20636160448201527f6d706169676e2e000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f4e6f20706f6c69637920616c6c6f636174696f6e2073657420666f722074686960448201527f732063616d706169676e2e0000000000000000000000000000000000000000006064820152fd5b7fd93c0665000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103c7575f6003193601126103c757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103c75760406003193601126103c757610628611e23565b73ffffffffffffffffffffffffffffffffffffffff61068c610648611e46565b9273ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346103c75760206003193601126103c75760043580156106f757335f525f6020528060405f20556040519081527f13ba89ef96a96deb83090becd7c7a4ac146056bd2c143e7288b36d3167d1ecf260203392a2005b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f52617465206c696d6974206d7573742062652067726561746572207468616e2060448201527f7a65726f2e0000000000000000000000000000000000000000000000000000006064820152fd5b346103c75760406003193601126103c757610794611e23565b73ffffffffffffffffffffffffffffffffffffffff6107b1611e46565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346103c75760206003193601126103c75773ffffffffffffffffffffffffffffffffffffffff610817611e23565b165f526001602052602060405f2054604051908152f35b346103c75760206003193601126103c757610847611e23565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff821680159081610b42575b6001149081610b38575b159081610b2f575b50610b0757818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610ab2575b5061090a612061565b610912612061565b61091a612061565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054167fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330055610988612061565b610990612061565b610998612061565b6109a0612061565b6109a981611fb6565b6109b1612061565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0055610a1f57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610901565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610898565b303b159150610890565b849150610886565b346103c7575f6003193601126103c757602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346103c75760206003193601126103c7576004358015610d45576040517f2c2eb94a00000000000000000000000000000000000000000000000000000000815233600482015260248101919091527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff81166044830152602082806064810103815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19182156103d3575f92610d11575b50335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f208054918083018093116103de579190556040805133815260208101929092527f8fe10ae416f22f5e5220b0018a6c1d4ff534d6aa3a471f2a20cb7747fe63e5b99190819081015b0390a1005b9091506020813d602011610d3d575b81610d2d60209383611e85565b810103126103c757519082610c79565b3d9150610d20565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f496e76616c696420616d6f756e7420746f20616c6c6f6361746520696e20636160448201527f6d706169676e2e000000000000000000000000000000000000000000000000006064820152fd5b346103c7575f6003193601126103c757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103c7575f6003193601126103c757610e78604051610e3a604082611e85565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190611f00565b0390f35b346103c7575f6003193601126103c7577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff1615610f075760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610edd565b346103c75760206003193601126103c757610f28611e23565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054163303610fba57803b15610f7857610f7690611fb6565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346103c75760406003193601126103c757600435611002611e46565b811561116057335f9081527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f006020526040902073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165f526020528160405f2054106110dc5773ffffffffffffffffffffffffffffffffffffffff90335f52600260205260405f208282165f526020528260405f205560405192835216907f333ce65bf69c327ddeaef4b3d299b396ffa60f981d2b8b56d24f80e3a43d113c60203392a3005b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e73756666696369656e742066756e647320696e2063616d706169676e207460448201527f6f20616c6c6f636174652e0000000000000000000000000000000000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f496e76616c6964207a65726f2066756e647320616c6c6f636174696f6e2e00006044820152fd5b346103c75760406003193601126103c7576111d7611e23565b73ffffffffffffffffffffffffffffffffffffffff6111f4611e46565b9116805f525f60205260405f205415159081611218575b6020826040519015158152f35b90505f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f205415158261120b565b346103c7575f6003193601126103c757602060ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054166040519015158152f35b346103c75760406003193601126103c7576113366112ad611e23565b6112b5611e46565b905f60206040516112c581611e69565b82815201525f73ffffffffffffffffffffffffffffffffffffffff604051921691826020820152602081526112fb604082611e85565b604051809581927fa3937111000000000000000000000000000000000000000000000000000000008352602060048401526024830190611f00565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9283156103d3575f93611427575b505f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490519081156113fa578190048181029181830414811517156103de57818004600114821517156103de57604091602083516113e681611e69565b838152019081528251918252516020820152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b9092503d805f833e6114398183611e85565b8101906020818303126103c75780519067ffffffffffffffff82116103c75701906080828203126103c757604051916080830183811067ffffffffffffffff8211176115255760405280518352602081015173ffffffffffffffffffffffffffffffffffffffff811681036103c7576020840152604081015160048110156103c757604084015260608101519067ffffffffffffffff82116103c7570181601f820112156103c7578051906114ed82611ec6565b926114fb6040519485611e85565b828452602083830101116103c757815f9260208093018386015e830101526060820152918361137f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b346103c7575f6003193601126103c75773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036115c95760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60406003193601126103c757611605611e23565b6024359067ffffffffffffffff82116103c757366023830112156103c75781600401359061163282611ec6565b916116406040519384611e85565b808352602083019336602483830101116103c757815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115611a43575b506115c9576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa9081156103d3575f916119f6575b50156119725773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f918161193e575b506117b157847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036119135750823b156118e857807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156118b6575f8091610f76945190845af43d156118ae573d9161189283611ec6565b926118a06040519485611e85565b83523d5f602085013e6120b8565b6060916120b8565b505050346118c057005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d60201161196a575b8161195a60209383611e85565b810103126103c757519086611780565b3d915061194d565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011611a3b575b81611a1160409383611e85565b810103126103c75780519081151582036103c7576020015163ffffffff8116036103c7578461172b565b3d9150611a04565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54161415846116a5565b346103c7575f6003193601126103c757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103c75760206003193601126103c7576004357f000000000000000000000000000000000000000000000000000000000000000090611b523373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff83165f526020528060405f205410611cb5576040517fdbba0f01000000000000000000000000000000000000000000000000000000008152336004820152602481019190915273ffffffffffffffffffffffffffffffffffffffff82166044820152602081806064810103815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103d3575f91611c63575b7fdf8abc6a5b0f90b413231e87356f90121a51d6182d7536cd3cfbccadd5de750e610d0c83611c4b868233611f43565b60408051338152602081019290925290918291820190565b90506020813d602011611cad575b81611c7e60209383611e85565b810103126103c757517fdf8abc6a5b0f90b413231e87356f90121a51d6182d7536cd3cfbccadd5de750e611c1b565b3d9150611c71565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f496e73756666696369656e742066756e647320616c6c6f636174656420696e2060448201527f63616d706169676e2e00000000000000000000000000000000000000000000006064820152fd5b346103c75760206003193601126103c757611d98611d55611e23565b73ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165f52602052602060405f2054604051908152f35b346103c75760206003193601126103c75760209073ffffffffffffffffffffffffffffffffffffffff611e14611e23565b165f525f825260405f20548152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036103c757565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036103c757565b6040810190811067ffffffffffffffff82111761152557604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761152557604052565b67ffffffffffffffff811161152557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f2080549182039182116103de5755565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561209057565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b906120f557508051156120cd57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580612148575b612106575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b156120fe56fea26469706673582212200338a97f72b6a167e69951f4bb4c1b7d0f0983eda81b509faba85d230655e16564736f6c634300081a0033","sourceMap":"259:2331:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;;;:::i;:::-;;;:::i;:::-;;;1237:66:30;259:2331:3;;2966:61:30;;259:2331:3;;;;;;;;;;;;;;;;;10203:11:2;259:2331:3;;;;;;8929:10:2;259:2331:3;-1:-1:-1;259:2331:3;;;;-1:-1:-1;259:2331:3;;9009:3:2;;259:2331:3;;;4178:54:80;259:2331:3;;;;;;;;-1:-1:-1;259:2331:3;;;;-1:-1:-1;259:2331:3;;;;;;;;;;10520:12:2;259:2331:3;;;;;;9104:25:2;;;259:2331:3;;9195:47:2;-1:-1:-1;259:2331:3;;9304:48:2;-1:-1:-1;259:2331:3;;;10520:12:2;259:2331:3;;;;;;;;;9597:3:2;259:2331:3;9677:60:2;259:2331:3;;;;;10520:12:2;259:2331:3;;;;;;9597:3:2;:::i;:::-;259:2331:3;;;9677:60:2;;8929:10;259:2331:3;9677:60:2;;259:2331:3;;;;;;;;;;;;;;;;;;;;;;;;;9677:60:2;;:12;259:2331:3;;9677:12:2;259:2331:3;9677:60:2;;;;;;;;259:2331:3;-1:-1:-1;259:2331:3;;;;;;;;;;;;;;;;;;9752:52:2;;259:2331:3;9752:52:2;259:2331:3;;;;;;9677:60:2;;259:2331:3;9677:60:2;;259:2331:3;9677:60:2;;;;;;259:2331:3;9677:60:2;;;:::i;:::-;;;259:2331:3;;;;;-1:-1:-1;9752:52:2;9677:60;;259:2331:3;;;;9677:60:2;;;-1:-1:-1;9677:60:2;;;259:2331:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2966:61:30;3001:15;259:2331:3;3001:15:30;259:2331:3;;3001:15:30;259:2331:3;;;;;-1:-1:-1;;259:2331:3;;;;;;;;;1466:31:2;259:2331:3;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;;;:::i;:::-;;1469:18:80;259:2331:3;;:::i;:::-;1469:18:80;259:2331:3;;;;4178:54:80;259:2331:3;;;;;;;1469:18:80;:28;259:2331:3;-1:-1:-1;259:2331:3;;;;;-1:-1:-1;259:2331:3;;;;;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;;;4855:9:2;;259:2331:3;;4930:10:2;259:2331:3;;;;;;;;;;;;;;;4963:34:2;259:2331:3;4930:10:2;4963:34;;259:2331:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;10203:11:2;259:2331:3;;;;;;10203:28:2;259:2331:3;-1:-1:-1;259:2331:3;;;;;-1:-1:-1;259:2331:3;;;;;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;;;;:::i;:::-;;;;10520:12:2;259:2331:3;;;;;;;;;;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;;;:::i;:::-;8837:64:27;259:2331:3;;;;;;4301:16:27;259:2331:3;;;;4726:16:27;;:34;;;;259:2331:3;4805:1:27;4790:16;:50;;;;259:2331:3;4855:13:27;:30;;;;259:2331:3;4851:91:27;;;259:2331:3;;4805:1:27;259:2331:3;;;;;8837:64:27;259:2331:3;4979:67:27;;259:2331:3;6893:76:27;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;259:2331:3;1237:66:30;259:2331:3;;1237:66:30;259:2331:3;6893:76:27;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:26;;;:::i;:::-;6893:76:27;;:::i;:::-;259:2331:3;;3298:62:79;259:2331:3;;;3298:62:79;259:2331:3;5066:101:27;;259:2331:3;5066:101:27;259:2331:3;8837:64:27;259:2331:3;;8837:64:27;259:2331:3;5142:14:27;259:2331:3;;;4805:1:27;259:2331:3;;5142:14:27;259:2331:3;4979:67:27;259:2331:3;;;;8837:64:27;259:2331:3;4979:67:27;;;4851:91;4908:23;259:2331:3;4908:23:27;259:2331:3;;4908:23:27;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:27;;4726:34;;;-1:-1:-1;4726:34:27;;259:2331:3;;;;;-1:-1:-1;;259:2331:3;;;;;;;1782:71:26;259:2331:3;;;;;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;;;7408:10:2;;259:2331:3;;;;;7492:45:2;;7513:10;259:2331:3;7492:45:2;;259:2331:3;;;;;;;;7533:3:2;259:2331:3;;;;;;;;;;;;;7492:45:2;:12;259:2331:3;;7492:12:2;259:2331:3;7492:45:2;;;;;;;259:2331:3;7492:45:2;;;259:2331:3;7513:10:2;;259:2331:3;;4178:54:80;259:2331:3;;;;;;3266:28:80;259:2331:3;-1:-1:-1;259:2331:3;;;;-1:-1:-1;259:2331:3;;;3266:38:80;259:2331:3;;;;;;;;;;;;;;7513:10:2;259:2331:3;;;;;;;;;7605:33:2;;259:2331:3;;;;;7605:33:2;;;;259:2331:3;7492:45:2;;;;259:2331:3;7492:45:2;;259:2331:3;7492:45:2;;;;;;259:2331:3;7492:45:2;;;:::i;:::-;;;259:2331:3;;;;;7492:45:2;;;;;;;-1:-1:-1;7492:45:2;;259:2331:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;;;;;1569:42:2;259:2331:3;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;1782:71:26;259:2331:3;;;;;4698:71:26;;;259:2331:3;;4698:71:26;259:2331:3;;;;;;;;4698:71:26;259:2331:3;;4698:71:26;;259:2331:3;;;;;-1:-1:-1;;259:2331:3;;;;;;;:::i;:::-;;1782:71:26;259:2331:3;;966:10:29;4258:21:26;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;259:2331:3;4355:110:26;259:2331:3;4411:43:26;;259:2331:3;4411:43:26;259:2331:3;;;;;4411:43:26;4254:92;4302:33;259:2331:3;4302:33:26;966:10:29;259:2331:3;;;;4302:33:26;259:2331:3;;;;;-1:-1:-1;;259:2331:3;;;;;;;;;:::i;:::-;5817:10:2;;259:2331:3;;5897:10:2;259:2331:3;;;;4178:54:80;259:2331:3;;;;;;5909:3:2;259:2331:3;-1:-1:-1;259:2331:3;;;;;-1:-1:-1;259:2331:3;;5880:43:2;259:2331:3;;;5897:10:2;;259:2331:3;;11708:11:2;259:2331:3;;;;;;;;-1:-1:-1;259:2331:3;;;;;-1:-1:-1;259:2331:3;;;;;;;;5897:10:2;6038:47;259:2331:3;5897:10:2;6038:47;;259:2331:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;4457:26:2;;:65;;;;259:2331:3;;;;;;;;;;;4457:65:2;259:2331:3;;;;10203:11:2;259:2331:3;;;;;;10203:28:2;259:2331:3;-1:-1:-1;259:2331:3;;;;;-1:-1:-1;259:2331:3;;4487:35:2;;4457:65;;;259:2331:3;;;;;-1:-1:-1;;259:2331:3;;;;;;;1237:66:30;259:2331:3;;;;;;;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;1514:19;;259:2331;1514:19;;259:2331;;1514:19;;;259:2331;1514:19;;:::i;:::-;259:2331;;1629:27;;;;259:2331;1629:27;;259:2331;;1629:27;;259:2331;;;;;;:::i;:::-;1629:27;:6;259:2331;1629:6;259:2331;1629:27;;;;;;;259:2331;1629:27;;;259:2331;;;;10203:11:2;259:2331:3;;;;;;10203:28:2;259:2331:3;-1:-1:-1;259:2331:3;;;;-1:-1:-1;259:2331:3;;;;1136:19:5;259:2331:3;;;;;;;;;;;;;;;;;;;;;;;;2055:1;259:2331;;;;;;;;;;;;;;;:::i;:::-;;;;2163:30;259:2331;;;;;;;;;;;;;;;;;;;;;;;;1629:27;;;;;;259:2331;1629:27;;;;;;:::i;:::-;;;259:2331;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1629:27;;;;259:2331;;;;;;;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;;5115:6:28;259:2331:3;5106:4:28;5098:23;5094:145;;259:2331:3;;;811:66:41;259:2331:3;;;5094:145:28;5199:29;259:2331:3;5199:29:28;259:2331:3;;5199:29:28;259:2331:3;;-1:-1:-1;;259:2331:3;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:28;259:2331:3;4683:4:28;;4675:23;:120;;;;;259:2331:3;4658:251:28;;;3061:30:79;259:2331:3;;3298:62:79;259:2331:3;;;;3061:30:79;;;;259:2331:3;3061:30:79;;259:2331:3;;3061:30:79;;259:2331:3;1896:10:79;259:2331:3;;;;3061:30:79;;;;;;;259:2331:3;3061:30:79;;;259:2331:3;1872:35:79;;1868:140;;259:2331:3;;;;;;;6156:52:28;;259:2331:3;6156:52:28;259:2331:3;6156:52:28;;;;259:2331:3;;6156:52:28;;;259:2331:3;-1:-1:-1;6152:437:28;;6518:60;;259:2331:3;6518:60:28;259:2331:3;;;;6518:60:28;6152:437;6250:40;811:66:41;6250:40:28;;;6246:120;;1748:29:41;;;:34;1744:119;;259:2331:3;;811:66:41;259:2331:3;;;811:66:41;259:2331:3;2407:36:41;259:2331:3;2407:36:41;;259:2331:3;;2458:15:41;:11;;259:2331:3;4049:25:48;;4091:55;4049:25;;;;;;259:2331:3;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4091:55:48;:::i;259:2331:3:-;;;4091:55:48;:::i;2454:148:41:-;6163:9;;;;6159:70;;259:2331:3;6159:70:41;6199:19;259:2331:3;6199:19:41;259:2331:3;;6199:19:41;1744:119;1805:47;259:2331:3;1805:47:41;259:2331:3;;;;1805:47:41;6246:120:28;6317:34;259:2331:3;6317:34:28;259:2331:3;;;;6317:34:28;6156:52;;;;259:2331:3;6156:52:28;;259:2331:3;6156:52:28;;;;;;259:2331:3;6156:52:28;;;:::i;:::-;;;259:2331:3;;;;;6156:52:28;;;;;;;-1:-1:-1;6156:52:28;;1868:140:79;1930:67;259:2331:3;;1930:67:79;;;259:2331:3;;1930:67:79;;520:1:77;259:2331:3;;520:1:77;;259:2331:3;520:1:77;3061:30:79;259:2331:3;;520:1:77;;;;;;1930:67:79;3061:30;;;259:2331:3;3061:30:79;;259:2331:3;3061:30:79;;;;;;259:2331:3;3061:30:79;;;:::i;:::-;;;259:2331:3;;;;;;;;;;;;;;;;;;;;;;;3061:30:79;;;;;;-1:-1:-1;3061:30:79;;4675:120:28;259:2331:3;;;811:66:41;259:2331:3;;4753:42:28;;4675:120;;;259:2331:3;;;;;-1:-1:-1;;259:2331:3;;;;;;;;;1366:28:2;259:2331:3;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;;;7864:3:2;7852:10;1469:18:80;7852:10:2;259:2331:3;;;;4178:54:80;259:2331:3;;;;;;;1469:18:80;259:2331:3;;;-1:-1:-1;259:2331:3;;;;;-1:-1:-1;259:2331:3;;7835:43:2;259:2331:3;;;;;7954:46:2;;7852:10;259:2331:3;7954:46:2;;259:2331:3;;;;;;;;;;;;;;;;;;;;;7954:46:2;:12;259:2331:3;;7954:12:2;259:2331:3;7954:46:2;;;;;;;259:2331:3;7954:46:2;;;259:2331:3;8068:35:2;;7852:10;8049:3;7852:10;;;8049:3;:::i;:::-;259:2331:3;;;7852:10:2;259:2331:3;;;;;;;;;;;;;;;;;7954:46:2;;;259:2331:3;7954:46:2;;259:2331:3;7954:46:2;;;;;;259:2331:3;7954:46:2;;;:::i;:::-;;;259:2331:3;;;;;8068:35:2;7954:46;;;;;-1:-1:-1;7954:46:2;;259:2331:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;1469:18:80;259:2331:3;;:::i;:::-;;;;;4178:54:80;259:2331:3;;;;;;;1469:18:80;259:2331:3;7218:3:2;259:2331:3;-1:-1:-1;259:2331:3;;;;;-1:-1:-1;259:2331:3;;;;;;;;;;;;;-1:-1:-1;;259:2331:3;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;259:2331:3;;;;;;;;;;;:::o;3743:195:80:-;259:2331:3;3743:195:80;;;;259:2331:3;-1:-1:-1;259:2331:3;4178:54:80;259:2331:3;;;;-1:-1:-1;259:2331:3;3893:28:80;259:2331:3;-1:-1:-1;259:2331:3;;;;-1:-1:-1;259:2331:3;;;;;;;;;;;;3743:195:80:o;4964:220:26:-;259:2331:3;;5147:30:26;4964:220;259:2331:3;;;1782:71:26;259:2331:3;;;1782:71:26;259:2331:3;;;;;;5147:30:26;4964:220::o;7084:141:27:-;259:2331:3;8837:64:27;259:2331:3;;;;7150:18:27;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:27;;-1:-1:-1;7191:17:27;4421:582:48;;4593:8;;-1:-1:-1;259:2331:3;;5674:21:48;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;259:2331:3;;4841:22:48;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;259:2331:3;4917:24:48;;4862:1;4917:24;259:2331:3;4917:24:48;259:2331:3;;4862:1:48;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"38406":[{"start":5497,"length":32},{"start":5754,"length":32}],"579":[{"start":440,"length":32},{"start":3052,"length":32},{"start":4172,"length":32},{"start":6833,"length":32},{"start":6891,"length":32},{"start":7599,"length":32}],"583":[{"start":1515,"length":32},{"start":4943,"length":32}],"587":[{"start":763,"length":32},{"start":3145,"length":32},{"start":3573,"length":32},{"start":7147,"length":32}]}},"methodIdentifiers":{"LEDGER_VAULT()":"bc23e35e","MMC()":"44dea5a7","POLICY()":"dadbccee","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","addFunds(uint256)":"be999705","authority()":"bf7e214f","getFundsBalance(address)":"2a363a90","getLedgerBalance(address,address)":"d949b844","getMaxRateLimit(address)":"01f79600","getPolicyAllocation(address,address)":"c9f196a4","getRateCounter(address)":"c61f19b2","getTerms(address,address)":"5571df93","initialize(address)":"c4d66de8","isActiveCampaign(address,address)":"5d150187","isConsumingScheduledOp()":"8fb36037","paused()":"5c975abb","proxiableUUID()":"52d1902d","removeFunds(uint256)":"2f384523","run(address,address)":"fc4dcacb","setAuthority(address)":"7a9e5e4b","setMaxRateLimit(uint256)":"d1a72b5b","setPolicyAllocation(uint256,address)":"72d2bf09","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"ledgerVault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mmc\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CampaignRun\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"FundsAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"FundsRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"MaxRateLimitSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PolicyAllocationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LEDGER_VAULT\",\"outputs\":[{\"internalType\":\"contract ILedgerVault\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MMC\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POLICY\",\"outputs\":[{\"internalType\":\"contract IPolicy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"addFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getFundsBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getLedgerBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getMaxRateLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"}],\"name\":\"getPolicyAllocation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getRateCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"}],\"name\":\"getTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocation\",\"type\":\"uint256\"}],\"internalType\":\"struct ICampaign.CampaignTerms\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"}],\"name\":\"isActiveCampaign\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"removeFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"run\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setMaxRateLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"}],\"name\":\"setPolicyAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"CampaignRun(address,address,uint256)\":{\"params\":{\"account\":\"The account receiving sponsored access.\",\"amount\":\"The amount of funds allocated during the `run`.\",\"sponsor\":\"The account sponsoring the campaign.\"}},\"FundsAdded(address,uint256)\":{\"params\":{\"account\":\"The account that added funds.\",\"amount\":\"The amount of funds added.\"}},\"FundsRemoved(address,uint256)\":{\"params\":{\"account\":\"The account that removed funds.\",\"amount\":\"The amount of funds removed.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"MaxRateLimitSet(address,uint256)\":{\"params\":{\"account\":\"The account whose rate limit was set.\",\"limit\":\"The new maximum rate limit.\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"PolicyAllocationSet(address,address,uint256)\":{\"params\":{\"account\":\"The account allocating the funds.\",\"amount\":\"The amount of funds allocated.\",\"broker\":\"The broker authorized to use the allocated funds.\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"addFunds(uint256)\":{\"params\":{\"amount\":\"The amount of funds to add.\"}},\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getFundsBalance(address)\":{\"params\":{\"account\":\"The account whose funds balance is being queried.\"},\"returns\":{\"_0\":\"The current funds balance of the specified account.\"}},\"getLedgerBalance(address,address)\":{\"params\":{\"account\":\"The address of the account whose balance is being queried.\",\"currency\":\"The address of the currency to retrieve the balance for.\"}},\"getMaxRateLimit(address)\":{\"params\":{\"account\":\"The account whose maximum rate limit is being queried.\"},\"returns\":{\"_0\":\"The maximum rate limit for the specified account.\"}},\"getPolicyAllocation(address,address)\":{\"params\":{\"account\":\"The account providing the allocation.\",\"broker\":\"The broker managing the allocated funds.\"},\"returns\":{\"_0\":\"The allocated funds for the specified broker.\"}},\"getRateCounter(address)\":{\"params\":{\"account\":\"The account to retrieve the counter for.\"},\"returns\":{\"_0\":\"The current value of the sponsored access counter for the account.\"}},\"getTerms(address,address)\":{\"details\":\"Combines allocation and policy details to calculate the duration and allocation of the campaign. Uses `SubscriptionOps` to compute the duration based on the allocated funds and the policy's terms.\",\"params\":{\"account\":\"The address of the campaign owner or sponsor.\",\"broker\":\"The address of the broker managing the campaign.\"},\"returns\":{\"_0\":\"A `CampaignTerms` struct containing the calculated duration and the allocated amount.\"}},\"initialize(address)\":{\"params\":{\"accessManager\":\"The address of the access manager.\"}},\"isActiveCampaign(address,address)\":{\"details\":\"A campaign is considered active if: 1. The account has a non-zero rate limit (can sponsor accesses). 2. There is an allocated amount of funds for the specified broker.\",\"params\":{\"account\":\"The address of the account sponsoring the campaign.\",\"broker\":\"The address of the broker managing the campaign.\"},\"returns\":{\"_0\":\"True if the campaign is active for the given account and broker, otherwise false.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"removeFunds(uint256)\":{\"params\":{\"amount\":\"The amount of funds to remove.\"}},\"run(address,address)\":{\"details\":\"Ensures proper allocation and rate limits during the execution: 1. Verifies the account has a valid allocation set for the broker. 2. Confirms the account has sufficient funds in the campaign. 3. Checks that the rate limit for the account has not been exceeded.\",\"params\":{\"account\":\"The account receiving the sponsored access.\",\"sponsor\":\"The account sponsoring the campaign.\"},\"returns\":{\"_0\":\"The amount of funds allocated during the `run`.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"setMaxRateLimit(uint256)\":{\"details\":\"The rate limit determines the maximum number of accesses an account can sponsor.\",\"params\":{\"limit\":\"The maximum number of sponsored accesses allowed.\"}},\"setPolicyAllocation(uint256,address)\":{\"details\":\"The allocation represents the funds that can be utilized by the specified broker for each `run` of the campaign.\",\"params\":{\"amount\":\"The amount of funds to allocate per `run`.\",\"broker\":\"The broker authorized to operate over the allocated funds.\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"events\":{\"CampaignRun(address,address,uint256)\":{\"notice\":\"Emitted when a campaign `run` is executed.\"},\"FundsAdded(address,uint256)\":{\"notice\":\"Emitted when funds are added to a campaign.\"},\"FundsRemoved(address,uint256)\":{\"notice\":\"Emitted when funds are removed from a campaign.\"},\"MaxRateLimitSet(address,uint256)\":{\"notice\":\"Emitted when the maximum rate limit is set for an account.\"},\"PolicyAllocationSet(address,address,uint256)\":{\"notice\":\"Emitted when funds are allocated to a broker for a campaign.\"}},\"kind\":\"user\",\"methods\":{\"addFunds(uint256)\":{\"notice\":\"Adds funds to the campaign's balance.\"},\"getFundsBalance(address)\":{\"notice\":\"Retrieves the current balance of funds for a specific account in the campaign.\"},\"getLedgerBalance(address,address)\":{\"notice\":\"Retrieves the ledger balance of an account for a specific currency.\"},\"getMaxRateLimit(address)\":{\"notice\":\"Retrieves the maximum rate limit for a specific account.\"},\"getPolicyAllocation(address,address)\":{\"notice\":\"Retrieves the allocated funds for a specific broker.\"},\"getRateCounter(address)\":{\"notice\":\"Retrieves the current rate counter for an account.\"},\"getTerms(address,address)\":{\"notice\":\"Retrieves the terms of the campaign for a specific account and broker.\"},\"initialize(address)\":{\"notice\":\"Initializes the contract state.\"},\"isActiveCampaign(address,address)\":{\"notice\":\"Checks if a campaign is active for a specific account and broker.\"},\"removeFunds(uint256)\":{\"notice\":\"Removes funds from the campaign's balance.\"},\"run(address,address)\":{\"notice\":\"Executes a campaign run for the implicit policy and a given account.\"},\"setMaxRateLimit(uint256)\":{\"notice\":\"Sets the maximum rate limit for an account within the campaign.\"},\"setPolicyAllocation(uint256,address)\":{\"notice\":\"Allocates a specific amount of funds to a broker for the campaign.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/campaigns/SubscriptionCampaign.sol\":\"SubscriptionCampaign\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/incentives/BaseCampaign.sol\":{\"keccak256\":\"0x692d1a455899511c8049fffcf5f15c81f12827be6d96b6e5cc3a235dbaba7254\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c38712e05a7b0a2e8d64ad74b538461dfcb9e9dc3241edc6e78b2e65d984017d\",\"dweb:/ipfs/QmRE21Cv1cNQWdhypVia2fRgT4VbY6uxc9nqTL1YkEGduY\"]},\"contracts/incentives/campaigns/SubscriptionCampaign.sol\":{\"keccak256\":\"0xf9ae9c96ef54231fb62ee7ac9782893834f6c048e39c3ad009d5ac639eec1c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf66f657a5e2f6cf557317bc3c070aed439ef4c75f160618d9135d01474ea219\",\"dweb:/ipfs/QmZgDTPUNysomoMthQxCBEpTwrpHfSDF9kU56DSg3xqqDF\"]},\"contracts/interfaces/ICampaign.sol\":{\"keccak256\":\"0xd9ff53705930b65525ba4e3ec492e1e7d8910c413b397e379e2bff461fdf83b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd563bb0718b3f3c18411eb8bf602334f9dc534c05778f2e08ee9a4101f4a0e\",\"dweb:/ipfs/QmdmsCVDt583SGRDGQ9TEZKqPHWQmWGjdEWsuzFF3Y69eE\"]},\"contracts/libraries/SubscriptionOps.sol\":{\"keccak256\":\"0x336723c37916eda47d13cb6e411001502392094d5270cedbdf55bbce6144fb0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02cb7afef21bda5b092415880631c6f66dd80a58bb79490fffd30619530106da\",\"dweb:/ipfs/QmNcaC2rSbsoUFMCBLVf4jJo6FUwwcvhATReFo4wHAzycL\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0x92915b7f7f642c6be3f65bfd1522feb5d5b6ef25f755f4dbb51df32c868f2f97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ad36d5cc7e190e1ee6c94b24659bc3a31396c4c36b6ffa6a509e10661f8007\",\"dweb:/ipfs/QmPFyc4zMh2zo6YWZt25gjm3YdR2hg6wGETaWw256fMmJJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceDepositor.sol\":{\"keccak256\":\"0x5c52b09eb3ef3b077d02c9a989624b2dc1e2a00f026b65a04b6bc67206c751d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945732e1b234e80dee53dfd566862640bba93e6bdc360637c9dc2e1446757d2\",\"dweb:/ipfs/QmRGnSxbbDBFDcJiNkKyAj1K8Y88PbLub13Pf6jiWmT4Vn\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceOperator.sol\":{\"keccak256\":\"0x94b8021077fda947be77dca350159a846dd170c209d2e4c03a6408bc02a618b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://470dacfc789e4b343df87d1b2b425645e81a86b7ebb05c2b5e7ec2874b748d2b\",\"dweb:/ipfs/Qmc6Bq66WqoPJVTyBz8qkNyPqbv3T8mwvCu2qvRUnnXp3E\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceReservable.sol\":{\"keccak256\":\"0x6075948216be9acd214a2ee9d3829b09e3111c9ad7cd9f18d2331a3c5eee1e66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0580f9012407ab503876a89009d3433f19ac46c5404d3bf7c66402cd4547faf\",\"dweb:/ipfs/QmXXqnZwa79sfcyg8TWZvmacJi5xWerZtLogx7xRX7NZYM\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceTransferable.sol\":{\"keccak256\":\"0xdcb1692753e9135b5c49d40440775e968bdbb3a252a478ae5d28a28fde056d6d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96c105c028d21f0da352fa0183d15a06a48c260cbccbafd7b14aab5c75f40002\",\"dweb:/ipfs/QmP7JTwgssyNwXaLrP5NKS87k6FyygLCgMxmT6ViRYG6DA\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceVerifiable.sol\":{\"keccak256\":\"0xe14a3a0d0f0355f8a0cc62f4292e38d041c5ef67d39f090d140562886fb08c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a48c127e7ef1edd636d33cc8d892ec30d92066357a7d0a36b73d27d294ad8e40\",\"dweb:/ipfs/QmWaMMg9kqJhjoD48tuzbVTwR3YjkRt7tuxY88uLNCS4vw\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceWithdrawable.sol\":{\"keccak256\":\"0xb2ab22b87042718088b74144150c1614ccffa80e0e80b95604e22df1059e7f0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a7a437e48bae6154cd61e3beeff2af3a4d7db0901c645f9159f817dec489696\",\"dweb:/ipfs/QmVv2Z25o87QKVbcgnmM4WjB1NsUohXmSUgwUxPFnhi72X\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/ILedgerVerifiable.sol\":{\"keccak256\":\"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd\",\"dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/financial/ILedgerVault.sol\":{\"keccak256\":\"0xd199c9ac6cb88bf2db139e9cd0c058572f8fcde9211e65d3d2e75306282265e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39ba49cf61ae771d670c7ca7c92978998645044bac269d64ff719353d11e46c3\",\"dweb:/ipfs/QmSy5naHwxWhPmHzz64sphH5Ra1fRxav7XuzeT6wE7cTig\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0x6bb2e4f5f93d957e5fc351e98155c0c038da3a31dd125e22e06f8cca0d0aa332\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0cb7da10029a309b52c9df25d9d59c3e0404faa156716d0805d540d0a3518915\",\"dweb:/ipfs/QmXgxHWuaQXRnBgAPiPA4hkWcHpcwLgg4d672gTkP793fd\"]},\"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0xe1ee6dd03e1bf5fb8c7a8e955cb5bd897a14dbc30fd8e6ba6c1812497e4eb894\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://129bc7a13b1cbdcb70cd69c2cae8b2c247655b7c631182834edc8d9cb48d09d5\",\"dweb:/ipfs/QmbasykknjmDwKhEBnojEHYEHjMmTFSxyfWFHj92FYtTeM\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x9c0dbb09ad90b98817849666e45a70c371676cbe187709f76021bfd6f7d0bb57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb5dafd14005606dd486c8ea5aea374160a59224c03b9687a504360f1c5d190a\",\"dweb:/ipfs/QmVvn3SLREtxwehgxkGg1QE1eMw5QRk5R6kG8qyGujbCTf\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0x5d99ec9405886a20eeff6ea243c1d94b5994a474338b866d74ffa9bbfa9473f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1de4b84ddb631eee3d1eb0f921f0d0d20be3f6e808b8b2a21082436816884095\",\"dweb:/ipfs/QmaKZ938AabVXewdFBVtV8SFD4eWJq59AsdoV3aBMY7cmB\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/LedgerUpgradeable.sol\":{\"keccak256\":\"0x2e51d076c533c1161e843e808db34e7f774b9acdb61e6c83dbeda6fe07920c2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4482e61cfc721dc96e1ef47f56010ad0f37c225949609bba0f03c406a8ac0c2\",\"dweb:/ipfs/QmdSXpbPbrXFDUr4sHQ6BJeRUGWq2EpoCiiS8APxFeYysX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"ledgerVault","type":"address"},{"internalType":"address","name":"mmc","type":"address"},{"internalType":"address","name":"policy","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"sponsor","type":"address","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"CampaignRun","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"FundsAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"FundsRemoved","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"MaxRateLimitSet","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"broker","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"PolicyAllocationSet","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"LEDGER_VAULT","outputs":[{"internalType":"contract ILedgerVault","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MMC","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POLICY","outputs":[{"internalType":"contract IPolicy","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addFunds"},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getFundsBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"view","type":"function","name":"getLedgerBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getMaxRateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"broker","type":"address"}],"stateMutability":"view","type":"function","name":"getPolicyAllocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getRateCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"broker","type":"address"}],"stateMutability":"view","type":"function","name":"getTerms","outputs":[{"internalType":"struct ICampaign.CampaignTerms","name":"","type":"tuple","components":[{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"allocation","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"broker","type":"address"}],"stateMutability":"view","type":"function","name":"isActiveCampaign","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeFunds"},{"inputs":[{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"run","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxRateLimit"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"broker","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPolicyAllocation"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"addFunds(uint256)":{"params":{"amount":"The amount of funds to add."}},"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getFundsBalance(address)":{"params":{"account":"The account whose funds balance is being queried."},"returns":{"_0":"The current funds balance of the specified account."}},"getLedgerBalance(address,address)":{"params":{"account":"The address of the account whose balance is being queried.","currency":"The address of the currency to retrieve the balance for."}},"getMaxRateLimit(address)":{"params":{"account":"The account whose maximum rate limit is being queried."},"returns":{"_0":"The maximum rate limit for the specified account."}},"getPolicyAllocation(address,address)":{"params":{"account":"The account providing the allocation.","broker":"The broker managing the allocated funds."},"returns":{"_0":"The allocated funds for the specified broker."}},"getRateCounter(address)":{"params":{"account":"The account to retrieve the counter for."},"returns":{"_0":"The current value of the sponsored access counter for the account."}},"getTerms(address,address)":{"details":"Combines allocation and policy details to calculate the duration and allocation of the campaign. Uses `SubscriptionOps` to compute the duration based on the allocated funds and the policy's terms.","params":{"account":"The address of the campaign owner or sponsor.","broker":"The address of the broker managing the campaign."},"returns":{"_0":"A `CampaignTerms` struct containing the calculated duration and the allocated amount."}},"initialize(address)":{"params":{"accessManager":"The address of the access manager."}},"isActiveCampaign(address,address)":{"details":"A campaign is considered active if: 1. The account has a non-zero rate limit (can sponsor accesses). 2. There is an allocated amount of funds for the specified broker.","params":{"account":"The address of the account sponsoring the campaign.","broker":"The address of the broker managing the campaign."},"returns":{"_0":"True if the campaign is active for the given account and broker, otherwise false."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"removeFunds(uint256)":{"params":{"amount":"The amount of funds to remove."}},"run(address,address)":{"details":"Ensures proper allocation and rate limits during the execution: 1. Verifies the account has a valid allocation set for the broker. 2. Confirms the account has sufficient funds in the campaign. 3. Checks that the rate limit for the account has not been exceeded.","params":{"account":"The account receiving the sponsored access.","sponsor":"The account sponsoring the campaign."},"returns":{"_0":"The amount of funds allocated during the `run`."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"setMaxRateLimit(uint256)":{"details":"The rate limit determines the maximum number of accesses an account can sponsor.","params":{"limit":"The maximum number of sponsored accesses allowed."}},"setPolicyAllocation(uint256,address)":{"details":"The allocation represents the funds that can be utilized by the specified broker for each `run` of the campaign.","params":{"amount":"The amount of funds to allocate per `run`.","broker":"The broker authorized to operate over the allocated funds."}},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"addFunds(uint256)":{"notice":"Adds funds to the campaign's balance."},"getFundsBalance(address)":{"notice":"Retrieves the current balance of funds for a specific account in the campaign."},"getLedgerBalance(address,address)":{"notice":"Retrieves the ledger balance of an account for a specific currency."},"getMaxRateLimit(address)":{"notice":"Retrieves the maximum rate limit for a specific account."},"getPolicyAllocation(address,address)":{"notice":"Retrieves the allocated funds for a specific broker."},"getRateCounter(address)":{"notice":"Retrieves the current rate counter for an account."},"getTerms(address,address)":{"notice":"Retrieves the terms of the campaign for a specific account and broker."},"initialize(address)":{"notice":"Initializes the contract state."},"isActiveCampaign(address,address)":{"notice":"Checks if a campaign is active for a specific account and broker."},"removeFunds(uint256)":{"notice":"Removes funds from the campaign's balance."},"run(address,address)":{"notice":"Executes a campaign run for the implicit policy and a given account."},"setMaxRateLimit(uint256)":{"notice":"Sets the maximum rate limit for an account within the campaign."},"setPolicyAllocation(uint256,address)":{"notice":"Allocates a specific amount of funds to a broker for the campaign."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/incentives/campaigns/SubscriptionCampaign.sol":"SubscriptionCampaign"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/incentives/BaseCampaign.sol":{"keccak256":"0x692d1a455899511c8049fffcf5f15c81f12827be6d96b6e5cc3a235dbaba7254","urls":["bzz-raw://c38712e05a7b0a2e8d64ad74b538461dfcb9e9dc3241edc6e78b2e65d984017d","dweb:/ipfs/QmRE21Cv1cNQWdhypVia2fRgT4VbY6uxc9nqTL1YkEGduY"],"license":"MIT"},"contracts/incentives/campaigns/SubscriptionCampaign.sol":{"keccak256":"0xf9ae9c96ef54231fb62ee7ac9782893834f6c048e39c3ad009d5ac639eec1c57","urls":["bzz-raw://cf66f657a5e2f6cf557317bc3c070aed439ef4c75f160618d9135d01474ea219","dweb:/ipfs/QmZgDTPUNysomoMthQxCBEpTwrpHfSDF9kU56DSg3xqqDF"],"license":"MIT"},"contracts/interfaces/ICampaign.sol":{"keccak256":"0xd9ff53705930b65525ba4e3ec492e1e7d8910c413b397e379e2bff461fdf83b1","urls":["bzz-raw://ddd563bb0718b3f3c18411eb8bf602334f9dc534c05778f2e08ee9a4101f4a0e","dweb:/ipfs/QmdmsCVDt583SGRDGQ9TEZKqPHWQmWGjdEWsuzFF3Y69eE"],"license":"MIT"},"contracts/libraries/SubscriptionOps.sol":{"keccak256":"0x336723c37916eda47d13cb6e411001502392094d5270cedbdf55bbce6144fb0d","urls":["bzz-raw://02cb7afef21bda5b092415880631c6f66dd80a58bb79490fffd30619530106da","dweb:/ipfs/QmNcaC2rSbsoUFMCBLVf4jJo6FUwwcvhATReFo4wHAzycL"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol":{"keccak256":"0x92915b7f7f642c6be3f65bfd1522feb5d5b6ef25f755f4dbb51df32c868f2f97","urls":["bzz-raw://85ad36d5cc7e190e1ee6c94b24659bc3a31396c4c36b6ffa6a509e10661f8007","dweb:/ipfs/QmPFyc4zMh2zo6YWZt25gjm3YdR2hg6wGETaWw256fMmJJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceDepositor.sol":{"keccak256":"0x5c52b09eb3ef3b077d02c9a989624b2dc1e2a00f026b65a04b6bc67206c751d8","urls":["bzz-raw://0945732e1b234e80dee53dfd566862640bba93e6bdc360637c9dc2e1446757d2","dweb:/ipfs/QmRGnSxbbDBFDcJiNkKyAj1K8Y88PbLub13Pf6jiWmT4Vn"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceOperator.sol":{"keccak256":"0x94b8021077fda947be77dca350159a846dd170c209d2e4c03a6408bc02a618b0","urls":["bzz-raw://470dacfc789e4b343df87d1b2b425645e81a86b7ebb05c2b5e7ec2874b748d2b","dweb:/ipfs/Qmc6Bq66WqoPJVTyBz8qkNyPqbv3T8mwvCu2qvRUnnXp3E"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceReservable.sol":{"keccak256":"0x6075948216be9acd214a2ee9d3829b09e3111c9ad7cd9f18d2331a3c5eee1e66","urls":["bzz-raw://f0580f9012407ab503876a89009d3433f19ac46c5404d3bf7c66402cd4547faf","dweb:/ipfs/QmXXqnZwa79sfcyg8TWZvmacJi5xWerZtLogx7xRX7NZYM"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceTransferable.sol":{"keccak256":"0xdcb1692753e9135b5c49d40440775e968bdbb3a252a478ae5d28a28fde056d6d","urls":["bzz-raw://96c105c028d21f0da352fa0183d15a06a48c260cbccbafd7b14aab5c75f40002","dweb:/ipfs/QmP7JTwgssyNwXaLrP5NKS87k6FyygLCgMxmT6ViRYG6DA"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceVerifiable.sol":{"keccak256":"0xe14a3a0d0f0355f8a0cc62f4292e38d041c5ef67d39f090d140562886fb08c80","urls":["bzz-raw://a48c127e7ef1edd636d33cc8d892ec30d92066357a7d0a36b73d27d294ad8e40","dweb:/ipfs/QmWaMMg9kqJhjoD48tuzbVTwR3YjkRt7tuxY88uLNCS4vw"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IBalanceWithdrawable.sol":{"keccak256":"0xb2ab22b87042718088b74144150c1614ccffa80e0e80b95604e22df1059e7f0b","urls":["bzz-raw://1a7a437e48bae6154cd61e3beeff2af3a4d7db0901c645f9159f817dec489696","dweb:/ipfs/QmVv2Z25o87QKVbcgnmM4WjB1NsUohXmSUgwUxPFnhi72X"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/ILedgerVerifiable.sol":{"keccak256":"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95","urls":["bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd","dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/financial/ILedgerVault.sol":{"keccak256":"0xd199c9ac6cb88bf2db139e9cd0c058572f8fcde9211e65d3d2e75306282265e4","urls":["bzz-raw://39ba49cf61ae771d670c7ca7c92978998645044bac269d64ff719353d11e46c3","dweb:/ipfs/QmSy5naHwxWhPmHzz64sphH5Ra1fRxav7XuzeT6wE7cTig"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0x6bb2e4f5f93d957e5fc351e98155c0c038da3a31dd125e22e06f8cca0d0aa332","urls":["bzz-raw://0cb7da10029a309b52c9df25d9d59c3e0404faa156716d0805d540d0a3518915","dweb:/ipfs/QmXgxHWuaQXRnBgAPiPA4hkWcHpcwLgg4d672gTkP793fd"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol":{"keccak256":"0xe1ee6dd03e1bf5fb8c7a8e955cb5bd897a14dbc30fd8e6ba6c1812497e4eb894","urls":["bzz-raw://129bc7a13b1cbdcb70cd69c2cae8b2c247655b7c631182834edc8d9cb48d09d5","dweb:/ipfs/QmbasykknjmDwKhEBnojEHYEHjMmTFSxyfWFHj92FYtTeM"],"license":"GPL-3.0-or-later"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x9c0dbb09ad90b98817849666e45a70c371676cbe187709f76021bfd6f7d0bb57","urls":["bzz-raw://fb5dafd14005606dd486c8ea5aea374160a59224c03b9687a504360f1c5d190a","dweb:/ipfs/QmVvn3SLREtxwehgxkGg1QE1eMw5QRk5R6kG8qyGujbCTf"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0x5d99ec9405886a20eeff6ea243c1d94b5994a474338b866d74ffa9bbfa9473f0","urls":["bzz-raw://1de4b84ddb631eee3d1eb0f921f0d0d20be3f6e808b8b2a21082436816884095","dweb:/ipfs/QmaKZ938AabVXewdFBVtV8SFD4eWJq59AsdoV3aBMY7cmB"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/LedgerUpgradeable.sol":{"keccak256":"0x2e51d076c533c1161e843e808db34e7f774b9acdb61e6c83dbeda6fe07920c2a","urls":["bzz-raw://a4482e61cfc721dc96e1ef47f56010ad0f37c225949609bba0f03c406a8ac0c2","dweb:/ipfs/QmdSXpbPbrXFDUr4sHQ6BJeRUGWq2EpoCiiS8APxFeYysX"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":592,"contract":"contracts/incentives/campaigns/SubscriptionCampaign.sol:SubscriptionCampaign","label":"_rateLimits","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":597,"contract":"contracts/incentives/campaigns/SubscriptionCampaign.sol:SubscriptionCampaign","label":"_rateCounter","offset":0,"slot":"1","type":"t_mapping(t_address,t_uint256)"},{"astId":604,"contract":"contracts/incentives/campaigns/SubscriptionCampaign.sol:SubscriptionCampaign","label":"_allocation","offset":0,"slot":"2","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/incentives/campaigns/SubscriptionCampaign.sol","id":1197,"exportedSymbols":{"BaseCampaign":[1082],"SubscriptionCampaign":[1196],"SubscriptionOps":[1271],"T":[46377]},"nodeType":"SourceUnit","src":"32:2559:3","nodes":[{"id":1084,"nodeType":"PragmaDirective","src":"32:23:3","nodes":[],"literals":["solidity","0.8",".26"]},{"id":1086,"nodeType":"ImportDirective","src":"57:69:3","nodes":[],"absolutePath":"contracts/incentives/BaseCampaign.sol","file":"contracts/incentives/BaseCampaign.sol","nameLocation":"-1:-1:-1","scope":1197,"sourceUnit":1083,"symbolAliases":[{"foreign":{"id":1085,"name":"BaseCampaign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1082,"src":"66:12:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1088,"nodeType":"ImportDirective","src":"127:74:3","nodes":[],"absolutePath":"contracts/libraries/SubscriptionOps.sol","file":"contracts/libraries/SubscriptionOps.sol","nameLocation":"-1:-1:-1","scope":1197,"sourceUnit":1272,"symbolAliases":[{"foreign":{"id":1087,"name":"SubscriptionOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1271,"src":"136:15:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1090,"nodeType":"ImportDirective","src":"202:55:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":1197,"sourceUnit":46378,"symbolAliases":[{"foreign":{"id":1089,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46377,"src":"211:1:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1196,"nodeType":"ContractDefinition","src":"259:2331:3","nodes":[{"id":1095,"nodeType":"UsingForDirective","src":"311:34:3","nodes":[],"global":false,"libraryName":{"id":1093,"name":"SubscriptionOps","nameLocations":["317:15:3"],"nodeType":"IdentifierPath","referencedDeclaration":1271,"src":"317:15:3"},"typeName":{"id":1094,"name":"uint256","nodeType":"ElementaryTypeName","src":"337:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":1111,"nodeType":"FunctionDefinition","src":"404:103:3","nodes":[],"body":{"id":1110,"nodeType":"Block","src":"505:2:3","nodes":[],"statements":[]},"documentation":{"id":1096,"nodeType":"StructuredDocumentation","src":"351:48:3","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":1105,"name":"ledgerVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1098,"src":"479:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1106,"name":"mmc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1100,"src":"492:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1107,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1102,"src":"497:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1108,"kind":"baseConstructorSpecifier","modifierName":{"id":1104,"name":"BaseCampaign","nameLocations":["466:12:3"],"nodeType":"IdentifierPath","referencedDeclaration":1082,"src":"466:12:3"},"nodeType":"ModifierInvocation","src":"466:38:3"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":1103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1098,"mutability":"mutable","name":"ledgerVault","nameLocation":"424:11:3","nodeType":"VariableDeclaration","scope":1111,"src":"416:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1097,"name":"address","nodeType":"ElementaryTypeName","src":"416:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1100,"mutability":"mutable","name":"mmc","nameLocation":"445:3:3","nodeType":"VariableDeclaration","scope":1111,"src":"437:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1099,"name":"address","nodeType":"ElementaryTypeName","src":"437:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1102,"mutability":"mutable","name":"policy","nameLocation":"458:6:3","nodeType":"VariableDeclaration","scope":1111,"src":"450:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1101,"name":"address","nodeType":"ElementaryTypeName","src":"450:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"415:50:3"},"returnParameters":{"id":1109,"nodeType":"ParameterList","parameters":[],"src":"505:0:3"},"scope":1196,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1133,"nodeType":"FunctionDefinition","src":"625:203:3","nodes":[],"body":{"id":1132,"nodeType":"Block","src":"687:141:3","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1119,"name":"__Ledger_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46559,"src":"697:13:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"697:15:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1121,"nodeType":"ExpressionStatement","src":"697:15:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1122,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38666,"src":"722:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"722:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1124,"nodeType":"ExpressionStatement","src":"722:17:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1125,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38440,"src":"749:22:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"749:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1127,"nodeType":"ExpressionStatement","src":"749:24:3"},{"expression":{"arguments":[{"id":1129,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1114,"src":"807:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1128,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46440,"src":"783:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"783:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1131,"nodeType":"ExpressionStatement","src":"783:38:3"}]},"documentation":{"id":1112,"nodeType":"StructuredDocumentation","src":"513:107:3","text":"@notice Initializes the contract state.\n @param accessManager The address of the access manager."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":1117,"kind":"modifierInvocation","modifierName":{"id":1116,"name":"initializer","nameLocations":["675:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":38240,"src":"675:11:3"},"nodeType":"ModifierInvocation","src":"675:11:3"}],"name":"initialize","nameLocation":"634:10:3","parameters":{"id":1115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1114,"mutability":"mutable","name":"accessManager","nameLocation":"653:13:3","nodeType":"VariableDeclaration","scope":1133,"src":"645:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1113,"name":"address","nodeType":"ElementaryTypeName","src":"645:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"644:23:3"},"returnParameters":{"id":1118,"nodeType":"ParameterList","parameters":[],"src":"687:0:3"},"scope":1196,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1185,"nodeType":"FunctionDefinition","src":"1386:814:3","nodes":[],"body":{"id":1184,"nodeType":"Block","src":"1482:718:3","nodes":[],"statements":[{"assignments":[1145],"declarations":[{"constant":false,"id":1145,"mutability":"mutable","name":"holder","nameLocation":"1505:6:3","nodeType":"VariableDeclaration","scope":1184,"src":"1492:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1144,"name":"bytes","nodeType":"ElementaryTypeName","src":"1492:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1150,"initialValue":{"arguments":[{"id":1148,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1136,"src":"1525:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1146,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1514:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1518:6:3","memberName":"encode","nodeType":"MemberAccess","src":"1514:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1514:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1492:41:3"},{"assignments":[1155],"declarations":[{"constant":false,"id":1155,"mutability":"mutable","name":"terms","nameLocation":"1621:5:3","nodeType":"VariableDeclaration","scope":1184,"src":"1606:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$46366_memory_ptr","typeString":"struct T.Terms"},"typeName":{"id":1154,"nodeType":"UserDefinedTypeName","pathNode":{"id":1153,"name":"T.Terms","nameLocations":["1606:1:3","1608:5:3"],"nodeType":"IdentifierPath","referencedDeclaration":46366,"src":"1606:7:3"},"referencedDeclaration":46366,"src":"1606:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$46366_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"id":1160,"initialValue":{"arguments":[{"id":1158,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"1649:6:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1156,"name":"POLICY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":583,"src":"1629:6:3","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$45471","typeString":"contract IPolicy"}},"id":1157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1636:12:3","memberName":"resolveTerms","nodeType":"MemberAccess","referencedDeclaration":45464,"src":"1629:19:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes_memory_ptr_$returns$_t_struct$_Terms_$46366_memory_ptr_$","typeString":"function (bytes memory) view external returns (struct T.Terms memory)"}},"id":1159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1629:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$46366_memory_ptr","typeString":"struct T.Terms memory"}},"nodeType":"VariableDeclarationStatement","src":"1606:50:3"},{"assignments":[1162],"declarations":[{"constant":false,"id":1162,"mutability":"mutable","name":"allocatedAmount","nameLocation":"1800:15:3","nodeType":"VariableDeclaration","scope":1184,"src":"1792:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1161,"name":"uint256","nodeType":"ElementaryTypeName","src":"1792:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1167,"initialValue":{"arguments":[{"id":1164,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1136,"src":"1833:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1165,"name":"broker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1138,"src":"1842:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1163,"name":"_getAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1006,"src":"1818:14:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1818:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1792:57:3"},{"assignments":[1169,1171],"declarations":[{"constant":false,"id":1169,"mutability":"mutable","name":"duration","nameLocation":"1985:8:3","nodeType":"VariableDeclaration","scope":1184,"src":"1977:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1168,"name":"uint256","nodeType":"ElementaryTypeName","src":"1977:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1171,"mutability":"mutable","name":"total","nameLocation":"2003:5:3","nodeType":"VariableDeclaration","scope":1184,"src":"1995:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1170,"name":"uint256","nodeType":"ElementaryTypeName","src":"1995:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1178,"initialValue":{"arguments":[{"expression":{"id":1174,"name":"terms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1155,"src":"2041:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$46366_memory_ptr","typeString":"struct T.Terms memory"}},"id":1175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2047:6:3","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":46358,"src":"2041:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2055:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":1172,"name":"allocatedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1162,"src":"2012:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2028:12:3","memberName":"calcDuration","nodeType":"MemberAccess","referencedDeclaration":1270,"src":"2012:28:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":1177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2012:45:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1976:81:3"},{"expression":{"arguments":[{"id":1180,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1169,"src":"2177:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1181,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1171,"src":"2187:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1179,"name":"CampaignTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"2163:13:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CampaignTerms_$1205_storage_ptr_$","typeString":"type(struct ICampaign.CampaignTerms storage pointer)"}},"id":1182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2163:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CampaignTerms_$1205_memory_ptr","typeString":"struct ICampaign.CampaignTerms memory"}},"functionReturnParameters":1143,"id":1183,"nodeType":"Return","src":"2156:37:3"}]},"baseFunctions":[1226],"documentation":{"id":1134,"nodeType":"StructuredDocumentation","src":"834:547:3","text":"@notice Retrieves the terms of the campaign for a specific account and broker.\n @dev Combines allocation and policy details to calculate the duration and allocation of the campaign.\n Uses `SubscriptionOps` to compute the duration based on the allocated funds and the policy's terms.\n @param account The address of the campaign owner or sponsor.\n @param broker The address of the broker managing the campaign.\n @return A `CampaignTerms` struct containing the calculated duration and the allocated amount."},"functionSelector":"5571df93","implemented":true,"kind":"function","modifiers":[],"name":"getTerms","nameLocation":"1395:8:3","parameters":{"id":1139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1136,"mutability":"mutable","name":"account","nameLocation":"1412:7:3","nodeType":"VariableDeclaration","scope":1185,"src":"1404:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1135,"name":"address","nodeType":"ElementaryTypeName","src":"1404:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1138,"mutability":"mutable","name":"broker","nameLocation":"1429:6:3","nodeType":"VariableDeclaration","scope":1185,"src":"1421:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1137,"name":"address","nodeType":"ElementaryTypeName","src":"1421:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1403:33:3"},"returnParameters":{"id":1143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1185,"src":"1460:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CampaignTerms_$1205_memory_ptr","typeString":"struct ICampaign.CampaignTerms"},"typeName":{"id":1141,"nodeType":"UserDefinedTypeName","pathNode":{"id":1140,"name":"CampaignTerms","nameLocations":["1460:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":1205,"src":"1460:13:3"},"referencedDeclaration":1205,"src":"1460:13:3","typeDescriptions":{"typeIdentifier":"t_struct$_CampaignTerms_$1205_storage_ptr","typeString":"struct ICampaign.CampaignTerms"}},"visibility":"internal"}],"src":"1459:22:3"},"scope":1196,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1195,"nodeType":"FunctionDefinition","src":"2504:84:3","nodes":[],"body":{"id":1194,"nodeType":"Block","src":"2586:2:3","nodes":[],"statements":[]},"baseFunctions":[38522],"documentation":{"id":1186,"nodeType":"StructuredDocumentation","src":"2206:293:3","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":1192,"kind":"modifierInvocation","modifierName":{"id":1191,"name":"onlyAdmin","nameLocations":["2576:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":46423,"src":"2576:9:3"},"nodeType":"ModifierInvocation","src":"2576:9:3"}],"name":"_authorizeUpgrade","nameLocation":"2513:17:3","overrides":{"id":1190,"nodeType":"OverrideSpecifier","overrides":[],"src":"2567:8:3"},"parameters":{"id":1189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1188,"mutability":"mutable","name":"newImplementation","nameLocation":"2539:17:3","nodeType":"VariableDeclaration","scope":1195,"src":"2531:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1187,"name":"address","nodeType":"ElementaryTypeName","src":"2531:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2530:27:3"},"returnParameters":{"id":1193,"nodeType":"ParameterList","parameters":[],"src":"2586:0:3"},"scope":1196,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":1091,"name":"BaseCampaign","nameLocations":["292:12:3"],"nodeType":"IdentifierPath","referencedDeclaration":1082,"src":"292:12:3"},"id":1092,"nodeType":"InheritanceSpecifier","src":"292:12:3"}],"canonicalName":"SubscriptionCampaign","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[1196,1082,1227,46505,38132,38912,38790,38614,46657,45354,38568,39481,38386],"name":"SubscriptionCampaign","nameLocation":"268:20:3","scope":1197,"usedErrors":[38149,38152,38413,38418,38653,38656,38883,38889,38893,39539,39552,40503,40765,46405],"usedEvents":[611,618,625,634,643,38157,38645,38650,38879,39454]}],"license":"MIT"},"id":3} \ No newline at end of file diff --git a/src/config/abi/SubscriptionPolicy.json b/src/config/abi/SubscriptionPolicy.json index b4b5d84e..4b8501bb 100644 --- a/src/config/abi/SubscriptionPolicy.json +++ b/src/config/abi/SubscriptionPolicy.json @@ -1,4926 +1 @@ -{ - "abi": [ - { - "type": "constructor", - "inputs": [ - { "name": "rightPolicyManagerAddress", "type": "address", "internalType": "address" }, - { "name": "ownershipAddress", "type": "address", "internalType": "address" }, - { "name": "providerAddress", "type": "address", "internalType": "address" } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "ASSET_OWNERSHIP", - "inputs": [], - "outputs": [{ "name": "", "type": "address", "internalType": "contract IAssetOwnership" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "ATTESTATION_PROVIDER", - "inputs": [], - "outputs": [ - { "name": "", "type": "address", "internalType": "contract IAttestationProvider" } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "RIGHTS_POLICY_MANAGER", - "inputs": [], - "outputs": [ - { "name": "", "type": "address", "internalType": "contract IRightsPolicyManager" } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "description", - "inputs": [], - "outputs": [{ "name": "", "type": "string", "internalType": "string" }], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "enforce", - "inputs": [ - { "name": "holder", "type": "address", "internalType": "address" }, - { - "name": "agreement", - "type": "tuple", - "internalType": "struct T.Agreement", - "components": [ - { "name": "broker", "type": "address", "internalType": "address" }, - { "name": "currency", "type": "address", "internalType": "address" }, - { "name": "initiator", "type": "address", "internalType": "address" }, - { "name": "total", "type": "uint256", "internalType": "uint256" }, - { "name": "fees", "type": "uint256", "internalType": "uint256" }, - { "name": "parties", "type": "address[]", "internalType": "address[]" }, - { "name": "payload", "type": "bytes", "internalType": "bytes" } - ] - } - ], - "outputs": [{ "name": "", "type": "uint256[]", "internalType": "uint256[]" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "getAttestation", - "inputs": [ - { "name": "recipient", "type": "address", "internalType": "address" }, - { "name": "holder", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getAttestationProvider", - "inputs": [], - "outputs": [{ "name": "", "type": "address", "internalType": "address" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getHolder", - "inputs": [{ "name": "assetId", "type": "uint256", "internalType": "uint256" }], - "outputs": [{ "name": "", "type": "address", "internalType": "address" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "initialize", - "inputs": [ - { "name": "holder", "type": "address", "internalType": "address" }, - { "name": "init", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "isAccessAllowed", - "inputs": [ - { "name": "account", "type": "address", "internalType": "address" }, - { "name": "criteria", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "isCompliant", - "inputs": [ - { "name": "account", "type": "address", "internalType": "address" }, - { "name": "holder", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "isInitialized", - "inputs": [], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "name", - "inputs": [], - "outputs": [{ "name": "", "type": "string", "internalType": "string" }], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "resolveTerms", - "inputs": [{ "name": "criteria", "type": "bytes", "internalType": "bytes" }], - "outputs": [ - { - "name": "", - "type": "tuple", - "internalType": "struct T.Terms", - "components": [ - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { "name": "currency", "type": "address", "internalType": "address" }, - { "name": "rateBasis", "type": "uint8", "internalType": "enum T.RateBasis" }, - { "name": "uri", "type": "string", "internalType": "string" } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "supportsInterface", - "inputs": [{ "name": "interfaceId", "type": "bytes4", "internalType": "bytes4" }], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "view" - }, - { - "type": "event", - "name": "AttestedAgreement", - "inputs": [ - { "name": "holder", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "account", "type": "address", "indexed": true, "internalType": "address" }, - { "name": "attestationId", "type": "uint256", "indexed": false, "internalType": "uint256" } - ], - "anonymous": false - }, - { "type": "error", "name": "InvalidAssetHolder", "inputs": [] }, - { "type": "error", "name": "InvalidAttestation", "inputs": [] }, - { - "type": "error", - "name": "InvalidEnforcement", - "inputs": [{ "name": "reason", "type": "string", "internalType": "string" }] - }, - { - "type": "error", - "name": "InvalidInitialization", - "inputs": [{ "name": "reason", "type": "string", "internalType": "string" }] - }, - { "type": "error", "name": "InvalidNotSupportedOperation", "inputs": [] }, - { "type": "error", "name": "InvalidPolicyInitialization", "inputs": [] }, - { - "type": "error", - "name": "InvalidUnauthorizedCall", - "inputs": [{ "name": "reason", "type": "string", "internalType": "string" }] - }, - { "type": "error", "name": "ReentrancyGuardReentrantCall", "inputs": [] } - ], - "bytecode": { - "object": "0x60e0346100c757601f61192f38819003918201601f19168301916001600160401b038311848410176100cb578084926060946040528339810103126100c757610047816100df565b61005f6040610058602085016100df565b93016100df565b60015f556001600160a01b0390811660805290811660a0521660c05260405161183b90816100f4823960805181818161053c01528181610dc401526115cb015260a05181818161014101528181610296015261093e015260c05181818160ed01526116850152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100c75756fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461123f5750806306fdde03146111e057806319ad44fc14610510578063392e53cd146111be578063464c0aeb146108eb5780637284e41614610730578063a393711114610560578063b1b87ffb14610510578063cfdce1a7146104f7578063d1f5789414610245578063dd4fcc3f1461020f578063e8a96b46146101d3578063e8d55ccf14610165578063f1bdc452146101155763f520d4eb146100c1575f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760406003193601126101115761017e611320565b73ffffffffffffffffffffffffffffffffffffffff61019b611343565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346101115760206003193601126101115760206101f160043561163c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461011157604060031936011261011157602061023b61022d611320565b610235611343565b90611532565b6040519015158152f35b3461011157610253366113b5565b6040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156104ec5773ffffffffffffffffffffffffffffffffffffffff915f916104bd575b5016330361043957816040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060015416600155810103126101115773ffffffffffffffffffffffffffffffffffffffff61033a602083359301611366565b169181156103db5773ffffffffffffffffffffffffffffffffffffffff91826001926040519261036984611406565b835260208301958652165f52600360205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416176001555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b6104df915060203d6020116104e5575b6104d7818361143e565b810190611506565b856102db565b503d6104cd565b6040513d5f823e3d90fd5b3461011157602061023b61050a366113b5565b916114aa565b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760206003193601126101115760043567ffffffffffffffff811161011157610591903690600401611387565b6060806040516105a081611422565b5f81525f60208201525f604082015201526105bb8183611751565b15610708578160209181010312610111576105ea73ffffffffffffffffffffffffffffffffffffffff91611366565b165f52600360205260405f20602060405161060481611406565b73ffffffffffffffffffffffffffffffffffffffff600184549485845201541691829101526040519161063683611422565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff6040519261066b60408561143e565b600784527f697066733a2f2f000000000000000000000000000000000000000000000000006020850152606085019384526040519460208652516020860152511660408401525160048110156106db5782916106d79160608401525160808084015260a08301906112dd565b0390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610111575f600319360112610111576106d7610160610753604051918261143e565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e000000000000000000000000000000000000000000000000006101408201526040519182916020835260208301906112dd565b3461011157604060031936011261011157610904611320565b6024359067ffffffffffffffff8211610111578136039060e06003198301126101115773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361113a5760ff60015416156111125773ffffffffffffffffffffffffffffffffffffffff1690815f52600360205260405f2090604051916109a083611406565b73ffffffffffffffffffffffffffffffffffffffff600182549283865201541660208401521561108e576064840135917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd60a48601359201821215610111578185019160048301359367ffffffffffffffff85116101115760248401918560051b9384360384136101115751610a5287610a4d610a4684610a4184896116d1565b6116d1565b938461147f565b61147f565b831061100a5762015180810290808204620151801490151715610fdd57420197884211610fdd576040519360e0850185811067ffffffffffffffff821117610f9857604052610aa382600401611366565b8552610ab160248301611366565b9660208601978852610ac560448401611366565b96604087019788526060870195865267ffffffffffffffff608088019560848601358752116101115736602383011215610111576004602091610b078c611492565b9b610b156040519d8e61143e565b8c52828c01930101019136831161011157905b828210610fc55750505060a0840196875260c48101359067ffffffffffffffff82116101115701913660238401121561011157600483013567ffffffffffffffff8111610f985760405193610ba5601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020018661143e565b8185523660248284010111610111576024829101602086013783016020015f905260c0840192835260405195869460208601602090525173ffffffffffffffffffffffffffffffffffffffff1660408601525173ffffffffffffffffffffffffffffffffffffffff166060850152845173ffffffffffffffffffffffffffffffffffffffff1660808501525160a08401525160c0830152845160e0830160e090526101208301610c5491611708565b9051908281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001610100840152610c8b916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352610cbb908361143e565b5173ffffffffffffffffffffffffffffffffffffffff1682519160405192839286602085015260408401523060608401526080830160a0905260c08301610d0191611708565b8281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a0840152610d34916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018252610d64908261143e565b8151906040519485927f8ca86cad000000000000000000000000000000000000000000000000000000008452600484016060905260648401610da591611708565b906024840152828103600319016044840152610dc0916112dd565b03837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a5f948591f19283156104ec575f93610f05575b5051908151915f5b838110610e6357846040518091602082016020835281518091526020604084019201905f5b818110610e4a575050500390f35b8251845285945060209384019390920191600101610e3c565b80610e70600192876117c4565b5173ffffffffffffffffffffffffffffffffffffffff610e9083866117c4565b51165f52600260205260405f20855f5260205260405f205573ffffffffffffffffffffffffffffffffffffffff610ec782856117c4565b5116847f73d17651f9707de6298c73100b356249df3c275337d70f593670c60c5d7da3536020610ef7858b6117c4565b51604051908152a301610e17565b9092503d805f833e610f17818361143e565b8101906020818303126101115780519067ffffffffffffffff821161011157019080601f83011215610111578151610f4e81611492565b92610f5c604051948561143e565b81845260208085019260051b82010192831161011157602001905b828210610f88575050509183610e0f565b8151815260209182019101610f77565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60208091610fd284611366565b815201910190610b28565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f496e76616c6964206e6f7420696e697469616c697a656420686f6c646572206360448201527f6f6e646974696f6e7300000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b34610111575f60031936011261011157602060ff600154166040519015158152f35b34610111575f600319360112610111576106d760405161120160408261143e565b601281527f537562736372697074696f6e506f6c696379000000000000000000000000000060208201526040519182916020835260208301906112dd565b3461011157602060031936011261011157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361011157817fd6e2fbe800000000000000000000000000000000000000000000000000000000602093149081156112b3575b5015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836112ac565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b9181601f840112156101115782359167ffffffffffffffff8311610111576020838186019501011161011157565b9060406003198301126101115760043573ffffffffffffffffffffffffffffffffffffffff8116810361011157916024359067ffffffffffffffff82116101115761140291600401611387565b9091565b6040810190811067ffffffffffffffff821117610f9857604052565b6080810190811067ffffffffffffffff821117610f9857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f9857604052565b81810292918115918404141715610fdd57565b67ffffffffffffffff8111610f985760051b60200190565b9091826020916114ba8183611751565b6114d65781010312610111576102356114d3923561163c565b90565b810103126101115773ffffffffffffffffffffffffffffffffffffffff6114ff6114d393611366565b1690611532565b90816020910312610111575173ffffffffffffffffffffffffffffffffffffffff811681036101115790565b73ffffffffffffffffffffffffffffffffffffffff1690815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490811561163657604051917febfa62b90000000000000000000000000000000000000000000000000000000083526004830152602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916115fe575090565b90506020813d60201161162e575b816116196020938361143e565b81010312610111575180151581036101115790565b3d915061160c565b50505f90565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916116b8575090565b6114d3915060203d6020116104e5576104d7818361143e565b81156116db570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90602080835192838152019201905f5b8181106117255750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611718565b602082036107085781602011610111577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000600c82013516151591600c11610111578161179b575090565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000915035161590565b80518210156117d85760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220be604af8fb0b84f1fc09211529cb8338c36bfb5d68c195302c8b7b98a5cf7b2964736f6c634300081a0033", - "sourceMap": "281:6159:7:-:0;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;-1:-1:-1;;;;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;1857:1:78;-1:-1:-1;1857:1:78;-1:-1:-1;;;;;281:6159:7;;;4819:60:99;;281:6159:7;;;;4889:65:99;281:6159:7;4964:49:99;;281:6159:7;;;;;;;;4819:60:99;281:6159:7;;;;;;;;;;;;;;;4889:65:99;281:6159:7;;;;;;;;;;;;;;;4964:49:99;281:6159:7;;;;;;;;;;;;-1:-1:-1;281:6159:7;;;;;;-1:-1:-1;281:6159:7;;;;;-1:-1:-1;281:6159:7;;;;-1:-1:-1;;;;;281:6159:7;;;;;;:::o", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461123f5750806306fdde03146111e057806319ad44fc14610510578063392e53cd146111be578063464c0aeb146108eb5780637284e41614610730578063a393711114610560578063b1b87ffb14610510578063cfdce1a7146104f7578063d1f5789414610245578063dd4fcc3f1461020f578063e8a96b46146101d3578063e8d55ccf14610165578063f1bdc452146101155763f520d4eb146100c1575f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760406003193601126101115761017e611320565b73ffffffffffffffffffffffffffffffffffffffff61019b611343565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346101115760206003193601126101115760206101f160043561163c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461011157604060031936011261011157602061023b61022d611320565b610235611343565b90611532565b6040519015158152f35b3461011157610253366113b5565b6040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156104ec5773ffffffffffffffffffffffffffffffffffffffff915f916104bd575b5016330361043957816040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060015416600155810103126101115773ffffffffffffffffffffffffffffffffffffffff61033a602083359301611366565b169181156103db5773ffffffffffffffffffffffffffffffffffffffff91826001926040519261036984611406565b835260208301958652165f52600360205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416176001555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b6104df915060203d6020116104e5575b6104d7818361143e565b810190611506565b856102db565b503d6104cd565b6040513d5f823e3d90fd5b3461011157602061023b61050a366113b5565b916114aa565b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760206003193601126101115760043567ffffffffffffffff811161011157610591903690600401611387565b6060806040516105a081611422565b5f81525f60208201525f604082015201526105bb8183611751565b15610708578160209181010312610111576105ea73ffffffffffffffffffffffffffffffffffffffff91611366565b165f52600360205260405f20602060405161060481611406565b73ffffffffffffffffffffffffffffffffffffffff600184549485845201541691829101526040519161063683611422565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff6040519261066b60408561143e565b600784527f697066733a2f2f000000000000000000000000000000000000000000000000006020850152606085019384526040519460208652516020860152511660408401525160048110156106db5782916106d79160608401525160808084015260a08301906112dd565b0390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610111575f600319360112610111576106d7610160610753604051918261143e565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e000000000000000000000000000000000000000000000000006101408201526040519182916020835260208301906112dd565b3461011157604060031936011261011157610904611320565b6024359067ffffffffffffffff8211610111578136039060e06003198301126101115773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361113a5760ff60015416156111125773ffffffffffffffffffffffffffffffffffffffff1690815f52600360205260405f2090604051916109a083611406565b73ffffffffffffffffffffffffffffffffffffffff600182549283865201541660208401521561108e576064840135917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd60a48601359201821215610111578185019160048301359367ffffffffffffffff85116101115760248401918560051b9384360384136101115751610a5287610a4d610a4684610a4184896116d1565b6116d1565b938461147f565b61147f565b831061100a5762015180810290808204620151801490151715610fdd57420197884211610fdd576040519360e0850185811067ffffffffffffffff821117610f9857604052610aa382600401611366565b8552610ab160248301611366565b9660208601978852610ac560448401611366565b96604087019788526060870195865267ffffffffffffffff608088019560848601358752116101115736602383011215610111576004602091610b078c611492565b9b610b156040519d8e61143e565b8c52828c01930101019136831161011157905b828210610fc55750505060a0840196875260c48101359067ffffffffffffffff82116101115701913660238401121561011157600483013567ffffffffffffffff8111610f985760405193610ba5601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020018661143e565b8185523660248284010111610111576024829101602086013783016020015f905260c0840192835260405195869460208601602090525173ffffffffffffffffffffffffffffffffffffffff1660408601525173ffffffffffffffffffffffffffffffffffffffff166060850152845173ffffffffffffffffffffffffffffffffffffffff1660808501525160a08401525160c0830152845160e0830160e090526101208301610c5491611708565b9051908281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001610100840152610c8b916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352610cbb908361143e565b5173ffffffffffffffffffffffffffffffffffffffff1682519160405192839286602085015260408401523060608401526080830160a0905260c08301610d0191611708565b8281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a0840152610d34916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018252610d64908261143e565b8151906040519485927f8ca86cad000000000000000000000000000000000000000000000000000000008452600484016060905260648401610da591611708565b906024840152828103600319016044840152610dc0916112dd565b03837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a5f948591f19283156104ec575f93610f05575b5051908151915f5b838110610e6357846040518091602082016020835281518091526020604084019201905f5b818110610e4a575050500390f35b8251845285945060209384019390920191600101610e3c565b80610e70600192876117c4565b5173ffffffffffffffffffffffffffffffffffffffff610e9083866117c4565b51165f52600260205260405f20855f5260205260405f205573ffffffffffffffffffffffffffffffffffffffff610ec782856117c4565b5116847f73d17651f9707de6298c73100b356249df3c275337d70f593670c60c5d7da3536020610ef7858b6117c4565b51604051908152a301610e17565b9092503d805f833e610f17818361143e565b8101906020818303126101115780519067ffffffffffffffff821161011157019080601f83011215610111578151610f4e81611492565b92610f5c604051948561143e565b81845260208085019260051b82010192831161011157602001905b828210610f88575050509183610e0f565b8151815260209182019101610f77565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60208091610fd284611366565b815201910190610b28565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f496e76616c6964206e6f7420696e697469616c697a656420686f6c646572206360448201527f6f6e646974696f6e7300000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b34610111575f60031936011261011157602060ff600154166040519015158152f35b34610111575f600319360112610111576106d760405161120160408261143e565b601281527f537562736372697074696f6e506f6c696379000000000000000000000000000060208201526040519182916020835260208301906112dd565b3461011157602060031936011261011157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361011157817fd6e2fbe800000000000000000000000000000000000000000000000000000000602093149081156112b3575b5015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836112ac565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b9181601f840112156101115782359167ffffffffffffffff8311610111576020838186019501011161011157565b9060406003198301126101115760043573ffffffffffffffffffffffffffffffffffffffff8116810361011157916024359067ffffffffffffffff82116101115761140291600401611387565b9091565b6040810190811067ffffffffffffffff821117610f9857604052565b6080810190811067ffffffffffffffff821117610f9857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f9857604052565b81810292918115918404141715610fdd57565b67ffffffffffffffff8111610f985760051b60200190565b9091826020916114ba8183611751565b6114d65781010312610111576102356114d3923561163c565b90565b810103126101115773ffffffffffffffffffffffffffffffffffffffff6114ff6114d393611366565b1690611532565b90816020910312610111575173ffffffffffffffffffffffffffffffffffffffff811681036101115790565b73ffffffffffffffffffffffffffffffffffffffff1690815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490811561163657604051917febfa62b90000000000000000000000000000000000000000000000000000000083526004830152602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916115fe575090565b90506020813d60201161162e575b816116196020938361143e565b81010312610111575180151581036101115790565b3d915061160c565b50505f90565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916116b8575090565b6114d3915060203d6020116104e5576104d7818361143e565b81156116db570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90602080835192838152019201905f5b8181106117255750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611718565b602082036107085781602011610111577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000600c82013516151591600c11610111578161179b575090565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000915035161590565b80518210156117d85760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220be604af8fb0b84f1fc09211529cb8338c36bfb5d68c195302c8b7b98a5cf7b2964736f6c634300081a0033", - "sourceMap": "281:6159:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;1140:48:99;281:6159:7;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;1075:59:99;281:6159:7;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;5575:13:99;281:6159:7;;;;;;5575:32:99;281:6159:7;-1:-1:-1;281:6159:7;;;;;-1:-1:-1;281:6159:7;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;3566:43:99;;;:21;281:6159:7;3566:21:99;281:6159:7;3566:21:99;281:6159:7;3566:43:99;;;;;;281:6159:7;3566:43:99;281:6159:7;3566:43:99;;;281:6159:7;;;3544:10:99;:66;3540:169;;281:6159:7;;;;4097:20:99;281:6159:7;;4097:20:99;281:6159:7;2040:36;;281:6159;;;;;;3566:43:99;281:6159:7;;;;;:::i;:::-;;2090:10;;;2086:75;;281:6159;;;4097:20:99;281:6159:7;;;;;;;:::i;:::-;;;3566:43:99;2241:24:7;;281:6159;;;;;;2221:9;3566:43:99;281:6159:7;;;;;;;;;;;;;;;;;;;4097:20:99;281:6159:7;;;;;4097:20:99;281:6159:7;;;;2086:75;2109:52;281:6159;;2109:52;;;3566:43:99;281:6159:7;2109:52;;281:6159;;;;;;;;;;;2109:52;3540:169:99;3633:65;281:6159:7;;3633:65:99;;;3566:43;281:6159:7;3633:65:99;;281:6159:7;;;;;;;;;;;;;;;;3633:65:99;3566:43;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;281:6159:7;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;6313:20:99;281:6159:7;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4346:26;;;;:::i;:::-;4345:27;4341:95;;4463:31;281:6159;4463:31;;;281:6159;;;;;;;;:::i;:::-;;;;4525:9;281:6159;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4595:68;;281:6159;;;;4595:68;;4634:17;281:6159;;;;;;;;;;:::i;:::-;;;;;;;;;;4595:68;;281:6159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;4341:95;4395:30;281:6159;4395:30;281:6159;;4395:30;281:6159;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;281:6159:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;3277:21:99;281:6159:7;3255:10:99;:44;3251:144;;281:6159:7;4621:12:99;281:6159:7;;4620:13:99;4616:80;;281:6159:7;;;;;;2611:9;281:6159;;;;;;;;;;;;:::i;:::-;;4621:12:99;281:6159:7;;;;;;;;;;;;;2642:20;2638:213;;2882:15;;;281:6159;2928:17;281:6159;2928:17;;;281:6159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5158:49;4938:19;5159:34;5046:31;4938:19;;;;;:::i;:::-;5046:31;:::i;:::-;5159:34;;;:::i;:::-;5158:49;:::i;:::-;5221:14;;5217:84;;3292:6;281:6159;;;;;;3292:6;281:6159;;;;;;;3262:15;281:6159;3262:15;;;281:6159;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;2928:17;281:6159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7804:21:99;;;281:6159:7;7804:21:99;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;2928:17;281:6159;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;7804:21:99;281:6159:7;7804:21:99;;;;;;;;:::i;:::-;281:6159:7;;;7910:17:99;;281:6159:7;;;7855:91:99;;;;281:6159:7;7855:91:99;;281:6159:7;;;;;7903:4:99;281:6159:7;;;;;;;2928:17;281:6159;;;;;;;;:::i;:::-;;;;;;2928:17;281:6159;;;;;;:::i;:::-;7855:91:99;281:6159:7;7855:91:99;;;;;;;;:::i;:::-;8018:17;;281:6159:7;;;7990:62:99;;;281:6159:7;7990:62:99;;281:6159:7;7990:62:99;;281:6159:7;;;2882:15;281:6159;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;:::i;:::-;7990:62:99;:20;;281:6159:7;;7990:62:99;;;281:6159:7;7990:62:99;;;;;;;;;281:6159:7;7990:62:99;;;281:6159:7;8110:17:99;;281:6159:7;;;8571:13:99;281:6159:7;8586:14:99;;;;;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6159:7;;;;;;;;;4621:12:99;281:6159:7;;;8602:20:99;8674:17;;4621:12;8674:17;;;:::i;:::-;281:6159:7;;8652:10:99;;;;:::i;:::-;281:6159:7;;;;8638:13:99;281:6159:7;;;;;;;;;;;;;;;8736:10:99;;;;:::i;:::-;281:6159:7;;8748:17:99;8710:56;281:6159:7;8748:17:99;;;;:::i;:::-;281:6159:7;;;;;;8710:56:99;281:6159:7;8571:13:99;;7990:62;;;;;;281:6159:7;7990:62:99;;;;;;:::i;:::-;;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:62:99;;;;;;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5217:84;5244:57;281:6159;;5244:57;;;281:6159;;5244:57;;281:6159;;;;;;;;;;;;2882:15;281:6159;;;5244:57;2638:213;2777:63;281:6159;;2777:63;;;281:6159;;2777:63;;281:6159;;;;;;;;;;;;;;;;2777:63;4616:80:99;4656:29;281:6159:7;4656:29:99;281:6159:7;;4656:29:99;3251:144;3322:62;281:6159:7;;3322:62:99;;;281:6159:7;;3322:62:99;;281:6159:7;;;;;;;;;;;;;;;;3322:62:99;281:6159:7;;;;;-1:-1:-1;;281:6159:7;;;;;;;5156:12:99;281:6159:7;;;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;;;;;5992:40:99;6007:25;281:6159:7;5992:40:99;;:80;;;;;281:6159:7;;;;;;;5992:80:99;877:25:81;862:40;;;5992:80:99;;;281:6159:7;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6159:7;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;3449:527::-;;;;281:6159;3449:527;3623:26;;;;:::i;:::-;3619:186;;3881:31;;281:6159;;;;3950:18;3929:40;281:6159;;3950:18;:::i;3929:40::-;3449:527;:::o;3619:186::-;3714:31;;281:6159;;;;;;3766:28;281:6159;;:::i;:::-;;3766:28;;:::i;281:6159::-;;;;;;;;;;;;;;;;;;:::o;6603:364:99:-;281:6159:7;;;;;;6718:13:99;281:6159:7;;;;;;6718:30:99;281:6159:7;-1:-1:-1;281:6159:7;;;;-1:-1:-1;281:6159:7;;6833:18:99;;;6829:36;;281:6159:7;;6909:51:99;281:6159:7;6909:51:99;;;;;281:6159:7;;;;;;6909:20:99;:51;:20;281:6159:7;6909:20:99;281:6159:7;6909:51:99;;;;;;;281:6159:7;6909:51:99;;;6902:58;6603:364;:::o;6909:51::-;;;281:6159:7;6909:51:99;;281:6159:7;6909:51:99;;;;;;281:6159:7;6909:51:99;;;:::i;:::-;;;281:6159:7;;;;;;;;;;;;6603:364:99;:::o;6909:51::-;;;-1:-1:-1;6909:51:99;;6829:36;6853:12;;281:6159:7;6853:12:99;:::o;7112:155::-;281:6159:7;;7195:32:99;281:6159:7;7195:32:99;;;;;281:6159:7;;7195:15:99;:32;:15;281:6159:7;7195:15:99;281:6159:7;7195:32:99;;;;;;;-1:-1:-1;7195:32:99;;;7188:39;7112:155;:::o;7195:32::-;;;;281:6159:7;7195:32:99;281:6159:7;7195:32:99;;;;;;;:::i;281:6159:7:-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6159:7;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;5351:1087;6212:2;6193:21;;6189:64;;281:6159;6212:2;281:6159;;;;6299:2;281:6159;;;;6282:38;;281:6159;6299:2;281:6159;;;6404:27;;;6397:34;5351:1087;:::o;6404:27::-;281:6159;;;;;6350:37;5351:1087;:::o;281:6159::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;", - "linkReferences": {}, - "immutableReferences": { - "50776": [ - { "start": 1340, "length": 32 }, - { "start": 3524, "length": 32 }, - { "start": 5579, "length": 32 } - ], - "50779": [ - { "start": 321, "length": 32 }, - { "start": 662, "length": 32 }, - { "start": 2366, "length": 32 } - ], - "50782": [ - { "start": 237, "length": 32 }, - { "start": 5765, "length": 32 } - ] - } - }, - "methodIdentifiers": { - "ASSET_OWNERSHIP()": "f520d4eb", - "ATTESTATION_PROVIDER()": "19ad44fc", - "RIGHTS_POLICY_MANAGER()": "f1bdc452", - "description()": "7284e416", - "enforce(address,(address,address,address,uint256,uint256,address[],bytes))": "464c0aeb", - "getAttestation(address,address)": "e8d55ccf", - "getAttestationProvider()": "b1b87ffb", - "getHolder(uint256)": "e8a96b46", - "initialize(address,bytes)": "d1f57894", - "isAccessAllowed(address,bytes)": "cfdce1a7", - "isCompliant(address,address)": "dd4fcc3f", - "isInitialized()": "392e53cd", - "name()": "06fdde03", - "resolveTerms(bytes)": "a3937111", - "supportsInterface(bytes4)": "01ffc9a7" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightPolicyManagerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ownershipAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"providerAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidAssetHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAttestation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidEnforcement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNotSupportedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"attestationId\",\"type\":\"uint256\"}],\"name\":\"AttestedAgreement\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET_OWNERSHIP\",\"outputs\":[{\"internalType\":\"contract IAssetOwnership\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ATTESTATION_PROVIDER\",\"outputs\":[{\"internalType\":\"contract IAttestationProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"agreement\",\"type\":\"tuple\"}],\"name\":\"enforce\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAttestation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAttestationProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getHolder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"init\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"isAccessAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isCompliant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"resolveTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidAssetHolder()\":[{\"details\":\"Thrown when an attempt is made to access content without proper authorization. This error is used to prevent unauthorized access to content protected by policies or rights.\"}],\"InvalidAttestation()\":[{\"details\":\"Thrown when there is an issue with the attestation, such as when an attestation is missing or invalid.\"}],\"InvalidEnforcement(string)\":[{\"details\":\"This error is thrown when the policy enforcement process fails.\",\"params\":{\"reason\":\"A descriptive message providing details about the enforcement failure.\"}}],\"InvalidInitialization(string)\":[{\"details\":\"This error is thrown when there is an issue with the initial setup or configuration.\"}],\"InvalidPolicyInitialization()\":[{\"details\":\"Thrown when attempting to initialize a policy for unregistered or invalid content.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"AttestedAgreement(address,address,uint256)\":{\"params\":{\"account\":\"The address of the user whose access or compliance is being enforced.\",\"attestationId\":\"The unique identifier of the attestations that confirms compliance or access.\",\"holder\":\"The address of the rights holder managing the asset or access.\"}}},\"kind\":\"dev\",\"methods\":{\"enforce(address,(address,address,address,uint256,uint256,address[],bytes))\":{\"details\":\"Rights Policies Manager contract should be the only one allowed to call this method.\",\"params\":{\"agreement\":\"An object containing the terms agreed upon between the asset holder and the user.\",\"holder\":\"The rights holder whose authorization is required for accessing the asset.\"}},\"getAttestation(address,address)\":{\"params\":{\"holder\":\"The address of the rights holder with whom the agreement was made.\",\"recipient\":\"The address of the account for which the attestation is being retrieved.\"}},\"getAttestationProvider()\":{\"returns\":{\"_0\":\"The address of the provider associated with the policy.\"}},\"getHolder(uint256)\":{\"params\":{\"assetId\":\"the asset ID to retrieve the holder.\"}},\"initialize(address,bytes)\":{\"details\":\"Only the Rights Policies Authorizer contract has permission to call this function.\",\"params\":{\"holder\":\"The address of the holder for whom the policy is being initialized.\",\"init\":\"Initialization data required to configure the policy.\"}},\"isCompliant(address,address)\":{\"details\":\"The function checks if the provided account complies with the attestation.\",\"params\":{\"account\":\"The address of the user whose access is being verified.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The bytes4 identifier of the interface to check for support.\"},\"returns\":{\"_0\":\"A boolean indicating whether the interface ID is supported (true) or not (false).\"}}},\"title\":\"SubscriptionPolicy\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidNotSupportedOperation()\":[{\"notice\":\"This error is thrown when a method not implemented is called.\"}],\"InvalidUnauthorizedCall(string)\":[{\"notice\":\"Thrown when a function is called by an address other than the authorized Rights Manager. This restricts access to functions that are intended to be executed only by the Rights Manager.\"}]},\"events\":{\"AttestedAgreement(address,address,uint256)\":{\"notice\":\"Emitted when an enforcement process is successfully completed for a given account and holder.\"}},\"kind\":\"user\",\"methods\":{\"description()\":{\"notice\":\"Returns the business/strategy model implemented by the policy.\"},\"enforce(address,(address,address,address,uint256,uint256,address[],bytes))\":{\"notice\":\"Executes the agreement between the asset holder and the account based on the policy's rules.\"},\"getAttestation(address,address)\":{\"notice\":\"Retrieves the attestation id associated with a specific account and rights holder.\"},\"getAttestationProvider()\":{\"notice\":\"Retrieves the address of the attestation provider.\"},\"getHolder(uint256)\":{\"notice\":\"Returns the asset holder registered in the ownership contract.\"},\"initialize(address,bytes)\":{\"notice\":\"Initializes the policy with specific data for a given holder.\"},\"isAccessAllowed(address,bytes)\":{\"notice\":\"Verifies if an account has access to holder's content or asset id.\"},\"isCompliant(address,address)\":{\"notice\":\"Verifies whether the on-chain access terms are satisfied for an account.\"},\"isInitialized()\":{\"notice\":\"Checks if the policy has been initialized.\"},\"name()\":{\"notice\":\"Returns the name of the policy.\"},\"resolveTerms(bytes)\":{\"notice\":\"Retrieves the terms associated with a specific criteria and policy.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if a given interface ID is supported by this contract.\"}},\"notice\":\"Implements a subscription-based content access policy.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/policies/SubscriptionPolicy.sol\":\"SubscriptionPolicy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/policies/SubscriptionPolicy.sol\":{\"keccak256\":\"0x17caa3281a451aedf75776764eedec7628b03347fdd369c229d60e887bd0cf54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9dbc13584e69fecfaf7f6f79e5f6b100f0923dd3b90fc5c20e76036abf6ff995\",\"dweb:/ipfs/QmZQSp7sHVmncnNTRob65WFuJCrrxkdyTjya1LSZv7ZHUA\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol\":{\"keccak256\":\"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025\",\"dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IAttestationProvider.sol\":{\"keccak256\":\"0x33857a9a398c81f5a8cb00f94fa6b67545638acfc7cb728ba12d6ad8f5278ea8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d33a8beadb20c46b8cdf80cebe3640f6ee411ec1e0dcf0b99ac4498c8548b79f\",\"dweb:/ipfs/QmVjkZppdWpowdob77ymvzhbTsMXLEZuPAJ6G7mcmSTgzj\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol\":{\"keccak256\":\"0xbec0c6dae3148c9c400255b1107181ea037e6f178c141505a1ce883941557753\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd187cdee309d7965ca81a3bd91836fe4c281d97256db519b10a23ebf414fcbf\",\"dweb:/ipfs/Qma6ZXgXr35Pv3c1h3XvX8V9vUeKVXHAJ3CrhLndoGEMHM\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]}},\"version\":1}", - "metadata": { - "compiler": { "version": "0.8.26+commit.8a97fa7a" }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { "internalType": "address", "name": "rightPolicyManagerAddress", "type": "address" }, - { "internalType": "address", "name": "ownershipAddress", "type": "address" }, - { "internalType": "address", "name": "providerAddress", "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { "inputs": [], "type": "error", "name": "InvalidAssetHolder" }, - { "inputs": [], "type": "error", "name": "InvalidAttestation" }, - { - "inputs": [{ "internalType": "string", "name": "reason", "type": "string" }], - "type": "error", - "name": "InvalidEnforcement" - }, - { - "inputs": [{ "internalType": "string", "name": "reason", "type": "string" }], - "type": "error", - "name": "InvalidInitialization" - }, - { "inputs": [], "type": "error", "name": "InvalidNotSupportedOperation" }, - { "inputs": [], "type": "error", "name": "InvalidPolicyInitialization" }, - { - "inputs": [{ "internalType": "string", "name": "reason", "type": "string" }], - "type": "error", - "name": "InvalidUnauthorizedCall" - }, - { "inputs": [], "type": "error", "name": "ReentrancyGuardReentrantCall" }, - { - "inputs": [ - { "internalType": "address", "name": "holder", "type": "address", "indexed": true }, - { "internalType": "address", "name": "account", "type": "address", "indexed": true }, - { - "internalType": "uint256", - "name": "attestationId", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "AttestedAgreement", - "anonymous": false - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "ASSET_OWNERSHIP", - "outputs": [{ "internalType": "contract IAssetOwnership", "name": "", "type": "address" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "ATTESTATION_PROVIDER", - "outputs": [ - { "internalType": "contract IAttestationProvider", "name": "", "type": "address" } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "RIGHTS_POLICY_MANAGER", - "outputs": [ - { "internalType": "contract IRightsPolicyManager", "name": "", "type": "address" } - ] - }, - { - "inputs": [], - "stateMutability": "pure", - "type": "function", - "name": "description", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "holder", "type": "address" }, - { - "internalType": "struct T.Agreement", - "name": "agreement", - "type": "tuple", - "components": [ - { "internalType": "address", "name": "broker", "type": "address" }, - { "internalType": "address", "name": "currency", "type": "address" }, - { "internalType": "address", "name": "initiator", "type": "address" }, - { "internalType": "uint256", "name": "total", "type": "uint256" }, - { "internalType": "uint256", "name": "fees", "type": "uint256" }, - { "internalType": "address[]", "name": "parties", "type": "address[]" }, - { "internalType": "bytes", "name": "payload", "type": "bytes" } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "enforce", - "outputs": [{ "internalType": "uint256[]", "name": "", "type": "uint256[]" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "address", "name": "holder", "type": "address" } - ], - "stateMutability": "view", - "type": "function", - "name": "getAttestation", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getAttestationProvider", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }] - }, - { - "inputs": [{ "internalType": "uint256", "name": "assetId", "type": "uint256" }], - "stateMutability": "view", - "type": "function", - "name": "getHolder", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "holder", "type": "address" }, - { "internalType": "bytes", "name": "init", "type": "bytes" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "initialize" - }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "bytes", "name": "criteria", "type": "bytes" } - ], - "stateMutability": "view", - "type": "function", - "name": "isAccessAllowed", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "address", "name": "holder", "type": "address" } - ], - "stateMutability": "view", - "type": "function", - "name": "isCompliant", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "isInitialized", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [], - "stateMutability": "pure", - "type": "function", - "name": "name", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }] - }, - { - "inputs": [{ "internalType": "bytes", "name": "criteria", "type": "bytes" }], - "stateMutability": "view", - "type": "function", - "name": "resolveTerms", - "outputs": [ - { - "internalType": "struct T.Terms", - "name": "", - "type": "tuple", - "components": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "address", "name": "currency", "type": "address" }, - { "internalType": "enum T.RateBasis", "name": "rateBasis", "type": "uint8" }, - { "internalType": "string", "name": "uri", "type": "string" } - ] - } - ] - }, - { - "inputs": [{ "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" }], - "stateMutability": "view", - "type": "function", - "name": "supportsInterface", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "enforce(address,(address,address,address,uint256,uint256,address[],bytes))": { - "details": "Rights Policies Manager contract should be the only one allowed to call this method.", - "params": { - "agreement": "An object containing the terms agreed upon between the asset holder and the user.", - "holder": "The rights holder whose authorization is required for accessing the asset." - } - }, - "getAttestation(address,address)": { - "params": { - "holder": "The address of the rights holder with whom the agreement was made.", - "recipient": "The address of the account for which the attestation is being retrieved." - } - }, - "getAttestationProvider()": { - "returns": { "_0": "The address of the provider associated with the policy." } - }, - "getHolder(uint256)": { "params": { "assetId": "the asset ID to retrieve the holder." } }, - "initialize(address,bytes)": { - "details": "Only the Rights Policies Authorizer contract has permission to call this function.", - "params": { - "holder": "The address of the holder for whom the policy is being initialized.", - "init": "Initialization data required to configure the policy." - } - }, - "isCompliant(address,address)": { - "details": "The function checks if the provided account complies with the attestation.", - "params": { "account": "The address of the user whose access is being verified." } - }, - "supportsInterface(bytes4)": { - "params": { - "interfaceId": "The bytes4 identifier of the interface to check for support." - }, - "returns": { - "_0": "A boolean indicating whether the interface ID is supported (true) or not (false)." - } - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "description()": { - "notice": "Returns the business/strategy model implemented by the policy." - }, - "enforce(address,(address,address,address,uint256,uint256,address[],bytes))": { - "notice": "Executes the agreement between the asset holder and the account based on the policy's rules." - }, - "getAttestation(address,address)": { - "notice": "Retrieves the attestation id associated with a specific account and rights holder." - }, - "getAttestationProvider()": { - "notice": "Retrieves the address of the attestation provider." - }, - "getHolder(uint256)": { - "notice": "Returns the asset holder registered in the ownership contract." - }, - "initialize(address,bytes)": { - "notice": "Initializes the policy with specific data for a given holder." - }, - "isAccessAllowed(address,bytes)": { - "notice": "Verifies if an account has access to holder's content or asset id." - }, - "isCompliant(address,address)": { - "notice": "Verifies whether the on-chain access terms are satisfied for an account." - }, - "isInitialized()": { "notice": "Checks if the policy has been initialized." }, - "name()": { "notice": "Returns the name of the policy." }, - "resolveTerms(bytes)": { - "notice": "Retrieves the terms associated with a specific criteria and policy." - }, - "supportsInterface(bytes4)": { - "notice": "Checks if a given interface ID is supported by this contract." - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - "@account-abstraction/=node_modules/@account-abstraction/", - "@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/", - "@ethsign/=node_modules/@ethsign/", - "@openzeppelin/=node_modules/@openzeppelin/", - "@synaps3/=node_modules/@synaps3/types/contracts/", - "@uniswap/=node_modules/@uniswap/", - "base64-sol/=node_modules/base64-sol/", - "forge-std/=lib/forge-std/src/", - "hardhat/=node_modules/hardhat/", - "solady/=lib/solady/src/" - ], - "optimizer": { "enabled": true, "runs": 20000 }, - "metadata": { "bytecodeHash": "ipfs" }, - "compilationTarget": { "contracts/policies/SubscriptionPolicy.sol": "SubscriptionPolicy" }, - "evmVersion": "cancun", - "libraries": {}, - "viaIR": true - }, - "sources": { - "contracts/policies/SubscriptionPolicy.sol": { - "keccak256": "0x17caa3281a451aedf75776764eedec7628b03347fdd369c229d60e887bd0cf54", - "urls": [ - "bzz-raw://9dbc13584e69fecfaf7f6f79e5f6b100f0923dd3b90fc5c20e76036abf6ff995", - "dweb:/ipfs/QmZQSp7sHVmncnNTRob65WFuJCrrxkdyTjya1LSZv7ZHUA" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": { - "keccak256": "0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261", - "urls": [ - "bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11", - "dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { - "keccak256": "0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1", - "urls": [ - "bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02", - "dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol": { - "keccak256": "0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3", - "urls": [ - "bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a", - "dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "keccak256": "0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa", - "urls": [ - "bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287", - "dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p" - ], - "license": "MIT" - }, - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "keccak256": "0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8", - "urls": [ - "bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621", - "dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol": { - "keccak256": "0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18", - "urls": [ - "bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025", - "dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/interfaces/base/IAttestationProvider.sol": { - "keccak256": "0x33857a9a398c81f5a8cb00f94fa6b67545638acfc7cb728ba12d6ad8f5278ea8", - "urls": [ - "bzz-raw://d33a8beadb20c46b8cdf80cebe3640f6ee411ec1e0dcf0b99ac4498c8548b79f", - "dweb:/ipfs/QmVjkZppdWpowdob77ymvzhbTsMXLEZuPAJ6G7mcmSTgzj" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol": { - "keccak256": "0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02", - "urls": [ - "bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405", - "dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol": { - "keccak256": "0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e", - "urls": [ - "bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6", - "dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol": { - "keccak256": "0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411", - "urls": [ - "bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2", - "dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol": { - "keccak256": "0xbec0c6dae3148c9c400255b1107181ea037e6f178c141505a1ce883941557753", - "urls": [ - "bzz-raw://fd187cdee309d7965ca81a3bd91836fe4c281d97256db519b10a23ebf414fcbf", - "dweb:/ipfs/Qma6ZXgXr35Pv3c1h3XvX8V9vUeKVXHAJ3CrhLndoGEMHM" - ], - "license": "MIT" - }, - "node_modules/@synaps3/types/contracts/core/primitives/Types.sol": { - "keccak256": "0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1", - "urls": [ - "bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf", - "dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "storageLayout": { - "storage": [ - { - "astId": 45796, - "contract": "contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy", - "label": "_status", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 50784, - "contract": "contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy", - "label": "_initialized", - "offset": 0, - "slot": "1", - "type": "t_bool" - }, - { - "astId": 50791, - "contract": "contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy", - "label": "_attestations", - "offset": 0, - "slot": "2", - "type": "t_mapping(t_address,t_mapping(t_address,t_uint256))" - }, - { - "astId": 1308, - "contract": "contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy", - "label": "_packages", - "offset": 0, - "slot": "3", - "type": "t_mapping(t_address,t_struct(Package)1303_storage)" - } - ], - "types": { - "t_address": { "encoding": "inplace", "label": "address", "numberOfBytes": "20" }, - "t_bool": { "encoding": "inplace", "label": "bool", "numberOfBytes": "1" }, - "t_mapping(t_address,t_mapping(t_address,t_uint256))": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => mapping(address => uint256))", - "numberOfBytes": "32", - "value": "t_mapping(t_address,t_uint256)" - }, - "t_mapping(t_address,t_struct(Package)1303_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct SubscriptionPolicy.Package)", - "numberOfBytes": "32", - "value": "t_struct(Package)1303_storage" - }, - "t_mapping(t_address,t_uint256)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => uint256)", - "numberOfBytes": "32", - "value": "t_uint256" - }, - "t_struct(Package)1303_storage": { - "encoding": "inplace", - "label": "struct SubscriptionPolicy.Package", - "numberOfBytes": "64", - "members": [ - { - "astId": 1300, - "contract": "contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy", - "label": "pricePerDay", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 1302, - "contract": "contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy", - "label": "currency", - "offset": 0, - "slot": "1", - "type": "t_address" - } - ] - }, - "t_uint256": { "encoding": "inplace", "label": "uint256", "numberOfBytes": "32" } - } - }, - "ast": { - "absolutePath": "contracts/policies/SubscriptionPolicy.sol", - "id": 1648, - "exportedSymbols": { "BasePolicy": [51139], "SubscriptionPolicy": [1647], "T": [51233] }, - "nodeType": "SourceUnit", - "src": "32:6409:7", - "nodes": [ - { - "id": 1290, - "nodeType": "PragmaDirective", - "src": "32:23:7", - "nodes": [], - "literals": ["solidity", "0.8", ".26"] - }, - { - "id": 1292, - "nodeType": "ImportDirective", - "src": "57:69:7", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol", - "file": "@synaps3/core/primitives/BasePolicy.sol", - "nameLocation": "-1:-1:-1", - "scope": 1648, - "sourceUnit": 51140, - "symbolAliases": [ - { - "foreign": { - "id": 1291, - "name": "BasePolicy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51139, - "src": "66:10:7", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 1294, - "nodeType": "ImportDirective", - "src": "127:55:7", - "nodes": [], - "absolutePath": "node_modules/@synaps3/types/contracts/core/primitives/Types.sol", - "file": "@synaps3/core/primitives/Types.sol", - "nameLocation": "-1:-1:-1", - "scope": 1648, - "sourceUnit": 51234, - "symbolAliases": [ - { - "foreign": { - "id": 1293, - "name": "T", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51233, - "src": "136:1:7", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 1647, - "nodeType": "ContractDefinition", - "src": "281:6159:7", - "nodes": [ - { - "id": 1303, - "nodeType": "StructDefinition", - "src": "386:77:7", - "nodes": [], - "canonicalName": "SubscriptionPolicy.Package", - "documentation": { - "id": 1298, - "nodeType": "StructuredDocumentation", - "src": "329:52:7", - "text": "@dev Structure to define a subscription package." - }, - "members": [ - { - "constant": false, - "id": 1300, - "mutability": "mutable", - "name": "pricePerDay", - "nameLocation": "419:11:7", - "nodeType": "VariableDeclaration", - "scope": 1303, - "src": "411:19:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 1299, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "411:7:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1302, - "mutability": "mutable", - "name": "currency", - "nameLocation": "448:8:7", - "nodeType": "VariableDeclaration", - "scope": 1303, - "src": "440:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1301, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "440:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "name": "Package", - "nameLocation": "393:7:7", - "scope": 1647, - "visibility": "public" - }, - { - "id": 1308, - "nodeType": "VariableDeclaration", - "src": "553:45:7", - "nodes": [], - "constant": false, - "mutability": "mutable", - "name": "_packages", - "nameLocation": "589:9:7", - "scope": 1647, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$", - "typeString": "mapping(address => struct SubscriptionPolicy.Package)" - }, - "typeName": { - "id": 1307, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 1304, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "561:7:7", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "nodeType": "Mapping", - "src": "553:27:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$", - "typeString": "mapping(address => struct SubscriptionPolicy.Package)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 1306, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1305, - "name": "Package", - "nameLocations": ["572:7:7"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1303, - "src": "572:7:7" - }, - "referencedDeclaration": 1303, - "src": "572:7:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Package_$1303_storage_ptr", - "typeString": "struct SubscriptionPolicy.Package" - } - } - }, - "visibility": "private" - }, - { - "id": 1323, - "nodeType": "FunctionDefinition", - "src": "605:203:7", - "nodes": [], - "body": { - "id": 1322, - "nodeType": "Block", - "src": "806:2:7", - "nodes": [], - "statements": [] - }, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 1317, - "name": "rightPolicyManagerAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "744:25:7", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "id": 1318, - "name": "ownershipAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "771:16:7", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "id": 1319, - "name": "providerAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "789:15:7", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - } - ], - "id": 1320, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 1316, - "name": "BasePolicy", - "nameLocations": ["733:10:7"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 51139, - "src": "733:10:7" - }, - "nodeType": "ModifierInvocation", - "src": "733:72:7" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 1315, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1310, - "mutability": "mutable", - "name": "rightPolicyManagerAddress", - "nameLocation": "634:25:7", - "nodeType": "VariableDeclaration", - "scope": 1323, - "src": "626:33:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "626:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1312, - "mutability": "mutable", - "name": "ownershipAddress", - "nameLocation": "677:16:7", - "nodeType": "VariableDeclaration", - "scope": 1323, - "src": "669:24:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1311, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "669:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1314, - "mutability": "mutable", - "name": "providerAddress", - "nameLocation": "711:15:7", - "nodeType": "VariableDeclaration", - "scope": 1323, - "src": "703:23:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1313, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "703:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - } - ], - "src": "616:116:7" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [], - "src": "806:0:7" - }, - "scope": 1647, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 1332, - "nodeType": "FunctionDefinition", - "src": "862:98:7", - "nodes": [], - "body": { - "id": 1331, - "nodeType": "Block", - "src": "916:44:7", - "nodes": [], - "statements": [ - { - "expression": { - "hexValue": "537562736372697074696f6e506f6c696379", - "id": 1329, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "933:20:7", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cf969a651e510b963d800a99660818c73f95de791671120782050ada205e0116", - "typeString": "literal_string \"SubscriptionPolicy\"" - }, - "value": "SubscriptionPolicy" - }, - "functionReturnParameters": 1328, - "id": 1330, - "nodeType": "Return", - "src": "926:27:7" - } - ] - }, - "baseFunctions": [50246], - "documentation": { - "id": 1324, - "nodeType": "StructuredDocumentation", - "src": "814:43:7", - "text": "@notice Returns the name of the policy." - }, - "functionSelector": "06fdde03", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nameLocation": "871:4:7", - "parameters": { - "id": 1325, - "nodeType": "ParameterList", - "parameters": [], - "src": "875:2:7" - }, - "returnParameters": { - "id": 1328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1327, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1332, - "src": "901:13:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1326, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "901:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "900:15:7" - }, - "scope": 1647, - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "id": 1341, - "nodeType": "FunctionDefinition", - "src": "1045:458:7", - "nodes": [], - "body": { - "id": 1340, - "nodeType": "Block", - "src": "1106:397:7", - "nodes": [], - "statements": [ - { - "expression": { - "hexValue": "5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e", - "id": 1338, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1135:361:7", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_194b266123184e70dc22bea7312509d4d684e05e0185bd5a1d15a300a36c3030", - "typeString": "literal_string hex\"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e\"" - }, - "value": "This policy follows a subscription model with daily pricing, allowing users to access a content holder's catalog by paying a daily fee for a chosen duration.\n\nKey features:\n1) Flexible subscription periods set by the asset holder.\n2) Instant access to all content during the subscription period." - }, - "functionReturnParameters": 1337, - "id": 1339, - "nodeType": "Return", - "src": "1116:380:7" - } - ] - }, - "baseFunctions": [50252], - "documentation": { - "id": 1333, - "nodeType": "StructuredDocumentation", - "src": "966:74:7", - "text": "@notice Returns the business/strategy model implemented by the policy." - }, - "functionSelector": "7284e416", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "description", - "nameLocation": "1054:11:7", - "parameters": { - "id": 1334, - "nodeType": "ParameterList", - "parameters": [], - "src": "1065:2:7" - }, - "returnParameters": { - "id": 1337, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1336, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "1091:13:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1335, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1091:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1090:15:7" - }, - "scope": 1647, - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "id": 1384, - "nodeType": "FunctionDefinition", - "src": "1895:377:7", - "nodes": [], - "body": { - "id": 1383, - "nodeType": "Block", - "src": "1994:278:7", - "nodes": [], - "statements": [ - { - "assignments": [1353, 1355], - "declarations": [ - { - "constant": false, - "id": 1353, - "mutability": "mutable", - "name": "price", - "nameLocation": "2013:5:7", - "nodeType": "VariableDeclaration", - "scope": 1383, - "src": "2005:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1352, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2005:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1355, - "mutability": "mutable", - "name": "currency", - "nameLocation": "2028:8:7", - "nodeType": "VariableDeclaration", - "scope": 1383, - "src": "2020:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1354, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2020:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 1365, - "initialValue": { - "arguments": [ - { - "id": 1358, - "name": "init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "2051:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "components": [ - { - "id": 1360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2058:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 1359, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2058:7:7", - "typeDescriptions": {} - } - }, - { - "id": 1362, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2067:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1361, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2067:7:7", - "typeDescriptions": {} - } - } - ], - "id": 1363, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2057:18:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$", - "typeString": "tuple(type(uint256),type(address))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$", - "typeString": "tuple(type(uint256),type(address))" - } - ], - "expression": { - "id": 1356, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2040:3:7", - "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } - }, - "id": 1357, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2044:6:7", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "2040:10:7", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2040:36:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", - "typeString": "tuple(uint256,address payable)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2004:72:7" - }, - { - "condition": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1366, - "name": "price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1353, - "src": "2090:5:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 1367, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2099:1:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2090:10:7", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 1373, - "nodeType": "IfStatement", - "src": "2086:75:7", - "trueBody": { - "errorCall": { - "arguments": [ - { - "hexValue": "496e76616c696420737562736372697074696f6e2070726963652e", - "id": 1370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2131:29:7", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17", - "typeString": "literal_string \"Invalid subscription price.\"" - }, - "value": "Invalid subscription price." - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17", - "typeString": "literal_string \"Invalid subscription price.\"" - } - ], - "id": 1369, - "name": "InvalidInitialization", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50827, - "src": "2109:21:7", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$", - "typeString": "function (string memory) pure returns (error)" - } - }, - "id": 1371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2109:52:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_error", "typeString": "error" } - }, - "id": 1372, - "nodeType": "RevertStatement", - "src": "2102:59:7" - } - }, - { - "expression": { - "id": 1381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 1374, - "name": "_packages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "2221:9:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$", - "typeString": "mapping(address => struct SubscriptionPolicy.Package storage ref)" - } - }, - "id": 1376, - "indexExpression": { - "id": 1375, - "name": "holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2231:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2221:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Package_$1303_storage", - "typeString": "struct SubscriptionPolicy.Package storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 1378, - "name": "price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1353, - "src": "2249:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1379, - "name": "currency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1355, - "src": "2256:8:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 1377, - "name": "Package", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1303, - "src": "2241:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Package_$1303_storage_ptr_$", - "typeString": "type(struct SubscriptionPolicy.Package storage pointer)" - } - }, - "id": 1380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2241:24:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Package_$1303_memory_ptr", - "typeString": "struct SubscriptionPolicy.Package memory" - } - }, - "src": "2221:44:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Package_$1303_storage", - "typeString": "struct SubscriptionPolicy.Package storage ref" - } - }, - "id": 1382, - "nodeType": "ExpressionStatement", - "src": "2221:44:7" - } - ] - }, - "baseFunctions": [50260], - "functionSelector": "d1f57894", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 1348, - "kind": "modifierInvocation", - "modifierName": { - "id": 1347, - "name": "onlyPolicyAuthorizer", - "nameLocations": ["1961:20:7"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50865, - "src": "1961:20:7" - }, - "nodeType": "ModifierInvocation", - "src": "1961:20:7" - }, - { - "id": 1350, - "kind": "modifierInvocation", - "modifierName": { - "id": 1349, - "name": "initializer", - "nameLocations": ["1982:11:7"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50878, - "src": "1982:11:7" - }, - "nodeType": "ModifierInvocation", - "src": "1982:11:7" - } - ], - "name": "initialize", - "nameLocation": "1904:10:7", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "mutability": "mutable", - "name": "holder", - "nameLocation": "1923:6:7", - "nodeType": "VariableDeclaration", - "scope": 1384, - "src": "1915:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1342, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1915:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "mutability": "mutable", - "name": "init", - "nameLocation": "1946:4:7", - "nodeType": "VariableDeclaration", - "scope": 1384, - "src": "1931:19:7", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1344, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1931:5:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "1914:37:7" - }, - "returnParameters": { - "id": 1351, - "nodeType": "ParameterList", - "parameters": [], - "src": "1994:0:7" - }, - "scope": 1647, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1457, - "nodeType": "FunctionDefinition", - "src": "2427:933:7", - "nodes": [], - "body": { - "id": 1456, - "nodeType": "Block", - "src": "2580:780:7", - "nodes": [], - "statements": [ - { - "assignments": [1401], - "declarations": [ - { - "constant": false, - "id": 1401, - "mutability": "mutable", - "name": "pkg", - "nameLocation": "2605:3:7", - "nodeType": "VariableDeclaration", - "scope": 1456, - "src": "2590:18:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Package_$1303_memory_ptr", - "typeString": "struct SubscriptionPolicy.Package" - }, - "typeName": { - "id": 1400, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1399, - "name": "Package", - "nameLocations": ["2590:7:7"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1303, - "src": "2590:7:7" - }, - "referencedDeclaration": 1303, - "src": "2590:7:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Package_$1303_storage_ptr", - "typeString": "struct SubscriptionPolicy.Package" - } - }, - "visibility": "internal" - } - ], - "id": 1405, - "initialValue": { - "baseExpression": { - "id": 1402, - "name": "_packages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "2611:9:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$", - "typeString": "mapping(address => struct SubscriptionPolicy.Package storage ref)" - } - }, - "id": 1404, - "indexExpression": { - "id": 1403, - "name": "holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "2621:6:7", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2611:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Package_$1303_storage", - "typeString": "struct SubscriptionPolicy.Package storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2590:38:7" - }, - { - "condition": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 1406, - "name": "pkg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1401, - "src": "2642:3:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Package_$1303_memory_ptr", - "typeString": "struct SubscriptionPolicy.Package memory" - } - }, - "id": 1407, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2646:11:7", - "memberName": "pricePerDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1300, - "src": "2642:15:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2661:1:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2642:20:7", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 1415, - "nodeType": "IfStatement", - "src": "2638:213:7", - "trueBody": { - "id": 1414, - "nodeType": "Block", - "src": "2664:187:7", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "hexValue": "496e76616c6964206e6f7420696e697469616c697a656420686f6c64657220636f6e646974696f6e73", - "id": 1411, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2796:43:7", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1aec205e23794276aa0afcfadd0b767e900e2e41565fc044513d6e45af83bcbd", - "typeString": "literal_string \"Invalid not initialized holder conditions\"" - }, - "value": "Invalid not initialized holder conditions" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_1aec205e23794276aa0afcfadd0b767e900e2e41565fc044513d6e45af83bcbd", - "typeString": "literal_string \"Invalid not initialized holder conditions\"" - } - ], - "id": 1410, - "name": "InvalidEnforcement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50819, - "src": "2777:18:7", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$", - "typeString": "function (string memory) pure returns (error)" - } - }, - "id": 1412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2777:63:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_error", "typeString": "error" } - }, - "id": 1413, - "nodeType": "RevertStatement", - "src": "2770:70:7" - } - ] - } - }, - { - "assignments": [1417], - "declarations": [ - { - "constant": false, - "id": 1417, - "mutability": "mutable", - "name": "paidAmount", - "nameLocation": "2869:10:7", - "nodeType": "VariableDeclaration", - "scope": 1456, - "src": "2861:18:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1416, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2861:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1420, - "initialValue": { - "expression": { - "id": 1418, - "name": "agreement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1389, - "src": "2882:9:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Agreement_$51199_calldata_ptr", - "typeString": "struct T.Agreement calldata" - } - }, - "id": 1419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2892:5:7", - "memberName": "total", - "nodeType": "MemberAccess", - "referencedDeclaration": 51191, - "src": "2882:15:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2861:36:7" - }, - { - "assignments": [1422], - "declarations": [ - { - "constant": false, - "id": 1422, - "mutability": "mutable", - "name": "partiesLen", - "nameLocation": "2915:10:7", - "nodeType": "VariableDeclaration", - "scope": 1456, - "src": "2907:18:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1421, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2907:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1426, - "initialValue": { - "expression": { - "expression": { - "id": 1423, - "name": "agreement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1389, - "src": "2928:9:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Agreement_$51199_calldata_ptr", - "typeString": "struct T.Agreement calldata" - } - }, - "id": 1424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2938:7:7", - "memberName": "parties", - "nodeType": "MemberAccess", - "referencedDeclaration": 51196, - "src": "2928:17:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 1425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2946:6:7", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2928:24:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2907:45:7" - }, - { - "assignments": [1428], - "declarations": [ - { - "constant": false, - "id": 1428, - "mutability": "mutable", - "name": "pricePerDay", - "nameLocation": "2970:11:7", - "nodeType": "VariableDeclaration", - "scope": 1456, - "src": "2962:19:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1427, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2962:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1431, - "initialValue": { - "expression": { - "id": 1429, - "name": "pkg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1401, - "src": "2984:3:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Package_$1303_memory_ptr", - "typeString": "struct SubscriptionPolicy.Package memory" - } - }, - "id": 1430, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2988:11:7", - "memberName": "pricePerDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1300, - "src": "2984:15:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2962:37:7" - }, - { - "assignments": [1433], - "declarations": [ - { - "constant": false, - "id": 1433, - "mutability": "mutable", - "name": "duration", - "nameLocation": "3097:8:7", - "nodeType": "VariableDeclaration", - "scope": 1456, - "src": "3089:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1432, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3089:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1439, - "initialValue": { - "arguments": [ - { - "id": 1435, - "name": "paidAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1417, - "src": "3130:10:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1436, - "name": "pricePerDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1428, - "src": "3142:11:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1437, - "name": "partiesLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "3155:10:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "id": 1434, - "name": "_verifyDaysFromAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1596, - "src": "3108:21:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3108:58:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3089:77:7" - }, - { - "assignments": [1441], - "declarations": [ - { - "constant": false, - "id": 1441, - "mutability": "mutable", - "name": "subExpire", - "nameLocation": "3250:9:7", - "nodeType": "VariableDeclaration", - "scope": 1456, - "src": "3242:17:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3242:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1449, - "initialValue": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 1442, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "3262:5:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3268:9:7", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "3262:15:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "components": [ - { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1444, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1433, - "src": "3281:8:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "31", - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3292:6:7", - "subdenomination": "days", - "typeDescriptions": { - "typeIdentifier": "t_rational_86400_by_1", - "typeString": "int_const 86400" - }, - "value": "1" - }, - "src": "3281:17:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1447, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3280:19:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "3262:37:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3242:57:7" - }, - { - "expression": { - "arguments": [ - { - "id": 1451, - "name": "holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "3324:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1452, - "name": "agreement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1389, - "src": "3332:9:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Agreement_$51199_calldata_ptr", - "typeString": "struct T.Agreement calldata" - } - }, - { - "id": 1453, - "name": "subExpire", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1441, - "src": "3343:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { - "typeIdentifier": "t_struct$_Agreement_$51199_calldata_ptr", - "typeString": "struct T.Agreement calldata" - }, - { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "id": 1450, - "name": "_commit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51083, - "src": "3316:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_struct$_Agreement_$51199_memory_ptr_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (address,struct T.Agreement memory,uint256) returns (uint256[] memory)" - } - }, - "id": 1454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3316:37:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "functionReturnParameters": 1398, - "id": 1455, - "nodeType": "Return", - "src": "3309:44:7" - } - ] - }, - "baseFunctions": [50272], - "functionSelector": "464c0aeb", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 1392, - "kind": "modifierInvocation", - "modifierName": { - "id": 1391, - "name": "onlyPolicyManager", - "nameLocations": ["2523:17:7"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50845, - "src": "2523:17:7" - }, - "nodeType": "ModifierInvocation", - "src": "2523:17:7" - }, - { - "id": 1394, - "kind": "modifierInvocation", - "modifierName": { - "id": 1393, - "name": "initialized", - "nameLocations": ["2541:11:7"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50890, - "src": "2541:11:7" - }, - "nodeType": "ModifierInvocation", - "src": "2541:11:7" - } - ], - "name": "enforce", - "nameLocation": "2436:7:7", - "parameters": { - "id": 1390, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1386, - "mutability": "mutable", - "name": "holder", - "nameLocation": "2461:6:7", - "nodeType": "VariableDeclaration", - "scope": 1457, - "src": "2453:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1385, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2453:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1389, - "mutability": "mutable", - "name": "agreement", - "nameLocation": "2498:9:7", - "nodeType": "VariableDeclaration", - "scope": 1457, - "src": "2477:30:7", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Agreement_$51199_calldata_ptr", - "typeString": "struct T.Agreement" - }, - "typeName": { - "id": 1388, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1387, - "name": "T.Agreement", - "nameLocations": ["2477:1:7", "2479:9:7"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 51199, - "src": "2477:11:7" - }, - "referencedDeclaration": 51199, - "src": "2477:11:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Agreement_$51199_storage_ptr", - "typeString": "struct T.Agreement" - } - }, - "visibility": "internal" - } - ], - "src": "2443:70:7" - }, - "returnParameters": { - "id": 1398, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1397, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1457, - "src": "2562:16:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1395, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2562:7:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "id": 1396, - "nodeType": "ArrayTypeName", - "src": "2562:9:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "src": "2561:18:7" - }, - "scope": 1647, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1505, - "nodeType": "FunctionDefinition", - "src": "3449:527:7", - "nodes": [], - "body": { - "id": 1504, - "nodeType": "Block", - "src": "3545:431:7", - "nodes": [], - "statements": [ - { - "condition": { - "arguments": [ - { - "id": 1468, - "name": "criteria", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "3640:8:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } - ], - "id": 1467, - "name": "_isHolderAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1646, - "src": "3623:16:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bool_$", - "typeString": "function (bytes calldata) pure returns (bool)" - } - }, - "id": 1469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3623:26:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 1486, - "nodeType": "IfStatement", - "src": "3619:186:7", - "trueBody": { - "id": 1485, - "nodeType": "Block", - "src": "3651:154:7", - "statements": [ - { - "assignments": [1471], - "declarations": [ - { - "constant": false, - "id": 1471, - "mutability": "mutable", - "name": "holder", - "nameLocation": "3705:6:7", - "nodeType": "VariableDeclaration", - "scope": 1485, - "src": "3697:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1470, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3697:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 1479, - "initialValue": { - "arguments": [ - { - "id": 1474, - "name": "criteria", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "3725:8:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "components": [ - { - "id": 1476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3736:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1475, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3736:7:7", - "typeDescriptions": {} - } - } - ], - "id": 1477, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3735:9:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - } - ], - "expression": { - "id": 1472, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3714:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1473, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3718:6:7", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "3714:10:7", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3714:31:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3697:48:7" - }, - { - "expression": { - "arguments": [ - { - "id": 1481, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1460, - "src": "3778:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1482, - "name": "holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1471, - "src": "3787:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 1480, - "name": "isCompliant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51009, - "src": "3766:11:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 1483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3766:28:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "functionReturnParameters": 1466, - "id": 1484, - "nodeType": "Return", - "src": "3759:35:7" - } - ] - } - }, - { - "assignments": [1488], - "declarations": [ - { - "constant": false, - "id": 1488, - "mutability": "mutable", - "name": "assetId", - "nameLocation": "3871:7:7", - "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "3863:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1487, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3863:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1496, - "initialValue": { - "arguments": [ - { - "id": 1491, - "name": "criteria", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "3892:8:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "components": [ - { - "id": 1493, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3903:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 1492, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3903:7:7", - "typeDescriptions": {} - } - } - ], - "id": 1494, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3902:9:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" } - ], - "expression": { - "id": 1489, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3881:3:7", - "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } - }, - "id": 1490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3885:6:7", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "3881:10:7", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3881:31:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3863:49:7" - }, - { - "expression": { - "arguments": [ - { - "id": 1498, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1460, - "src": "3941:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 1500, - "name": "assetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1488, - "src": "3960:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "id": 1499, - "name": "getHolder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51023, - "src": "3950:9:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 1501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3950:18:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_address", "typeString": "address" }, - { "typeIdentifier": "t_address", "typeString": "address" } - ], - "id": 1497, - "name": "isCompliant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51009, - "src": "3929:11:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 1502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3929:40:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "functionReturnParameters": 1466, - "id": 1503, - "nodeType": "Return", - "src": "3922:47:7" - } - ] - }, - "baseFunctions": [50282], - "documentation": { - "id": 1458, - "nodeType": "StructuredDocumentation", - "src": "3366:78:7", - "text": "@notice Verifies if an account has access to holder's content or asset id." - }, - "functionSelector": "cfdce1a7", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isAccessAllowed", - "nameLocation": "3458:15:7", - "parameters": { - "id": 1463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1460, - "mutability": "mutable", - "name": "account", - "nameLocation": "3482:7:7", - "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "3474:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, - "typeName": { - "id": 1459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3474:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1462, - "mutability": "mutable", - "name": "criteria", - "nameLocation": "3506:8:7", - "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "3491:23:7", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1461, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3491:5:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3473:42:7" - }, - "returnParameters": { - "id": 1466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1465, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1505, - "src": "3539:4:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "typeName": { - "id": 1464, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3539:4:7", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "visibility": "internal" - } - ], - "src": "3538:6:7" - }, - "scope": 1647, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1553, - "nodeType": "FunctionDefinition", - "src": "4066:604:7", - "nodes": [], - "body": { - "id": 1552, - "nodeType": "Block", - "src": "4152:518:7", - "nodes": [], - "statements": [ - { - "condition": { - "id": 1517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4345:27:7", - "subExpression": { - "arguments": [ - { - "id": 1515, - "name": "criteria", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1508, - "src": "4363:8:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 1514, - "name": "_isHolderAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1646, - "src": "4346:16:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bool_$", - "typeString": "function (bytes calldata) pure returns (bool)" - } - }, - "id": 1516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4346:26:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 1522, - "nodeType": "IfStatement", - "src": "4341:95:7", - "trueBody": { - "id": 1521, - "nodeType": "Block", - "src": "4374:62:7", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1518, - "name": "InvalidNotSupportedOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50806, - "src": "4395:28:7", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 1519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4395:30:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_error", "typeString": "error" } - }, - "id": 1520, - "nodeType": "RevertStatement", - "src": "4388:37:7" - } - ] - } - }, - { - "assignments": [1524], - "declarations": [ - { - "constant": false, - "id": 1524, - "mutability": "mutable", - "name": "holder", - "nameLocation": "4454:6:7", - "nodeType": "VariableDeclaration", - "scope": 1552, - "src": "4446:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1523, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4446:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 1532, - "initialValue": { - "arguments": [ - { - "id": 1527, - "name": "criteria", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1508, - "src": "4474:8:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "components": [ - { - "id": 1529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4485:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1528, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4485:7:7", - "typeDescriptions": {} - } - } - ], - "id": 1530, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4484:9:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" } - ], - "expression": { - "id": 1525, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "4463:3:7", - "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } - }, - "id": 1526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4467:6:7", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "4463:10:7", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4463:31:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4446:48:7" - }, - { - "assignments": [1535], - "declarations": [ - { - "constant": false, - "id": 1535, - "mutability": "mutable", - "name": "pkg", - "nameLocation": "4519:3:7", - "nodeType": "VariableDeclaration", - "scope": 1552, - "src": "4504:18:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Package_$1303_memory_ptr", - "typeString": "struct SubscriptionPolicy.Package" - }, - "typeName": { - "id": 1534, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1533, - "name": "Package", - "nameLocations": ["4504:7:7"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1303, - "src": "4504:7:7" - }, - "referencedDeclaration": 1303, - "src": "4504:7:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Package_$1303_storage_ptr", - "typeString": "struct SubscriptionPolicy.Package" - } - }, - "visibility": "internal" - } - ], - "id": 1539, - "initialValue": { - "baseExpression": { - "id": 1536, - "name": "_packages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "4525:9:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$", - "typeString": "mapping(address => struct SubscriptionPolicy.Package storage ref)" - } - }, - "id": 1538, - "indexExpression": { - "id": 1537, - "name": "holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1524, - "src": "4535:6:7", - "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4525:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Package_$1303_storage", - "typeString": "struct SubscriptionPolicy.Package storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4504:38:7" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 1542, - "name": "pkg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1535, - "src": "4603:3:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Package_$1303_memory_ptr", - "typeString": "struct SubscriptionPolicy.Package memory" - } - }, - "id": 1543, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4607:11:7", - "memberName": "pricePerDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1300, - "src": "4603:15:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1544, - "name": "pkg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1535, - "src": "4620:3:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Package_$1303_memory_ptr", - "typeString": "struct SubscriptionPolicy.Package memory" - } - }, - "id": 1545, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4624:8:7", - "memberName": "currency", - "nodeType": "MemberAccess", - "referencedDeclaration": 1302, - "src": "4620:12:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "expression": { - "id": 1546, - "name": "T", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51233, - "src": "4634:1:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_T_$51233_$", - "typeString": "type(library T)" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4636:9:7", - "memberName": "RateBasis", - "nodeType": "MemberAccess", - "referencedDeclaration": 51211, - "src": "4634:11:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RateBasis_$51211_$", - "typeString": "type(enum T.RateBasis)" - } - }, - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4646:5:7", - "memberName": "DAILY", - "nodeType": "MemberAccess", - "referencedDeclaration": 51209, - "src": "4634:17:7", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RateBasis_$51211", - "typeString": "enum T.RateBasis" - } - }, - { - "hexValue": "697066733a2f2f", - "id": 1549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4653:9:7", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", - "typeString": "literal_string \"ipfs://\"" - }, - "value": "ipfs://" - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - { "typeIdentifier": "t_address", "typeString": "address" }, - { - "typeIdentifier": "t_enum$_RateBasis_$51211", - "typeString": "enum T.RateBasis" - }, - { - "typeIdentifier": "t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", - "typeString": "literal_string \"ipfs://\"" - } - ], - "expression": { - "id": 1540, - "name": "T", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51233, - "src": "4595:1:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_T_$51233_$", - "typeString": "type(library T)" - } - }, - "id": 1541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4597:5:7", - "memberName": "Terms", - "nodeType": "MemberAccess", - "referencedDeclaration": 51222, - "src": "4595:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Terms_$51222_storage_ptr_$", - "typeString": "type(struct T.Terms storage pointer)" - } - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4595:68:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Terms_$51222_memory_ptr", - "typeString": "struct T.Terms memory" - } - }, - "functionReturnParameters": 1513, - "id": 1551, - "nodeType": "Return", - "src": "4588:75:7" - } - ] - }, - "baseFunctions": [50291], - "documentation": { - "id": 1506, - "nodeType": "StructuredDocumentation", - "src": "3982:79:7", - "text": "@notice Retrieves the terms associated with a specific criteria and policy." - }, - "functionSelector": "a3937111", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "resolveTerms", - "nameLocation": "4075:12:7", - "parameters": { - "id": 1509, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1508, - "mutability": "mutable", - "name": "criteria", - "nameLocation": "4103:8:7", - "nodeType": "VariableDeclaration", - "scope": 1553, - "src": "4088:23:7", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1507, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4088:5:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4087:25:7" - }, - "returnParameters": { - "id": 1513, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1512, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1553, - "src": "4136:14:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Terms_$51222_memory_ptr", - "typeString": "struct T.Terms" - }, - "typeName": { - "id": 1511, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1510, - "name": "T.Terms", - "nameLocations": ["4136:1:7", "4138:5:7"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 51222, - "src": "4136:7:7" - }, - "referencedDeclaration": 51222, - "src": "4136:7:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Terms_$51222_storage_ptr", - "typeString": "struct T.Terms" - } - }, - "visibility": "internal" - } - ], - "src": "4135:16:7" - }, - "scope": 1647, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1596, - "nodeType": "FunctionDefinition", - "src": "4676:669:7", - "nodes": [], - "body": { - "id": 1595, - "nodeType": "Block", - "src": "4825:520:7", - "nodes": [], - "statements": [ - { - "assignments": [1565], - "declarations": [ - { - "constant": false, - "id": 1565, - "mutability": "mutable", - "name": "paymentPerAccount", - "nameLocation": "4918:17:7", - "nodeType": "VariableDeclaration", - "scope": 1595, - "src": "4910:25:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1564, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4910:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1569, - "initialValue": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1566, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "4938:6:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 1567, - "name": "partiesLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1559, - "src": "4947:10:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "4938:19:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4910:47:7" - }, - { - "assignments": [1571], - "declarations": [ - { - "constant": false, - "id": 1571, - "mutability": "mutable", - "name": "subscriptionDuration", - "nameLocation": "5023:20:7", - "nodeType": "VariableDeclaration", - "scope": 1595, - "src": "5015:28:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5015:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1575, - "initialValue": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1572, - "name": "paymentPerAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "5046:17:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 1573, - "name": "pricePerDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1557, - "src": "5066:11:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "5046:31:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5015:62:7" - }, - { - "assignments": [1577], - "declarations": [ - { - "constant": false, - "id": 1577, - "mutability": "mutable", - "name": "total", - "nameLocation": "5150:5:7", - "nodeType": "VariableDeclaration", - "scope": 1595, - "src": "5142:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1576, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5142:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1584, - "initialValue": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1578, - "name": "subscriptionDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1571, - "src": "5159:20:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 1579, - "name": "pricePerDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1557, - "src": "5182:11:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5159:34:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1581, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5158:36:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 1582, - "name": "partiesLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1559, - "src": "5197:10:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "5158:49:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5142:65:7" - }, - { - "condition": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1585, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "5221:6:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 1586, - "name": "total", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1577, - "src": "5230:5:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "5221:14:7", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 1592, - "nodeType": "IfStatement", - "src": "5217:84:7", - "trueBody": { - "errorCall": { - "arguments": [ - { - "hexValue": "496e73756666696369656e742066756e647320666f7220737562736372697074696f6e", - "id": 1589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5263:37:7", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7", - "typeString": "literal_string \"Insufficient funds for subscription\"" - }, - "value": "Insufficient funds for subscription" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7", - "typeString": "literal_string \"Insufficient funds for subscription\"" - } - ], - "id": 1588, - "name": "InvalidEnforcement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50819, - "src": "5244:18:7", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$", - "typeString": "function (string memory) pure returns (error)" - } - }, - "id": 1590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5244:57:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_error", "typeString": "error" } - }, - "id": 1591, - "nodeType": "RevertStatement", - "src": "5237:64:7" - } - }, - { - "expression": { - "id": 1593, - "name": "subscriptionDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1571, - "src": "5318:20:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "functionReturnParameters": 1563, - "id": 1594, - "nodeType": "Return", - "src": "5311:27:7" - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_verifyDaysFromAmount", - "nameLocation": "4685:21:7", - "parameters": { - "id": 1560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1555, - "mutability": "mutable", - "name": "amount", - "nameLocation": "4724:6:7", - "nodeType": "VariableDeclaration", - "scope": 1596, - "src": "4716:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 1554, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4716:7:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1557, - "mutability": "mutable", - "name": "pricePerDay", - "nameLocation": "4748:11:7", - "nodeType": "VariableDeclaration", - "scope": 1596, - "src": "4740:19:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 1556, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4740:7:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1559, - "mutability": "mutable", - "name": "partiesLen", - "nameLocation": "4777:10:7", - "nodeType": "VariableDeclaration", - "scope": 1596, - "src": "4769:18:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 1558, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4769:7:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - } - ], - "src": "4706:87:7" - }, - "returnParameters": { - "id": 1563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1562, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1596, - "src": "4816:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 1561, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4816:7:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "visibility": "internal" - } - ], - "src": "4815:9:7" - }, - "scope": 1647, - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - }, - { - "id": 1646, - "nodeType": "FunctionDefinition", - "src": "5351:1087:7", - "nodes": [], - "body": { - "id": 1645, - "nodeType": "Block", - "src": "5430:1008:7", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 1603, - "name": "criteria", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1598, - "src": "6193:8:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 1604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6202:6:7", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "6193:15:7", - "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "3332", - "id": 1605, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6212:2:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "6193:21:7", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "id": 1610, - "nodeType": "IfStatement", - "src": "6189:64:7", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1607, - "name": "InvalidNotSupportedOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50806, - "src": "6223:28:7", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 1608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6223:30:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_error", "typeString": "error" } - }, - "id": 1609, - "nodeType": "RevertStatement", - "src": "6216:37:7" - } - }, - { - "assignments": [1612], - "declarations": [ - { - "constant": false, - "id": 1612, - "mutability": "mutable", - "name": "last20Valid", - "nameLocation": "6268:11:7", - "nodeType": "VariableDeclaration", - "scope": 1645, - "src": "6263:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "typeName": { - "id": 1611, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6263:4:7", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "visibility": "internal" - } - ], - "id": 1625, - "initialValue": { - "commonType": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" }, - "id": 1624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "baseExpression": { - "id": 1615, - "name": "criteria", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1598, - "src": "6290:8:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "endExpression": { - "hexValue": "3332", - "id": 1617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6302:2:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "id": 1618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexRangeAccess", - "src": "6290:15:7", - "startExpression": { - "hexValue": "3132", - "id": 1616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6299:2:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_12_by_1", - "typeString": "int_const 12" - }, - "value": "12" - }, - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr_slice", - "typeString": "bytes calldata slice" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr_slice", - "typeString": "bytes calldata slice" - } - ], - "id": 1614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6282:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes20_$", - "typeString": "type(bytes20)" - }, - "typeName": { - "id": 1613, - "name": "bytes20", - "nodeType": "ElementaryTypeName", - "src": "6282:7:7", - "typeDescriptions": {} - } - }, - "id": 1619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6282:24:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 1622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6318:1:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } - ], - "id": 1621, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6310:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes20_$", - "typeString": "type(bytes20)" - }, - "typeName": { - "id": 1620, - "name": "bytes20", - "nodeType": "ElementaryTypeName", - "src": "6310:7:7", - "typeDescriptions": {} - } - }, - "id": 1623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6310:10:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" } - }, - "src": "6282:38:7", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6263:57:7" - }, - { - "assignments": [1627], - "declarations": [ - { - "constant": false, - "id": 1627, - "mutability": "mutable", - "name": "first12Valid", - "nameLocation": "6335:12:7", - "nodeType": "VariableDeclaration", - "scope": 1645, - "src": "6330:17:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "typeName": { - "id": 1626, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6330:4:7", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "visibility": "internal" - } - ], - "id": 1640, - "initialValue": { - "commonType": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "baseExpression": { - "id": 1630, - "name": "criteria", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1598, - "src": "6358:8:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "endExpression": { - "hexValue": "3132", - "id": 1632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6369:2:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_12_by_1", - "typeString": "int_const 12" - }, - "value": "12" - }, - "id": 1633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexRangeAccess", - "src": "6358:14:7", - "startExpression": { - "hexValue": "30", - "id": 1631, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6367:1:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr_slice", - "typeString": "bytes calldata slice" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr_slice", - "typeString": "bytes calldata slice" - } - ], - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6350:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes12_$", - "typeString": "type(bytes12)" - }, - "typeName": { - "id": 1628, - "name": "bytes12", - "nodeType": "ElementaryTypeName", - "src": "6350:7:7", - "typeDescriptions": {} - } - }, - "id": 1634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6350:23:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6385:1:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } - ], - "id": 1636, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6377:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes12_$", - "typeString": "type(bytes12)" - }, - "typeName": { - "id": 1635, - "name": "bytes12", - "nodeType": "ElementaryTypeName", - "src": "6377:7:7", - "typeDescriptions": {} - } - }, - "id": 1638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6377:10:7", - "tryCall": false, - "typeDescriptions": { "typeIdentifier": "t_bytes12", "typeString": "bytes12" } - }, - "src": "6350:37:7", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6330:57:7" - }, - { - "expression": { - "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1641, - "name": "last20Valid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1612, - "src": "6404:11:7", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "id": 1642, - "name": "first12Valid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1627, - "src": "6419:12:7", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "src": "6404:27:7", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "functionReturnParameters": 1602, - "id": 1644, - "nodeType": "Return", - "src": "6397:34:7" - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isHolderAddress", - "nameLocation": "5360:16:7", - "parameters": { - "id": 1599, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1598, - "mutability": "mutable", - "name": "criteria", - "nameLocation": "5392:8:7", - "nodeType": "VariableDeclaration", - "scope": 1646, - "src": "5377:23:7", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1597, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5377:5:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5376:25:7" - }, - "returnParameters": { - "id": 1602, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1601, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1646, - "src": "5424:4:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "typeName": { - "id": 1600, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5424:4:7", - "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "visibility": "internal" - } - ], - "src": "5423:6:7" - }, - "scope": 1647, - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 1296, - "name": "BasePolicy", - "nameLocations": ["312:10:7"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 51139, - "src": "312:10:7" - }, - "id": 1297, - "nodeType": "InheritanceSpecifier", - "src": "312:10:7" - } - ], - "canonicalName": "SubscriptionPolicy", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 1295, - "nodeType": "StructuredDocumentation", - "src": "184:97:7", - "text": "@title SubscriptionPolicy\n @notice Implements a subscription-based content access policy." - }, - "fullyImplemented": true, - "linearizedBaseContracts": [1647, 51139, 46322, 46334, 50308, 45854], - "name": "SubscriptionPolicy", - "nameLocation": "290:18:7", - "scope": 1648, - "usedErrors": [45799, 50803, 50806, 50811, 50814, 50819, 50822, 50827], - "usedEvents": [50800] - } - ], - "license": "MIT" - }, - "id": 7 -} +{"abi":[{"type":"constructor","inputs":[{"name":"rightPolicyManagerAddress","type":"address","internalType":"address"},{"name":"ownershipAddress","type":"address","internalType":"address"},{"name":"providerAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ASSET_OWNERSHIP","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAssetOwnership"}],"stateMutability":"view"},{"type":"function","name":"ATTESTATION_PROVIDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAttestationProvider"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"_isCompliant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"description","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"enforce","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"agreement","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"total","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getAttestationProvider","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getHolder","inputs":[{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getLicense","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"init","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAccessAllowed","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resolveTerms","inputs":[{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"AttestedAgreement","inputs":[{"name":"context","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"attestationId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MetricLogged","inputs":[{"name":"metric","type":"string","indexed":true,"internalType":"string"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"context","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SubscriptionEnforced","inputs":[{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"pricePerDay","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"duration","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"InvalidAssetHolder","inputs":[]},{"type":"error","name":"InvalidAttestation","inputs":[]},{"type":"error","name":"InvalidEnforcement","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidInitialization","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidNotSupportedOperation","inputs":[]},{"type":"error","name":"InvalidPolicyInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedCall","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60e0346100cb57601f611b5238819003918201601f19168301916001600160401b038311848410176100cf578084926060946040528339810103126100cb57610047816100e3565b610053602083016100e3565b916001600160a01b0390610069906040016100e3565b166080526001600160a01b0390811660a0521660c052604051611a5a90816100f8823960805181818161049b01528181610d7a015261167e015260a05181818161013d015281816101ee01526108e5015260c05181818160e901526117c60152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100cb5756fe60806040526004361015610011575f80fd5b5f3560e01c80629e11ff146112b457806301ffc9a71461121357806306fdde03146111b457806319ad44fc1461046f578063392e53cd14611193578063464c0aeb146108905780637284e416146106d5578063a393711114610505578063a5cc2dbb146104bf578063b1b87ffb1461046f578063cfdce1a71461044c578063d1f578941461019d578063e8a96b4614610161578063f1bdc452146101115763f520d4eb146100bd575f80fd5b3461010d575f60031936011261010d57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b3461010d575f60031936011261010d57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461010d57602060031936011261010d57602061017f60043561177d565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461010d576101ab366114ae565b6040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156104415773ffffffffffffffffffffffffffffffffffffffff915f91610412575b5016330361038e57816040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005f54165f558101031261010d5773ffffffffffffffffffffffffffffffffffffffff61029060208335930161132f565b169181156103305773ffffffffffffffffffffffffffffffffffffffff9182600192604051926102bf84611350565b835260208301958652165f52600260205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005f5416175f555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b610434915060203d60201161043a575b61042c8183611388565b810190611751565b85610233565b503d610422565b6040513d5f823e3d90fd5b3461010d57602061046561045f366114ae565b916116ef565b6040519015158152f35b3461010d575f60031936011261010d57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461010d57604060031936011261010d576104d861130c565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361010d57602091610465916115d2565b3461010d57602060031936011261010d5760043567ffffffffffffffff811161010d57610536903690600401611480565b6060806040516105458161136c565b5f81525f60208201525f60408201520152610560818361194d565b156106ad57816020918101031261010d5761058f73ffffffffffffffffffffffffffffffffffffffff9161132f565b165f52600260205260405f2060206040516105a981611350565b73ffffffffffffffffffffffffffffffffffffffff60018454948584520154169182910152604051916105db8361136c565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff60405192610610604085611388565b600784527f697066733a2f2f0000000000000000000000000000000000000000000000000060208501526060850193845260405194602086525160208601525116604084015251600481101561068057829161067c9160608401525160808084015260a083019061143d565b0390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461010d575f60031936011261010d5761067c6101606106f86040519182611388565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e0000000000000000000000000000000000000000000000000061014082015260405191829160208352602083019061143d565b3461010d57604060031936011261010d576108a961130c565b60243567ffffffffffffffff811161010d57806004019160e0600319833603011261010d5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361110f5760ff5f5416156110e75773ffffffffffffffffffffffffffffffffffffffff16805f52600260205260405f20926040519361094585611350565b73ffffffffffffffffffffffffffffffffffffffff60018254928388520154166020860152156110635760648301359360a4840161098381846114ff565b92905051926109ae61099e85610999868b61188c565b61188c565b936109a98686611553565b611553565b8710610fdf57620151808302838104620151801484151715610fb257420195864211610fb2576040519060e0820182811067ffffffffffffffff821117610f85576040526109fb8361132f565b8252610a096024820161132f565b9160208101928352610a1d6044830161132f565b60408201908152606082019a8b52608082019060848401358252863567ffffffffffffffff811161010d5784013660238201121561010d57610a6990369060246004820135910161157e565b9360a0840194855260c481013567ffffffffffffffff811161010d5736910160040190610a95916113c9565b9260c08101938452604051938b602086015260208552610ab6604086611388565b60405196879260208401602090525173ffffffffffffffffffffffffffffffffffffffff1660408401525173ffffffffffffffffffffffffffffffffffffffff166060830152825173ffffffffffffffffffffffffffffffffffffffff1660808301528d5160a0830152835160c0830152855160e0830160e090526101208301610b3f916118c3565b9051908281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001610100840152610b769161143d565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018652610ba69086611388565b5173ffffffffffffffffffffffffffffffffffffffff168351946040519586928c602085015260408401523060608401526080830160a0905260c08301610bec916118c3565b8281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a0840152610c1f9161143d565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018552610c4f9085611388565b8251518260409c8d9282845191610c668684611388565b601883527f706f6c6963795f61677265656d656e745f7061727469657300000000000000006020840152610c99926119c0565b51825192610ca79084611388565b601683527f706f6c6963795f61677265656d656e745f746f74616c000000000000000000006020840152610cda926119c0565b51908a5191610ce98c84611388565b601583527f706f6c6963795f61677265656d656e745f6665657300000000000000000000006020840152610d1c926119c0565b519088519788927f8ca86cad000000000000000000000000000000000000000000000000000000008452600484016060905260648401610d5b916118c3565b906024840152828103600319016044840152610d769161143d565b03867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a5f948591f1958615610f7b575f96610ee4575b50610dda91610dd3916114ff565b369161157e565b8051905f5b828110610e59578688877fee94b033ef151baf8dc7ef281445b8da1393054811ea821ac65a84956ea1076682898982519182526020820152a28051918291602080840191818552835180935284019201905f5b818110610e40575050500390f35b8251845285945060209384019390920191600101610e32565b80600191897f28978c88cb5e4642b7ad908585d16cc621e1e36b3f7130c942036832fb7b150860208b83518c83820152828152610e968582611388565b610ece610ec573ffffffffffffffffffffffffffffffffffffffff610ebb898d61190c565b511697889461190c565b51928392611812565b94855f528884525f20558d51908152a301610ddf565b9095503d805f833e610ef68183611388565b81019060208183031261010d5780519067ffffffffffffffff821161010d57019080601f8301121561010d578151610f2d81611566565b92610f3a8a519485611388565b81845260208085019260051b82010192831161010d57602001905b828210610f6b575091969150610dda9050610dc5565b8151815260209182019101610f55565b87513d5f823e3d90fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f496e76616c6964206e6f7420696e697469616c697a656420686f6c646572206360448201527f6f6e646974696f6e7300000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b3461010d575f60031936011261010d57602060ff5f54166040519015158152f35b3461010d575f60031936011261010d5761067c6040516111d5604082611388565b601281527f537562736372697074696f6e506f6c6963790000000000000000000000000000602082015260405191829160208352602083019061143d565b3461010d57602060031936011261010d576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361010d57807f3ea9b6d8000000000000000000000000000000000000000000000000000000006020921490811561128a575b506040519015158152f35b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150148261127f565b3461010d57604060031936011261010d576112cd61130c565b6024359067ffffffffffffffff821161010d576112f16112f69236906004016113c9565b611812565b5f526001602052602060405f2054604051908152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361010d57565b359073ffffffffffffffffffffffffffffffffffffffff8216820361010d57565b6040810190811067ffffffffffffffff821117610f8557604052565b6080810190811067ffffffffffffffff821117610f8557604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f8557604052565b81601f8201121561010d5780359067ffffffffffffffff8211610f85576040519261141c601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200185611388565b8284526020838301011161010d57815f926020809301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9181601f8401121561010d5782359167ffffffffffffffff831161010d576020838186019501011161010d57565b90604060031983011261010d5760043573ffffffffffffffffffffffffffffffffffffffff8116810361010d57916024359067ffffffffffffffff821161010d576114fb91600401611480565b9091565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561010d570180359067ffffffffffffffff821161010d57602001918160051b3603831361010d57565b81810292918115918404141715610fb257565b67ffffffffffffffff8111610f855760051b60200190565b92919061158a81611566565b936115986040519586611388565b602085838152019160051b810192831161010d57905b8282106115ba57505050565b602080916115c78461132f565b8152019101906115ae565b90816116069173ffffffffffffffffffffffffffffffffffffffff60405191166020820152602081526112f1604082611388565b5f52600160205260405f20549081156116e95773ffffffffffffffffffffffffffffffffffffffff90604051927febfa62b9000000000000000000000000000000000000000000000000000000008452600484015216602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610441575f916116b1575090565b90506020813d6020116116e1575b816116cc60209383611388565b8101031261010d5751801515810361010d5790565b3d91506116bf565b50505f90565b9091826020916116ff818361194d565b611721578101031261010d5761171861171e923561177d565b906115d2565b90565b8101031261010d5773ffffffffffffffffffffffffffffffffffffffff61174a61171e9361132f565b16906115d2565b9081602091031261010d575173ffffffffffffffffffffffffffffffffffffffff8116810361010d5790565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610441575f916117f9575090565b61171e915060203d60201161043a5761042c8183611388565b906118866014602060405180947fffffffffffffffffffffffffffffffffffffffff00000000000000000000000083808401988051918291018a5e83019160601b168382015203017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4810184520182611388565b51902090565b8115611896570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90602080835192838152019201905f5b8181106118e05750505090565b825173ffffffffffffffffffffffffffffffffffffffff168452602093840193909201916001016118d3565b80518210156119205760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b602082036106ad578160201161010d577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000600c82013516151591600c1161010d5781611997575090565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000915035161590565b9160207f278481efc8809729c153d269c68a1b1231345dd481471624806c4258498816d19293604051918183925191829101835e81015f815203902092611a1f604051928392835242602084015260606040840152606083019061143d565b0390a256fea2646970667358221220652786a788ae14b614088ea0848903b897ceafa3b72471d14909395a1c30e15264736f6c634300081a0033","sourceMap":"413:8310:4:-:0;;;;;;;;;;;;;-1:-1:-1;;413:8310:4;;;;-1:-1:-1;;;;;413:8310:4;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;-1:-1:-1;;;;;413:8310:4;;;;;;:::i;:::-;;4711:60:72;;-1:-1:-1;;;;;413:8310:4;;;;4781:65:72;413:8310:4;4856:49:72;;413:8310:4;;;;;;;;4711:60:72;413:8310:4;;;;;;;;;;;;;;;4781:65:72;413:8310:4;;;;;;;;;;;;;;;4856:49:72;413:8310:4;;;;;;;;;;;;-1:-1:-1;413:8310:4;;;;;;-1:-1:-1;413:8310:4;;;;;-1:-1:-1;413:8310:4;;;;-1:-1:-1;;;;;413:8310:4;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80629e11ff146112b457806301ffc9a71461121357806306fdde03146111b457806319ad44fc1461046f578063392e53cd14611193578063464c0aeb146108905780637284e416146106d5578063a393711114610505578063a5cc2dbb146104bf578063b1b87ffb1461046f578063cfdce1a71461044c578063d1f578941461019d578063e8a96b4614610161578063f1bdc452146101115763f520d4eb146100bd575f80fd5b3461010d575f60031936011261010d57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b3461010d575f60031936011261010d57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461010d57602060031936011261010d57602061017f60043561177d565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461010d576101ab366114ae565b6040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156104415773ffffffffffffffffffffffffffffffffffffffff915f91610412575b5016330361038e57816040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005f54165f558101031261010d5773ffffffffffffffffffffffffffffffffffffffff61029060208335930161132f565b169181156103305773ffffffffffffffffffffffffffffffffffffffff9182600192604051926102bf84611350565b835260208301958652165f52600260205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005f5416175f555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b610434915060203d60201161043a575b61042c8183611388565b810190611751565b85610233565b503d610422565b6040513d5f823e3d90fd5b3461010d57602061046561045f366114ae565b916116ef565b6040519015158152f35b3461010d575f60031936011261010d57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461010d57604060031936011261010d576104d861130c565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361010d57602091610465916115d2565b3461010d57602060031936011261010d5760043567ffffffffffffffff811161010d57610536903690600401611480565b6060806040516105458161136c565b5f81525f60208201525f60408201520152610560818361194d565b156106ad57816020918101031261010d5761058f73ffffffffffffffffffffffffffffffffffffffff9161132f565b165f52600260205260405f2060206040516105a981611350565b73ffffffffffffffffffffffffffffffffffffffff60018454948584520154169182910152604051916105db8361136c565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff60405192610610604085611388565b600784527f697066733a2f2f0000000000000000000000000000000000000000000000000060208501526060850193845260405194602086525160208601525116604084015251600481101561068057829161067c9160608401525160808084015260a083019061143d565b0390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461010d575f60031936011261010d5761067c6101606106f86040519182611388565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e0000000000000000000000000000000000000000000000000061014082015260405191829160208352602083019061143d565b3461010d57604060031936011261010d576108a961130c565b60243567ffffffffffffffff811161010d57806004019160e0600319833603011261010d5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361110f5760ff5f5416156110e75773ffffffffffffffffffffffffffffffffffffffff16805f52600260205260405f20926040519361094585611350565b73ffffffffffffffffffffffffffffffffffffffff60018254928388520154166020860152156110635760648301359360a4840161098381846114ff565b92905051926109ae61099e85610999868b61188c565b61188c565b936109a98686611553565b611553565b8710610fdf57620151808302838104620151801484151715610fb257420195864211610fb2576040519060e0820182811067ffffffffffffffff821117610f85576040526109fb8361132f565b8252610a096024820161132f565b9160208101928352610a1d6044830161132f565b60408201908152606082019a8b52608082019060848401358252863567ffffffffffffffff811161010d5784013660238201121561010d57610a6990369060246004820135910161157e565b9360a0840194855260c481013567ffffffffffffffff811161010d5736910160040190610a95916113c9565b9260c08101938452604051938b602086015260208552610ab6604086611388565b60405196879260208401602090525173ffffffffffffffffffffffffffffffffffffffff1660408401525173ffffffffffffffffffffffffffffffffffffffff166060830152825173ffffffffffffffffffffffffffffffffffffffff1660808301528d5160a0830152835160c0830152855160e0830160e090526101208301610b3f916118c3565b9051908281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001610100840152610b769161143d565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018652610ba69086611388565b5173ffffffffffffffffffffffffffffffffffffffff168351946040519586928c602085015260408401523060608401526080830160a0905260c08301610bec916118c3565b8281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a0840152610c1f9161143d565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018552610c4f9085611388565b8251518260409c8d9282845191610c668684611388565b601883527f706f6c6963795f61677265656d656e745f7061727469657300000000000000006020840152610c99926119c0565b51825192610ca79084611388565b601683527f706f6c6963795f61677265656d656e745f746f74616c000000000000000000006020840152610cda926119c0565b51908a5191610ce98c84611388565b601583527f706f6c6963795f61677265656d656e745f6665657300000000000000000000006020840152610d1c926119c0565b519088519788927f8ca86cad000000000000000000000000000000000000000000000000000000008452600484016060905260648401610d5b916118c3565b906024840152828103600319016044840152610d769161143d565b03867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a5f948591f1958615610f7b575f96610ee4575b50610dda91610dd3916114ff565b369161157e565b8051905f5b828110610e59578688877fee94b033ef151baf8dc7ef281445b8da1393054811ea821ac65a84956ea1076682898982519182526020820152a28051918291602080840191818552835180935284019201905f5b818110610e40575050500390f35b8251845285945060209384019390920191600101610e32565b80600191897f28978c88cb5e4642b7ad908585d16cc621e1e36b3f7130c942036832fb7b150860208b83518c83820152828152610e968582611388565b610ece610ec573ffffffffffffffffffffffffffffffffffffffff610ebb898d61190c565b511697889461190c565b51928392611812565b94855f528884525f20558d51908152a301610ddf565b9095503d805f833e610ef68183611388565b81019060208183031261010d5780519067ffffffffffffffff821161010d57019080601f8301121561010d578151610f2d81611566565b92610f3a8a519485611388565b81845260208085019260051b82010192831161010d57602001905b828210610f6b575091969150610dda9050610dc5565b8151815260209182019101610f55565b87513d5f823e3d90fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f496e76616c6964206e6f7420696e697469616c697a656420686f6c646572206360448201527f6f6e646974696f6e7300000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b3461010d575f60031936011261010d57602060ff5f54166040519015158152f35b3461010d575f60031936011261010d5761067c6040516111d5604082611388565b601281527f537562736372697074696f6e506f6c6963790000000000000000000000000000602082015260405191829160208352602083019061143d565b3461010d57602060031936011261010d576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361010d57807f3ea9b6d8000000000000000000000000000000000000000000000000000000006020921490811561128a575b506040519015158152f35b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150148261127f565b3461010d57604060031936011261010d576112cd61130c565b6024359067ffffffffffffffff821161010d576112f16112f69236906004016113c9565b611812565b5f526001602052602060405f2054604051908152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361010d57565b359073ffffffffffffffffffffffffffffffffffffffff8216820361010d57565b6040810190811067ffffffffffffffff821117610f8557604052565b6080810190811067ffffffffffffffff821117610f8557604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f8557604052565b81601f8201121561010d5780359067ffffffffffffffff8211610f85576040519261141c601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200185611388565b8284526020838301011161010d57815f926020809301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9181601f8401121561010d5782359167ffffffffffffffff831161010d576020838186019501011161010d57565b90604060031983011261010d5760043573ffffffffffffffffffffffffffffffffffffffff8116810361010d57916024359067ffffffffffffffff821161010d576114fb91600401611480565b9091565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561010d570180359067ffffffffffffffff821161010d57602001918160051b3603831361010d57565b81810292918115918404141715610fb257565b67ffffffffffffffff8111610f855760051b60200190565b92919061158a81611566565b936115986040519586611388565b602085838152019160051b810192831161010d57905b8282106115ba57505050565b602080916115c78461132f565b8152019101906115ae565b90816116069173ffffffffffffffffffffffffffffffffffffffff60405191166020820152602081526112f1604082611388565b5f52600160205260405f20549081156116e95773ffffffffffffffffffffffffffffffffffffffff90604051927febfa62b9000000000000000000000000000000000000000000000000000000008452600484015216602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610441575f916116b1575090565b90506020813d6020116116e1575b816116cc60209383611388565b8101031261010d5751801515810361010d5790565b3d91506116bf565b50505f90565b9091826020916116ff818361194d565b611721578101031261010d5761171861171e923561177d565b906115d2565b90565b8101031261010d5773ffffffffffffffffffffffffffffffffffffffff61174a61171e9361132f565b16906115d2565b9081602091031261010d575173ffffffffffffffffffffffffffffffffffffffff8116810361010d5790565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610441575f916117f9575090565b61171e915060203d60201161043a5761042c8183611388565b906118866014602060405180947fffffffffffffffffffffffffffffffffffffffff00000000000000000000000083808401988051918291018a5e83019160601b168382015203017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4810184520182611388565b51902090565b8115611896570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90602080835192838152019201905f5b8181106118e05750505090565b825173ffffffffffffffffffffffffffffffffffffffff168452602093840193909201916001016118d3565b80518210156119205760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b602082036106ad578160201161010d577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000600c82013516151591600c1161010d5781611997575090565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000915035161590565b9160207f278481efc8809729c153d269c68a1b1231345dd481471624806c4258498816d19293604051918183925191829101835e81015f815203902092611a1f604051928392835242602084015260606040840152606083019061143d565b0390a256fea2646970667358221220652786a788ae14b614088ea0848903b897ceafa3b72471d14909395a1c30e15264736f6c634300081a0033","sourceMap":"413:8310:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;413:8310:4;;;;;;;;;1012:48:72;413:8310:4;;;;;;;;;;;;;-1:-1:-1;;413:8310:4;;;;;;;;;947:59:72;413:8310:4;;;;;;;;;-1:-1:-1;;413:8310:4;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;3459:43:72;;;:21;413:8310:4;3459:21:72;413:8310:4;3459:21:72;413:8310:4;3459:43:72;;;;;;413:8310:4;3459:43:72;413:8310:4;3459:43:72;;;413:8310:4;;;3445:10:72;:57;3441:160;;413:8310:4;;;;;;;;;2707:36;;413:8310;;;;;;3459:43:72;413:8310:4;;;;;:::i;:::-;;2757:10;;;2753:75;;413:8310;;;;;;;;;;;:::i;:::-;;;3459:43:72;2908:24:4;;413:8310;;;;;;2888:9;3459:43:72;413:8310:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2753:75;2776:52;413:8310;;2776:52;;;3459:43:72;413:8310:4;2776:52;;413:8310;;;;;;;;;;;2776:52;3441:160:72;3525:65;413:8310:4;;3525:65:72;;;3459:43;413:8310:4;3525:65:72;;413:8310:4;;;;;;;;;;;;;;;;3525:65:72;3459:43;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;413:8310:4;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;413:8310:4;;;;;;;;;5303:20:72;413:8310:4;;;;;;;;;-1:-1:-1;;413:8310:4;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;413:8310:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5352:26;;;;:::i;:::-;5351:27;5347:95;;5469:31;413:8310;5469:31;;;413:8310;;;;;;;;:::i;:::-;;;;5531:9;413:8310;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5601:68;;413:8310;;;;5601:68;;5531:9;413:8310;;;;;;;;;;:::i;:::-;;;;;;;;;;5601:68;;413:8310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;5347:95;5401:30;413:8310;5401:30;413:8310;;5401:30;413:8310;;;;;-1:-1:-1;;413:8310:4;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;413:8310:4;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;413:8310:4;;;;;;;;3178:21:72;413:8310:4;3156:10:72;:44;3152:144;;413:8310:4;;;;4512:13:72;4508:80;;413:8310:4;;;;;3278:9;413:8310;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3309:20;3305:213;;3549:15;;;413:8310;3595:17;;;;;;;;:::i;:::-;413:8310;;;;6622:19;6842:49;6730:31;6622:19;;;;;:::i;:::-;6730:31;:::i;:::-;6843:34;;;;;:::i;:::-;6842:49;:::i;:::-;6905:14;;6901:84;;3894:6;413:8310;;;;;3894:6;413:8310;;;;;;;3864:15;413:8310;3864:15;;;413:8310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3595:17;413:8310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7181:18:72;;413:8310:4;7181:18:72;;413:8310:4;;7181:18:72;;;413:8310:4;7181:18:72;;:::i;:::-;413:8310:4;;7232:21:72;;;413:8310:4;7232:21:72;;413:8310:4;;;;;;;;;;;;;;;;;;;;;;;;;;;3595:17;413:8310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;7232:21:72;413:8310:4;7232:21:72;;;;;;;;:::i;:::-;413:8310:4;;;7338:17:72;;413:8310:4;;;7283:82:72;;;;413:8310:4;7283:82:72;;413:8310:4;;;;;7331:4:72;413:8310:4;;;;;;;3595:17;413:8310;;;;;;;;:::i;:::-;;;;;;3595:17;413:8310;;;;;;:::i;:::-;7283:82:72;413:8310:4;7283:82:72;;;;;;;;:::i;:::-;7511:17;;413:8310:4;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;7451:94:72;;;:::i;:::-;413:8310:4;;;;;;;;:::i;:::-;;;;;;;;;7568:83:72;;;:::i;:::-;413:8310:4;;;;;;;;;:::i;:::-;;;;;;;;;7661:81:72;;;:::i;:::-;7787:17;413:8310:4;;;7759:62:72;;;413:8310:4;7759:62:72;;413:8310:4;7759:62:72;;413:8310:4;;;3549:15;413:8310;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;413:8310:4;;;;;;;;:::i;:::-;7759:62:72;:20;;413:8310:4;;7759:62:72;;;413:8310:4;7759:62:72;;;;;;;;;413:8310:4;7759:62:72;;;413:8310:4;4040:17;413:8310;4040:17;;;;:::i;:::-;413:8310;;;:::i;:::-;;;7434:13;413:8310;7449:14;;;;;;413:8310;;;4131:51;413:8310;;;;;;;;;;;;4131:51;413:8310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;413:8310:4;;;;;;;;;;;;;7465:20;413:8310;;;;8581:46:72;413:8310:4;;;;7524:18;;;;413:8310;7524:18;;;;;;;:::i;:::-;8485:37:72;7593:17:4;413:8310;7572:10;;;;:::i;:::-;413:8310;;7593:17;;;;:::i;:::-;413:8310;8485:37:72;;;;:::i;:::-;413:8310:4;;;;;;;;;;;;;;;8581:46:72;413:8310:4;7434:13;;7759:62:72;;;;;;413:8310:4;7759:62:72;;;;;;:::i;:::-;;;413:8310:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7759:62:72;;;-1:-1:-1;413:8310:4;;-1:-1:-1;7759:62:72;;413:8310:4;;;;;;;;;;;;;7759:62:72;413:8310:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6901:84;6928:57;413:8310;;6928:57;;;413:8310;;6928:57;;413:8310;;;;;;;;;;;;3549:15;413:8310;;;6928:57;3305:213;3444:63;413:8310;;3444:63;;;413:8310;;3444:63;;413:8310;;;;;;;;;;;;;;;;3444:63;4508:80:72;4548:29;413:8310:4;4548:29:72;413:8310:4;;4548:29:72;3152:144;3223:62;413:8310:4;;3223:62:72;;;413:8310:4;;3223:62:72;;413:8310:4;;;;;;;;;;;;;;;;3223:62:72;413:8310:4;;;;;-1:-1:-1;;413:8310:4;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;413:8310:4;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;413:8310:4;;;;;;;;;;;;;;;5709:40:72;5724:25;413:8310:4;5709:40:72;;:80;;;;;413:8310:4;;;;;;;;;;5709:80:72;877:25:51;862:40;;;5709:80:72;;;413:8310:4;;;;;-1:-1:-1;;413:8310:4;;;;;;;:::i;:::-;;;;;;;;;;6573:38:72;413:8310:4;;;;;;:::i;:::-;6573:38:72;:::i;:::-;413:8310:4;;6628:13:72;413:8310:4;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;413:8310:4;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;413:8310:4;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;413:8310:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;5938:416;;;6573:38:72;5938:416:4;413:8310;;;;;6054:18;;;413:8310;6054:18;;;;413:8310;6054:18;;:::i;6573:38:72:-;413:8310:4;;6628:13:72;6054:18:4;413:8310;;;;;6220:18;;;6216:36;;413:8310;;;;6296:51;413:8310;6296:51;;;;;413:8310;;;;;;6054:18;6296:20;:51;:20;413:8310;6296:20;413:8310;6296:51;;;;;;;413:8310;6296:51;;;6289:58;5938:416;:::o;6296:51::-;;;6054:18;6296:51;;6054:18;6296:51;;;;;;6054:18;6296:51;;;:::i;:::-;;;413:8310;;;;;;;;;;;;5938:416;:::o;6296:51::-;;;-1:-1:-1;6296:51:4;;6216:36;6240:12;;413:8310;6240:12;:::o;4309:673::-;;;;413:8310;4309:673;4502:26;;;;:::i;:::-;4498:187;;4886:31;;413:8310;;;;4956:18;4934:41;413:8310;;4956:18;:::i;:::-;4934:41;;:::i;:::-;4309:673;:::o;4498:187::-;4593:31;;413:8310;;;;;;4645:29;413:8310;;:::i;:::-;;4645:29;;:::i;413:8310::-;;;;;;;;;;;;;;;;;;:::o;5941:155:72:-;413:8310:4;;6024:32:72;413:8310:4;6024:32:72;;;;;413:8310:4;;6024:15:72;:32;:15;413:8310:4;6024:15:72;413:8310:4;6024:32:72;;;;;;;-1:-1:-1;6024:32:72;;;6017:39;5941:155;:::o;6024:32::-;;;;413:8310:4;6024:32:72;413:8310:4;6024:32:72;;;;;;;:::i;9090:168::-;;9216:34;413:8310:4;9216:34:72;413:8310:4;;9216:34:72;;413:8310:4;9216:34:72;;;;413:8310:4;;;;;;;;;;;;;;;;;;;9216:34:72;;;;;;;;;;:::i;:::-;413:8310:4;9206:45:72;;9090:168;:::o;413:8310:4:-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;413:8310:4;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;7634:1087;8495:2;8476:21;;8472:64;;413:8310;8495:2;413:8310;;;;8582:2;413:8310;;;;8565:38;;413:8310;8582:2;413:8310;;;8687:27;;;8680:34;7634:1087;:::o;8687:27::-;413:8310;;;;;8633:37;7634:1087;:::o;1235:241:71:-;;413:8310:4;1416:53:71;1235:241;;413:8310:4;;;;;;;;;;;;;;;-1:-1:-1;413:8310:4;;;;;;;;;;;;;;1444:15:71;413:8310:4;;;;;;;;;;;;;;:::i;:::-;1416:53:71;;;1235:241::o","linkReferences":{},"immutableReferences":{"45397":[{"start":1179,"length":32},{"start":3450,"length":32},{"start":5758,"length":32}],"45400":[{"start":317,"length":32},{"start":494,"length":32},{"start":2277,"length":32}],"45403":[{"start":233,"length":32},{"start":6086,"length":32}]}},"methodIdentifiers":{"ASSET_OWNERSHIP()":"f520d4eb","ATTESTATION_PROVIDER()":"19ad44fc","RIGHTS_POLICY_MANAGER()":"f1bdc452","_isCompliant(address,address)":"a5cc2dbb","description()":"7284e416","enforce(address,(address,address,address,uint256,uint256,address[],bytes))":"464c0aeb","getAttestationProvider()":"b1b87ffb","getHolder(uint256)":"e8a96b46","getLicense(address,bytes)":"009e11ff","initialize(address,bytes)":"d1f57894","isAccessAllowed(address,bytes)":"cfdce1a7","isInitialized()":"392e53cd","name()":"06fdde03","resolveTerms(bytes)":"a3937111","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightPolicyManagerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ownershipAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"providerAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidAssetHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAttestation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidEnforcement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNotSupportedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"context\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"attestationId\",\"type\":\"uint256\"}],\"name\":\"AttestedAgreement\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"metric\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"}],\"name\":\"MetricLogged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pricePerDay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"SubscriptionEnforced\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET_OWNERSHIP\",\"outputs\":[{\"internalType\":\"contract IAssetOwnership\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ATTESTATION_PROVIDER\",\"outputs\":[{\"internalType\":\"contract IAttestationProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"_isCompliant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"agreement\",\"type\":\"tuple\"}],\"name\":\"enforce\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAttestationProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getHolder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"getLicense\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"init\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"isAccessAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"resolveTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidAssetHolder()\":[{\"details\":\"Thrown when an attempt is made to access content without proper authorization. This error is used to prevent unauthorized access to content protected by policies or rights.\"}],\"InvalidAttestation()\":[{\"details\":\"Thrown when there is an issue with the attestation, such as when an attestation is missing or invalid.\"}],\"InvalidEnforcement(string)\":[{\"details\":\"This error is thrown when the policy enforcement process fails.\",\"params\":{\"reason\":\"A descriptive message providing details about the enforcement failure.\"}}],\"InvalidInitialization(string)\":[{\"details\":\"This error is thrown when there is an issue with the initial setup or configuration.\"}],\"InvalidPolicyInitialization()\":[{\"details\":\"Thrown when attempting to initialize a policy for unregistered or invalid content.\"}]},\"events\":{\"AttestedAgreement(bytes32,address,uint256)\":{\"params\":{\"account\":\"The address of the user whose access or compliance is being enforced.\",\"attestationId\":\"The unique identifier of the attestations that confirms compliance or access.\",\"context\":\"The attested agreement key map relations. eg: (account & holder), (account & asset id)\"}},\"MetricLogged(string,uint256,uint256,bytes)\":{\"params\":{\"context\":\"Additional context or data associated with the metric. This could include asset IDs, policy addresses, or other encoded data.\",\"metric\":\"The name of the metric being logged (e.g., \\\"access_count\\\").\",\"timestamp\":\"The timestamp when the metric was logged.\",\"value\":\"The value associated with the metric.\"}},\"SubscriptionEnforced(address,uint256,uint256)\":{\"params\":{\"duration\":\"The calculated subscription duration in days.\",\"holder\":\"The address of the rights holder associated with the subscription.\",\"pricePerDay\":\"The daily price of the subscription.\"}}},\"kind\":\"dev\",\"methods\":{\"_isCompliant(address,address)\":{\"details\":\"The function checks if the provided account complies with the attestation.\",\"params\":{\"account\":\"The address of the user whose access is being verified.\"}},\"enforce(address,(address,address,address,uint256,uint256,address[],bytes))\":{\"details\":\"Rights Policies Manager contract should be the only one allowed to call this method.\",\"params\":{\"agreement\":\"An object containing the terms agreed upon between the asset holder and the user.\",\"holder\":\"The rights holder whose authorization is required for accessing the asset.\"}},\"getAttestationProvider()\":{\"returns\":{\"_0\":\"The address of the provider associated with the policy.\"}},\"getHolder(uint256)\":{\"params\":{\"assetId\":\"the asset ID to retrieve the holder.\"}},\"getLicense(address,bytes)\":{\"params\":{\"account\":\"The address of the account for which the attestation is being retrieved.\",\"criteria\":\"Encoded data containing the parameters required to retrieve attestation.\"}},\"initialize(address,bytes)\":{\"details\":\"Only the Rights Policies Authorizer contract has permission to call this function.\",\"params\":{\"holder\":\"The address of the holder for whom the policy is being initialized.\",\"init\":\"Initialization data required to configure the policy.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The bytes4 identifier of the interface to check for support.\"},\"returns\":{\"_0\":\"A boolean indicating whether the interface ID is supported (true) or not (false).\"}}},\"title\":\"SubscriptionPolicy\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidNotSupportedOperation()\":[{\"notice\":\"This error is thrown when a method not implemented is called.\"}],\"InvalidUnauthorizedCall(string)\":[{\"notice\":\"Thrown when a function is called by an address other than the authorized Rights Manager. This restricts access to functions that are intended to be executed only by the Rights Manager.\"}]},\"events\":{\"AttestedAgreement(bytes32,address,uint256)\":{\"notice\":\"Emitted when an enforcement process is successfully completed for a given account.\"},\"MetricLogged(string,uint256,uint256,bytes)\":{\"notice\":\"Emitted when a metric is logged.\"},\"SubscriptionEnforced(address,uint256,uint256)\":{\"notice\":\"Emitted when a subscription is enforced.\"}},\"kind\":\"user\",\"methods\":{\"_isCompliant(address,address)\":{\"notice\":\"Verifies whether the on-chain access terms are satisfied for an account.\"},\"description()\":{\"notice\":\"Returns the business/strategy model implemented by the policy.\"},\"enforce(address,(address,address,address,uint256,uint256,address[],bytes))\":{\"notice\":\"Executes the agreement between the asset holder and the account based on the policy's rules.\"},\"getAttestationProvider()\":{\"notice\":\"Retrieves the address of the attestation provider.\"},\"getHolder(uint256)\":{\"notice\":\"Returns the asset holder registered in the ownership contract.\"},\"getLicense(address,bytes)\":{\"notice\":\"Retrieves the license id associated with a specific account.\"},\"initialize(address,bytes)\":{\"notice\":\"Initializes the policy with specific data for a given holder.\"},\"isAccessAllowed(address,bytes)\":{\"notice\":\"Verifies if an account has access to holder's content or asset id.\"},\"isInitialized()\":{\"notice\":\"Checks if the policy has been initialized.\"},\"name()\":{\"notice\":\"Returns the name of the policy.\"},\"resolveTerms(bytes)\":{\"notice\":\"Retrieves the terms associated with a specific criteria and policy.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if a given interface ID is supported by this contract.\"}},\"notice\":\"Implements a subscription-based content access policy.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/policies/SubscriptionPolicy.sol\":\"SubscriptionPolicy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/policies/SubscriptionPolicy.sol\":{\"keccak256\":\"0xe027f08817de2d6caf2e7cb1d49ae4613574790e5f934fc08e6f57f1901e611a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36ff74a41747e46b27702fa94f9ac4627ee6b38b10aaab583cc797817a6ae0ea\",\"dweb:/ipfs/QmRGU6ErbErtPeZmUM5LRg9VRT2BcnVTXDRuYuR6tdWdCc\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol\":{\"keccak256\":\"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025\",\"dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IAttestationProvider.sol\":{\"keccak256\":\"0x33857a9a398c81f5a8cb00f94fa6b67545638acfc7cb728ba12d6ad8f5278ea8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d33a8beadb20c46b8cdf80cebe3640f6ee411ec1e0dcf0b99ac4498c8548b79f\",\"dweb:/ipfs/QmVjkZppdWpowdob77ymvzhbTsMXLEZuPAJ6G7mcmSTgzj\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0x6bb2e4f5f93d957e5fc351e98155c0c038da3a31dd125e22e06f8cca0d0aa332\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0cb7da10029a309b52c9df25d9d59c3e0404faa156716d0805d540d0a3518915\",\"dweb:/ipfs/QmXgxHWuaQXRnBgAPiPA4hkWcHpcwLgg4d672gTkP793fd\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xaae7d5826cba7fe2178e8e2f93c61dcb4d706b44858de0239ace8fa1b327aca4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1c67f52ae4c4efd90907314b99f5a5d62837c64bd008fbb5a8489b1bcc3d70\",\"dweb:/ipfs/Qma2pqf3xt16xXE6YhbcQAY82TpCxSQ4Wzjzzwvv7N1KDE\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/libraries/MetricsOps.sol\":{\"keccak256\":\"0xc5f7e3edb650104b16ffa9c8e775280d8b746e4fb64ef4b2b56d58a8cfe500f6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://767ef644081389e31d6369ad390bf30710bcd440e94c142ceebb9f4a95a47cf3\",\"dweb:/ipfs/QmTT87tzFsjqHnSwT7NdusWuauybeENnC6buxHJnZWzhW1\"]},\"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol\":{\"keccak256\":\"0xab0bf1d5d519c1eb3ca2f6edc16ae7ac7ef141b52cb3e5b7d1ff4e228b0f3277\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://881d9401285ee2879a9604841eff1745c37a464e5b07df5689e304a1a24486cb\",\"dweb:/ipfs/QmYpVr3CRhyrNNtWfJZCdDuyooGLiQRpS1hqQVrDLGWTdB\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightPolicyManagerAddress","type":"address"},{"internalType":"address","name":"ownershipAddress","type":"address"},{"internalType":"address","name":"providerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidAssetHolder"},{"inputs":[],"type":"error","name":"InvalidAttestation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidEnforcement"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNotSupportedOperation"},{"inputs":[],"type":"error","name":"InvalidPolicyInitialization"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidUnauthorizedCall"},{"inputs":[{"internalType":"bytes32","name":"context","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"attestationId","type":"uint256","indexed":false}],"type":"event","name":"AttestedAgreement","anonymous":false},{"inputs":[{"internalType":"string","name":"metric","type":"string","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false},{"internalType":"bytes","name":"context","type":"bytes","indexed":false}],"type":"event","name":"MetricLogged","anonymous":false},{"inputs":[{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"uint256","name":"pricePerDay","type":"uint256","indexed":false},{"internalType":"uint256","name":"duration","type":"uint256","indexed":false}],"type":"event","name":"SubscriptionEnforced","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET_OWNERSHIP","outputs":[{"internalType":"contract IAssetOwnership","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ATTESTATION_PROVIDER","outputs":[{"internalType":"contract IAttestationProvider","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"_isCompliant","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"description","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"struct T.Agreement","name":"agreement","type":"tuple","components":[{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"enforce","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAttestationProvider","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getHolder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"getLicense","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bytes","name":"init","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"isAccessAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolveTerms","outputs":[{"internalType":"struct T.Terms","name":"","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_isCompliant(address,address)":{"details":"The function checks if the provided account complies with the attestation.","params":{"account":"The address of the user whose access is being verified."}},"enforce(address,(address,address,address,uint256,uint256,address[],bytes))":{"details":"Rights Policies Manager contract should be the only one allowed to call this method.","params":{"agreement":"An object containing the terms agreed upon between the asset holder and the user.","holder":"The rights holder whose authorization is required for accessing the asset."}},"getAttestationProvider()":{"returns":{"_0":"The address of the provider associated with the policy."}},"getHolder(uint256)":{"params":{"assetId":"the asset ID to retrieve the holder."}},"getLicense(address,bytes)":{"params":{"account":"The address of the account for which the attestation is being retrieved.","criteria":"Encoded data containing the parameters required to retrieve attestation."}},"initialize(address,bytes)":{"details":"Only the Rights Policies Authorizer contract has permission to call this function.","params":{"holder":"The address of the holder for whom the policy is being initialized.","init":"Initialization data required to configure the policy."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The bytes4 identifier of the interface to check for support."},"returns":{"_0":"A boolean indicating whether the interface ID is supported (true) or not (false)."}}},"version":1},"userdoc":{"kind":"user","methods":{"_isCompliant(address,address)":{"notice":"Verifies whether the on-chain access terms are satisfied for an account."},"description()":{"notice":"Returns the business/strategy model implemented by the policy."},"enforce(address,(address,address,address,uint256,uint256,address[],bytes))":{"notice":"Executes the agreement between the asset holder and the account based on the policy's rules."},"getAttestationProvider()":{"notice":"Retrieves the address of the attestation provider."},"getHolder(uint256)":{"notice":"Returns the asset holder registered in the ownership contract."},"getLicense(address,bytes)":{"notice":"Retrieves the license id associated with a specific account."},"initialize(address,bytes)":{"notice":"Initializes the policy with specific data for a given holder."},"isAccessAllowed(address,bytes)":{"notice":"Verifies if an account has access to holder's content or asset id."},"isInitialized()":{"notice":"Checks if the policy has been initialized."},"name()":{"notice":"Returns the name of the policy."},"resolveTerms(bytes)":{"notice":"Retrieves the terms associated with a specific criteria and policy."},"supportsInterface(bytes4)":{"notice":"Checks if a given interface ID is supported by this contract."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/policies/SubscriptionPolicy.sol":"SubscriptionPolicy"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/policies/SubscriptionPolicy.sol":{"keccak256":"0xe027f08817de2d6caf2e7cb1d49ae4613574790e5f934fc08e6f57f1901e611a","urls":["bzz-raw://36ff74a41747e46b27702fa94f9ac4627ee6b38b10aaab583cc797817a6ae0ea","dweb:/ipfs/QmRGU6ErbErtPeZmUM5LRg9VRT2BcnVTXDRuYuR6tdWdCc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol":{"keccak256":"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18","urls":["bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025","dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IAttestationProvider.sol":{"keccak256":"0x33857a9a398c81f5a8cb00f94fa6b67545638acfc7cb728ba12d6ad8f5278ea8","urls":["bzz-raw://d33a8beadb20c46b8cdf80cebe3640f6ee411ec1e0dcf0b99ac4498c8548b79f","dweb:/ipfs/QmVjkZppdWpowdob77ymvzhbTsMXLEZuPAJ6G7mcmSTgzj"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0x6bb2e4f5f93d957e5fc351e98155c0c038da3a31dd125e22e06f8cca0d0aa332","urls":["bzz-raw://0cb7da10029a309b52c9df25d9d59c3e0404faa156716d0805d540d0a3518915","dweb:/ipfs/QmXgxHWuaQXRnBgAPiPA4hkWcHpcwLgg4d672gTkP793fd"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xaae7d5826cba7fe2178e8e2f93c61dcb4d706b44858de0239ace8fa1b327aca4","urls":["bzz-raw://4a1c67f52ae4c4efd90907314b99f5a5d62837c64bd008fbb5a8489b1bcc3d70","dweb:/ipfs/Qma2pqf3xt16xXE6YhbcQAY82TpCxSQ4Wzjzzwvv7N1KDE"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/MetricsOps.sol":{"keccak256":"0xc5f7e3edb650104b16ffa9c8e775280d8b746e4fb64ef4b2b56d58a8cfe500f6","urls":["bzz-raw://767ef644081389e31d6369ad390bf30710bcd440e94c142ceebb9f4a95a47cf3","dweb:/ipfs/QmTT87tzFsjqHnSwT7NdusWuauybeENnC6buxHJnZWzhW1"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol":{"keccak256":"0xab0bf1d5d519c1eb3ca2f6edc16ae7ac7ef141b52cb3e5b7d1ff4e228b0f3277","urls":["bzz-raw://881d9401285ee2879a9604841eff1745c37a464e5b07df5689e304a1a24486cb","dweb:/ipfs/QmYpVr3CRhyrNNtWfJZCdDuyooGLiQRpS1hqQVrDLGWTdB"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45406,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_initialized","offset":0,"slot":"0","type":"t_bool"},{"astId":45411,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_attestations","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"},{"astId":793,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_packages","offset":0,"slot":"2","type":"t_mapping(t_address,t_struct(Package)788_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_struct(Package)788_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct SubscriptionPolicy.Package)","numberOfBytes":"32","value":"t_struct(Package)788_storage"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(Package)788_storage":{"encoding":"inplace","label":"struct SubscriptionPolicy.Package","numberOfBytes":"64","members":[{"astId":785,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"pricePerDay","offset":0,"slot":"0","type":"t_uint256"},{"astId":787,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"currency","offset":0,"slot":"1","type":"t_address"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/policies/SubscriptionPolicy.sol","id":1249,"exportedSymbols":{"BasePolicy":[45745],"LoopOps":[45339],"MetricsOps":[45373],"SubscriptionPolicy":[1248],"T":[45839]},"nodeType":"SourceUnit","src":"32:8692:4","nodes":[{"id":768,"nodeType":"PragmaDirective","src":"32:23:4","nodes":[],"literals":["solidity","0.8",".26"]},{"id":770,"nodeType":"ImportDirective","src":"57:69:4","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol","file":"@synaps3/core/primitives/BasePolicy.sol","nameLocation":"-1:-1:-1","scope":1249,"sourceUnit":45746,"symbolAliases":[{"foreign":{"id":769,"name":"BasePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45745,"src":"66:10:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":772,"nodeType":"ImportDirective","src":"127:62:4","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":1249,"sourceUnit":45340,"symbolAliases":[{"foreign":{"id":771,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45339,"src":"136:7:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":774,"nodeType":"ImportDirective","src":"190:68:4","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/MetricsOps.sol","file":"@synaps3/core/libraries/MetricsOps.sol","nameLocation":"-1:-1:-1","scope":1249,"sourceUnit":45374,"symbolAliases":[{"foreign":{"id":773,"name":"MetricsOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"199:10:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":776,"nodeType":"ImportDirective","src":"259:55:4","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":1249,"sourceUnit":45840,"symbolAliases":[{"foreign":{"id":775,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45839,"src":"268:1:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1248,"nodeType":"ContractDefinition","src":"413:8310:4","nodes":[{"id":782,"nodeType":"UsingForDirective","src":"461:26:4","nodes":[],"global":false,"libraryName":{"id":780,"name":"LoopOps","nameLocations":["467:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":45339,"src":"467:7:4"},"typeName":{"id":781,"name":"uint256","nodeType":"ElementaryTypeName","src":"479:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":788,"nodeType":"StructDefinition","src":"549:77:4","nodes":[],"canonicalName":"SubscriptionPolicy.Package","documentation":{"id":783,"nodeType":"StructuredDocumentation","src":"492:52:4","text":"@dev Structure to define a subscription package."},"members":[{"constant":false,"id":785,"mutability":"mutable","name":"pricePerDay","nameLocation":"582:11:4","nodeType":"VariableDeclaration","scope":788,"src":"574:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":784,"name":"uint256","nodeType":"ElementaryTypeName","src":"574:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":787,"mutability":"mutable","name":"currency","nameLocation":"611:8:4","nodeType":"VariableDeclaration","scope":788,"src":"603:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":786,"name":"address","nodeType":"ElementaryTypeName","src":"603:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Package","nameLocation":"556:7:4","scope":1248,"visibility":"public"},{"id":793,"nodeType":"VariableDeclaration","src":"716:45:4","nodes":[],"constant":false,"mutability":"mutable","name":"_packages","nameLocation":"752:9:4","scope":1248,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$788_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package)"},"typeName":{"id":792,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":789,"name":"address","nodeType":"ElementaryTypeName","src":"724:7:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"716:27:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$788_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":791,"nodeType":"UserDefinedTypeName","pathNode":{"id":790,"name":"Package","nameLocations":["735:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":788,"src":"735:7:4"},"referencedDeclaration":788,"src":"735:7:4","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$788_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}}},"visibility":"private"},{"id":802,"nodeType":"EventDefinition","src":"1048:90:4","nodes":[],"anonymous":false,"documentation":{"id":794,"nodeType":"StructuredDocumentation","src":"768:275:4","text":"@notice Emitted when a subscription is enforced.\n @param holder The address of the rights holder associated with the subscription.\n @param pricePerDay The daily price of the subscription.\n @param duration The calculated subscription duration in days."},"eventSelector":"ee94b033ef151baf8dc7ef281445b8da1393054811ea821ac65a84956ea10766","name":"SubscriptionEnforced","nameLocation":"1054:20:4","parameters":{"id":801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":796,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"1091:6:4","nodeType":"VariableDeclaration","scope":802,"src":"1075:22:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":795,"name":"address","nodeType":"ElementaryTypeName","src":"1075:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":798,"indexed":false,"mutability":"mutable","name":"pricePerDay","nameLocation":"1107:11:4","nodeType":"VariableDeclaration","scope":802,"src":"1099:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":797,"name":"uint256","nodeType":"ElementaryTypeName","src":"1099:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":800,"indexed":false,"mutability":"mutable","name":"duration","nameLocation":"1128:8:4","nodeType":"VariableDeclaration","scope":802,"src":"1120:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":799,"name":"uint256","nodeType":"ElementaryTypeName","src":"1120:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1074:63:4"}},{"id":817,"nodeType":"FunctionDefinition","src":"1144:203:4","nodes":[],"body":{"id":816,"nodeType":"Block","src":"1345:2:4","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":811,"name":"rightPolicyManagerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":804,"src":"1283:25:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":812,"name":"ownershipAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":806,"src":"1310:16:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":813,"name":"providerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":808,"src":"1328:15:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":814,"kind":"baseConstructorSpecifier","modifierName":{"id":810,"name":"BasePolicy","nameLocations":["1272:10:4"],"nodeType":"IdentifierPath","referencedDeclaration":45745,"src":"1272:10:4"},"nodeType":"ModifierInvocation","src":"1272:72:4"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":804,"mutability":"mutable","name":"rightPolicyManagerAddress","nameLocation":"1173:25:4","nodeType":"VariableDeclaration","scope":817,"src":"1165:33:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":803,"name":"address","nodeType":"ElementaryTypeName","src":"1165:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":806,"mutability":"mutable","name":"ownershipAddress","nameLocation":"1216:16:4","nodeType":"VariableDeclaration","scope":817,"src":"1208:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":805,"name":"address","nodeType":"ElementaryTypeName","src":"1208:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":808,"mutability":"mutable","name":"providerAddress","nameLocation":"1250:15:4","nodeType":"VariableDeclaration","scope":817,"src":"1242:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":807,"name":"address","nodeType":"ElementaryTypeName","src":"1242:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1155:116:4"},"returnParameters":{"id":815,"nodeType":"ParameterList","parameters":[],"src":"1345:0:4"},"scope":1248,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":826,"nodeType":"FunctionDefinition","src":"1401:98:4","nodes":[],"body":{"id":825,"nodeType":"Block","src":"1455:44:4","nodes":[],"statements":[{"expression":{"hexValue":"537562736372697074696f6e506f6c696379","id":823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1472:20:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf969a651e510b963d800a99660818c73f95de791671120782050ada205e0116","typeString":"literal_string \"SubscriptionPolicy\""},"value":"SubscriptionPolicy"},"functionReturnParameters":822,"id":824,"nodeType":"Return","src":"1465:27:4"}]},"baseFunctions":[44932],"documentation":{"id":818,"nodeType":"StructuredDocumentation","src":"1353:43:4","text":"@notice Returns the name of the policy."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"1410:4:4","parameters":{"id":819,"nodeType":"ParameterList","parameters":[],"src":"1414:2:4"},"returnParameters":{"id":822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":821,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":826,"src":"1440:13:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":820,"name":"string","nodeType":"ElementaryTypeName","src":"1440:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1439:15:4"},"scope":1248,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":835,"nodeType":"FunctionDefinition","src":"1584:458:4","nodes":[],"body":{"id":834,"nodeType":"Block","src":"1645:397:4","nodes":[],"statements":[{"expression":{"hexValue":"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e","id":832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1674:361:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_194b266123184e70dc22bea7312509d4d684e05e0185bd5a1d15a300a36c3030","typeString":"literal_string hex\"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e\""},"value":"This policy follows a subscription model with daily pricing, allowing users to access a content holder's catalog by paying a daily fee for a chosen duration.\n\nKey features:\n1) Flexible subscription periods set by the asset holder.\n2) Instant access to all content during the subscription period."},"functionReturnParameters":831,"id":833,"nodeType":"Return","src":"1655:380:4"}]},"baseFunctions":[44938],"documentation":{"id":827,"nodeType":"StructuredDocumentation","src":"1505:74:4","text":"@notice Returns the business/strategy model implemented by the policy."},"functionSelector":"7284e416","implemented":true,"kind":"function","modifiers":[],"name":"description","nameLocation":"1593:11:4","parameters":{"id":828,"nodeType":"ParameterList","parameters":[],"src":"1604:2:4"},"returnParameters":{"id":831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":835,"src":"1630:13:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":829,"name":"string","nodeType":"ElementaryTypeName","src":"1630:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1629:15:4"},"scope":1248,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":878,"nodeType":"FunctionDefinition","src":"2562:377:4","nodes":[],"body":{"id":877,"nodeType":"Block","src":"2661:278:4","nodes":[],"statements":[{"assignments":[847,849],"declarations":[{"constant":false,"id":847,"mutability":"mutable","name":"price","nameLocation":"2680:5:4","nodeType":"VariableDeclaration","scope":877,"src":"2672:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":846,"name":"uint256","nodeType":"ElementaryTypeName","src":"2672:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":849,"mutability":"mutable","name":"currency","nameLocation":"2695:8:4","nodeType":"VariableDeclaration","scope":877,"src":"2687:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":848,"name":"address","nodeType":"ElementaryTypeName","src":"2687:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":859,"initialValue":{"arguments":[{"id":852,"name":"init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":839,"src":"2718:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2725:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":853,"name":"uint256","nodeType":"ElementaryTypeName","src":"2725:7:4","typeDescriptions":{}}},{"id":856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2734:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":855,"name":"address","nodeType":"ElementaryTypeName","src":"2734:7:4","typeDescriptions":{}}}],"id":857,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2724:18:4","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(address))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(address))"}],"expression":{"id":850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2707:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2711:6:4","memberName":"decode","nodeType":"MemberAccess","src":"2707:10:4","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2707:36:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"2671:72:4"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":860,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":847,"src":"2757:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2766:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2757:10:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":867,"nodeType":"IfStatement","src":"2753:75:4","trueBody":{"errorCall":{"arguments":[{"hexValue":"496e76616c696420737562736372697074696f6e2070726963652e","id":864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2798:29:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17","typeString":"literal_string \"Invalid subscription price.\""},"value":"Invalid subscription price."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17","typeString":"literal_string \"Invalid subscription price.\""}],"id":863,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45447,"src":"2776:21:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2776:52:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":866,"nodeType":"RevertStatement","src":"2769:59:4"}},{"expression":{"id":875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":868,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":793,"src":"2888:9:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$788_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":870,"indexExpression":{"id":869,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":837,"src":"2898:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2888:17:4","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$788_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":872,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":847,"src":"2916:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":873,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"2923:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":871,"name":"Package","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":788,"src":"2908:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Package_$788_storage_ptr_$","typeString":"type(struct SubscriptionPolicy.Package storage pointer)"}},"id":874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2908:24:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Package_$788_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"src":"2888:44:4","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$788_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"id":876,"nodeType":"ExpressionStatement","src":"2888:44:4"}]},"baseFunctions":[44946],"functionSelector":"d1f57894","implemented":true,"kind":"function","modifiers":[{"id":842,"kind":"modifierInvocation","modifierName":{"id":841,"name":"onlyPolicyAuthorizer","nameLocations":["2628:20:4"],"nodeType":"IdentifierPath","referencedDeclaration":45482,"src":"2628:20:4"},"nodeType":"ModifierInvocation","src":"2628:20:4"},{"id":844,"kind":"modifierInvocation","modifierName":{"id":843,"name":"initializer","nameLocations":["2649:11:4"],"nodeType":"IdentifierPath","referencedDeclaration":45495,"src":"2649:11:4"},"nodeType":"ModifierInvocation","src":"2649:11:4"}],"name":"initialize","nameLocation":"2571:10:4","parameters":{"id":840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":837,"mutability":"mutable","name":"holder","nameLocation":"2590:6:4","nodeType":"VariableDeclaration","scope":878,"src":"2582:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":836,"name":"address","nodeType":"ElementaryTypeName","src":"2582:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":839,"mutability":"mutable","name":"init","nameLocation":"2613:4:4","nodeType":"VariableDeclaration","scope":878,"src":"2598:19:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":838,"name":"bytes","nodeType":"ElementaryTypeName","src":"2598:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2581:37:4"},"returnParameters":{"id":845,"nodeType":"ParameterList","parameters":[],"src":"2661:0:4"},"scope":1248,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":971,"nodeType":"FunctionDefinition","src":"3094:1126:4","nodes":[],"body":{"id":970,"nodeType":"Block","src":"3247:973:4","nodes":[],"statements":[{"assignments":[895],"declarations":[{"constant":false,"id":895,"mutability":"mutable","name":"pkg","nameLocation":"3272:3:4","nodeType":"VariableDeclaration","scope":970,"src":"3257:18:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$788_memory_ptr","typeString":"struct SubscriptionPolicy.Package"},"typeName":{"id":894,"nodeType":"UserDefinedTypeName","pathNode":{"id":893,"name":"Package","nameLocations":["3257:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":788,"src":"3257:7:4"},"referencedDeclaration":788,"src":"3257:7:4","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$788_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}},"visibility":"internal"}],"id":899,"initialValue":{"baseExpression":{"id":896,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":793,"src":"3278:9:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$788_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":898,"indexExpression":{"id":897,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":880,"src":"3288:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3278:17:4","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$788_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3257:38:4"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":900,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":895,"src":"3309:3:4","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$788_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3313:11:4","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":785,"src":"3309:15:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3328:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3309:20:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":909,"nodeType":"IfStatement","src":"3305:213:4","trueBody":{"id":908,"nodeType":"Block","src":"3331:187:4","statements":[{"errorCall":{"arguments":[{"hexValue":"496e76616c6964206e6f7420696e697469616c697a656420686f6c64657220636f6e646974696f6e73","id":905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3463:43:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_1aec205e23794276aa0afcfadd0b767e900e2e41565fc044513d6e45af83bcbd","typeString":"literal_string \"Invalid not initialized holder conditions\""},"value":"Invalid not initialized holder conditions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1aec205e23794276aa0afcfadd0b767e900e2e41565fc044513d6e45af83bcbd","typeString":"literal_string \"Invalid not initialized holder conditions\""}],"id":904,"name":"InvalidEnforcement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45439,"src":"3444:18:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3444:63:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":907,"nodeType":"RevertStatement","src":"3437:70:4"}]}},{"assignments":[911],"declarations":[{"constant":false,"id":911,"mutability":"mutable","name":"paidAmount","nameLocation":"3536:10:4","nodeType":"VariableDeclaration","scope":970,"src":"3528:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":910,"name":"uint256","nodeType":"ElementaryTypeName","src":"3528:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":914,"initialValue":{"expression":{"id":912,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"3549:9:4","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$45805_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3559:5:4","memberName":"total","nodeType":"MemberAccess","referencedDeclaration":45797,"src":"3549:15:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3528:36:4"},{"assignments":[916],"declarations":[{"constant":false,"id":916,"mutability":"mutable","name":"partiesLen","nameLocation":"3582:10:4","nodeType":"VariableDeclaration","scope":970,"src":"3574:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":915,"name":"uint256","nodeType":"ElementaryTypeName","src":"3574:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":920,"initialValue":{"expression":{"expression":{"id":917,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"3595:9:4","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$45805_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3605:7:4","memberName":"parties","nodeType":"MemberAccess","referencedDeclaration":45802,"src":"3595:17:4","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3613:6:4","memberName":"length","nodeType":"MemberAccess","src":"3595:24:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3574:45:4"},{"assignments":[922],"declarations":[{"constant":false,"id":922,"mutability":"mutable","name":"pricePerDay","nameLocation":"3637:11:4","nodeType":"VariableDeclaration","scope":970,"src":"3629:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":921,"name":"uint256","nodeType":"ElementaryTypeName","src":"3629:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":925,"initialValue":{"expression":{"id":923,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":895,"src":"3651:3:4","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$788_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3655:11:4","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":785,"src":"3651:15:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3629:37:4"},{"assignments":[927],"declarations":[{"constant":false,"id":927,"mutability":"mutable","name":"duration","nameLocation":"3765:8:4","nodeType":"VariableDeclaration","scope":970,"src":"3757:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":926,"name":"uint256","nodeType":"ElementaryTypeName","src":"3757:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":933,"initialValue":{"arguments":[{"id":929,"name":"paidAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":911,"src":"3798:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":930,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"3810:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":931,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":916,"src":"3823:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":928,"name":"_verifyDaysFromAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"3776:21:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3776:58:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3757:77:4"},{"assignments":[935],"declarations":[{"constant":false,"id":935,"mutability":"mutable","name":"subExpire","nameLocation":"3852:9:4","nodeType":"VariableDeclaration","scope":970,"src":"3844:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":934,"name":"uint256","nodeType":"ElementaryTypeName","src":"3844:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":943,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":936,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3864:5:4","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3870:9:4","memberName":"timestamp","nodeType":"MemberAccess","src":"3864:15:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":938,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":927,"src":"3883:8:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3894:6:4","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"3883:17:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":941,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3882:19:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3864:37:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3844:57:4"},{"assignments":[948],"declarations":[{"constant":false,"id":948,"mutability":"mutable","name":"attestationIds","nameLocation":"3928:14:4","nodeType":"VariableDeclaration","scope":970,"src":"3911:31:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":946,"name":"uint256","nodeType":"ElementaryTypeName","src":"3911:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":947,"nodeType":"ArrayTypeName","src":"3911:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":954,"initialValue":{"arguments":[{"id":950,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":880,"src":"3953:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":951,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"3961:9:4","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$45805_calldata_ptr","typeString":"struct T.Agreement calldata"}},{"id":952,"name":"subExpire","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":935,"src":"3972:9:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Agreement_$45805_calldata_ptr","typeString":"struct T.Agreement calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":949,"name":"_commit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45695,"src":"3945:7:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Agreement_$45805_memory_ptr_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,struct T.Agreement memory,uint256) returns (uint256[] memory)"}},"id":953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3945:37:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3911:71:4"},{"expression":{"arguments":[{"id":956,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":880,"src":"4016:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":957,"name":"attestationIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"4024:14:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"expression":{"id":958,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"4040:9:4","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$45805_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4050:7:4","memberName":"parties","nodeType":"MemberAccess","referencedDeclaration":45802,"src":"4040:17:4","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":955,"name":"_updateBatchAttestation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1197,"src":"3992:23:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address,uint256[] memory,address[] memory)"}},"id":960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3992:66:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":961,"nodeType":"ExpressionStatement","src":"3992:66:4"},{"eventCall":{"arguments":[{"id":963,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":880,"src":"4152:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":964,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"4160:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":965,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":927,"src":"4173:8:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":962,"name":"SubscriptionEnforced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":802,"src":"4131:20:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4131:51:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":967,"nodeType":"EmitStatement","src":"4126:56:4"},{"expression":{"id":968,"name":"attestationIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"4199:14:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":892,"id":969,"nodeType":"Return","src":"4192:21:4"}]},"baseFunctions":[44958],"functionSelector":"464c0aeb","implemented":true,"kind":"function","modifiers":[{"id":886,"kind":"modifierInvocation","modifierName":{"id":885,"name":"onlyPolicyManager","nameLocations":["3190:17:4"],"nodeType":"IdentifierPath","referencedDeclaration":45465,"src":"3190:17:4"},"nodeType":"ModifierInvocation","src":"3190:17:4"},{"id":888,"kind":"modifierInvocation","modifierName":{"id":887,"name":"initialized","nameLocations":["3208:11:4"],"nodeType":"IdentifierPath","referencedDeclaration":45507,"src":"3208:11:4"},"nodeType":"ModifierInvocation","src":"3208:11:4"}],"name":"enforce","nameLocation":"3103:7:4","parameters":{"id":884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":880,"mutability":"mutable","name":"holder","nameLocation":"3128:6:4","nodeType":"VariableDeclaration","scope":971,"src":"3120:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":879,"name":"address","nodeType":"ElementaryTypeName","src":"3120:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":883,"mutability":"mutable","name":"agreement","nameLocation":"3165:9:4","nodeType":"VariableDeclaration","scope":971,"src":"3144:30:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$45805_calldata_ptr","typeString":"struct T.Agreement"},"typeName":{"id":882,"nodeType":"UserDefinedTypeName","pathNode":{"id":881,"name":"T.Agreement","nameLocations":["3144:1:4","3146:9:4"],"nodeType":"IdentifierPath","referencedDeclaration":45805,"src":"3144:11:4"},"referencedDeclaration":45805,"src":"3144:11:4","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$45805_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"3110:70:4"},"returnParameters":{"id":892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":891,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":971,"src":"3229:16:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":889,"name":"uint256","nodeType":"ElementaryTypeName","src":"3229:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":890,"nodeType":"ArrayTypeName","src":"3229:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"3228:18:4"},"scope":1248,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1019,"nodeType":"FunctionDefinition","src":"4309:673:4","nodes":[],"body":{"id":1018,"nodeType":"Block","src":"4405:577:4","nodes":[],"statements":[{"condition":{"arguments":[{"id":982,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":976,"src":"4519:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":981,"name":"_isHolderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1247,"src":"4502:16:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) pure returns (bool)"}},"id":983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4502:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1000,"nodeType":"IfStatement","src":"4498:187:4","trueBody":{"id":999,"nodeType":"Block","src":"4530:155:4","statements":[{"assignments":[985],"declarations":[{"constant":false,"id":985,"mutability":"mutable","name":"holder","nameLocation":"4584:6:4","nodeType":"VariableDeclaration","scope":999,"src":"4576:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":984,"name":"address","nodeType":"ElementaryTypeName","src":"4576:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":993,"initialValue":{"arguments":[{"id":988,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":976,"src":"4604:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4615:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":989,"name":"address","nodeType":"ElementaryTypeName","src":"4615:7:4","typeDescriptions":{}}}],"id":991,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4614:9:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":986,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4593:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4597:6:4","memberName":"decode","nodeType":"MemberAccess","src":"4593:10:4","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4593:31:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"4576:48:4"},{"expression":{"arguments":[{"id":995,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"4658:7:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":996,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":985,"src":"4667:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":994,"name":"_isCompliant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1104,"src":"4645:12:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4645:29:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":980,"id":998,"nodeType":"Return","src":"4638:36:4"}]}},{"assignments":[1002],"declarations":[{"constant":false,"id":1002,"mutability":"mutable","name":"assetId","nameLocation":"4876:7:4","nodeType":"VariableDeclaration","scope":1018,"src":"4868:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1001,"name":"uint256","nodeType":"ElementaryTypeName","src":"4868:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1010,"initialValue":{"arguments":[{"id":1005,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":976,"src":"4897:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":1007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4908:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1006,"name":"uint256","nodeType":"ElementaryTypeName","src":"4908:7:4","typeDescriptions":{}}}],"id":1008,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4907:9:4","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":1003,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4886:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4890:6:4","memberName":"decode","nodeType":"MemberAccess","src":"4886:10:4","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":1009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4886:31:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4868:49:4"},{"expression":{"arguments":[{"id":1012,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"4947:7:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1014,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1002,"src":"4966:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1013,"name":"getHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"4956:9:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4956:18:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1011,"name":"_isCompliant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1104,"src":"4934:12:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":1016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4934:41:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":980,"id":1017,"nodeType":"Return","src":"4927:48:4"}]},"baseFunctions":[44968],"documentation":{"id":972,"nodeType":"StructuredDocumentation","src":"4226:78:4","text":"@notice Verifies if an account has access to holder's content or asset id."},"functionSelector":"cfdce1a7","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowed","nameLocation":"4318:15:4","parameters":{"id":977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":974,"mutability":"mutable","name":"account","nameLocation":"4342:7:4","nodeType":"VariableDeclaration","scope":1019,"src":"4334:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":973,"name":"address","nodeType":"ElementaryTypeName","src":"4334:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":976,"mutability":"mutable","name":"criteria","nameLocation":"4366:8:4","nodeType":"VariableDeclaration","scope":1019,"src":"4351:23:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":975,"name":"bytes","nodeType":"ElementaryTypeName","src":"4351:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4333:42:4"},"returnParameters":{"id":980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1019,"src":"4399:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":978,"name":"bool","nodeType":"ElementaryTypeName","src":"4399:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4398:6:4"},"scope":1248,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1067,"nodeType":"FunctionDefinition","src":"5072:604:4","nodes":[],"body":{"id":1066,"nodeType":"Block","src":"5158:518:4","nodes":[],"statements":[{"condition":{"id":1031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5351:27:4","subExpression":{"arguments":[{"id":1029,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1022,"src":"5369:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1028,"name":"_isHolderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1247,"src":"5352:16:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) pure returns (bool)"}},"id":1030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5352:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1036,"nodeType":"IfStatement","src":"5347:95:4","trueBody":{"id":1035,"nodeType":"Block","src":"5380:62:4","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1032,"name":"InvalidNotSupportedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45426,"src":"5401:28:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5401:30:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1034,"nodeType":"RevertStatement","src":"5394:37:4"}]}},{"assignments":[1038],"declarations":[{"constant":false,"id":1038,"mutability":"mutable","name":"holder","nameLocation":"5460:6:4","nodeType":"VariableDeclaration","scope":1066,"src":"5452:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1037,"name":"address","nodeType":"ElementaryTypeName","src":"5452:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1046,"initialValue":{"arguments":[{"id":1041,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1022,"src":"5480:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":1043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5491:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1042,"name":"address","nodeType":"ElementaryTypeName","src":"5491:7:4","typeDescriptions":{}}}],"id":1044,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5490:9:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":1039,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5469:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5473:6:4","memberName":"decode","nodeType":"MemberAccess","src":"5469:10:4","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":1045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5469:31:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"5452:48:4"},{"assignments":[1049],"declarations":[{"constant":false,"id":1049,"mutability":"mutable","name":"pkg","nameLocation":"5525:3:4","nodeType":"VariableDeclaration","scope":1066,"src":"5510:18:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$788_memory_ptr","typeString":"struct SubscriptionPolicy.Package"},"typeName":{"id":1048,"nodeType":"UserDefinedTypeName","pathNode":{"id":1047,"name":"Package","nameLocations":["5510:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":788,"src":"5510:7:4"},"referencedDeclaration":788,"src":"5510:7:4","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$788_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}},"visibility":"internal"}],"id":1053,"initialValue":{"baseExpression":{"id":1050,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":793,"src":"5531:9:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$788_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":1052,"indexExpression":{"id":1051,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1038,"src":"5541:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5531:17:4","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$788_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5510:38:4"},{"expression":{"arguments":[{"expression":{"id":1056,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1049,"src":"5609:3:4","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$788_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":1057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5613:11:4","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":785,"src":"5609:15:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1058,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1049,"src":"5626:3:4","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$788_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":1059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5630:8:4","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":787,"src":"5626:12:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":1060,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45839,"src":"5640:1:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$45839_$","typeString":"type(library T)"}},"id":1061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5642:9:4","memberName":"RateBasis","nodeType":"MemberAccess","referencedDeclaration":45817,"src":"5640:11:4","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RateBasis_$45817_$","typeString":"type(enum T.RateBasis)"}},"id":1062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5652:5:4","memberName":"DAILY","nodeType":"MemberAccess","referencedDeclaration":45815,"src":"5640:17:4","typeDescriptions":{"typeIdentifier":"t_enum$_RateBasis_$45817","typeString":"enum T.RateBasis"}},{"hexValue":"697066733a2f2f","id":1063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5659:9:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe","typeString":"literal_string \"ipfs://\""},"value":"ipfs://"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_RateBasis_$45817","typeString":"enum T.RateBasis"},{"typeIdentifier":"t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe","typeString":"literal_string \"ipfs://\""}],"expression":{"id":1054,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45839,"src":"5601:1:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$45839_$","typeString":"type(library T)"}},"id":1055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5603:5:4","memberName":"Terms","nodeType":"MemberAccess","referencedDeclaration":45828,"src":"5601:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$45828_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}},"id":1064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5601:68:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$45828_memory_ptr","typeString":"struct T.Terms memory"}},"functionReturnParameters":1027,"id":1065,"nodeType":"Return","src":"5594:75:4"}]},"baseFunctions":[44987],"documentation":{"id":1020,"nodeType":"StructuredDocumentation","src":"4988:79:4","text":"@notice Retrieves the terms associated with a specific criteria and policy."},"functionSelector":"a3937111","implemented":true,"kind":"function","modifiers":[],"name":"resolveTerms","nameLocation":"5081:12:4","parameters":{"id":1023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1022,"mutability":"mutable","name":"criteria","nameLocation":"5109:8:4","nodeType":"VariableDeclaration","scope":1067,"src":"5094:23:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1021,"name":"bytes","nodeType":"ElementaryTypeName","src":"5094:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5093:25:4"},"returnParameters":{"id":1027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1026,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1067,"src":"5142:14:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$45828_memory_ptr","typeString":"struct T.Terms"},"typeName":{"id":1025,"nodeType":"UserDefinedTypeName","pathNode":{"id":1024,"name":"T.Terms","nameLocations":["5142:1:4","5144:5:4"],"nodeType":"IdentifierPath","referencedDeclaration":45828,"src":"5142:7:4"},"referencedDeclaration":45828,"src":"5142:7:4","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$45828_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"src":"5141:16:4"},"scope":1248,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1104,"nodeType":"FunctionDefinition","src":"5938:416:4","nodes":[],"body":{"id":1103,"nodeType":"Block","src":"6020:334:4","nodes":[],"statements":[{"assignments":[1078],"declarations":[{"constant":false,"id":1078,"mutability":"mutable","name":"criteria","nameLocation":"6043:8:4","nodeType":"VariableDeclaration","scope":1103,"src":"6030:21:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1077,"name":"bytes","nodeType":"ElementaryTypeName","src":"6030:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1083,"initialValue":{"arguments":[{"id":1081,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1072,"src":"6065:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1079,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6054:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6058:6:4","memberName":"encode","nodeType":"MemberAccess","src":"6054:10:4","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6054:18:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6030:42:4"},{"assignments":[1085],"declarations":[{"constant":false,"id":1085,"mutability":"mutable","name":"attestationId","nameLocation":"6090:13:4","nodeType":"VariableDeclaration","scope":1103,"src":"6082:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1084,"name":"uint256","nodeType":"ElementaryTypeName","src":"6082:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1090,"initialValue":{"arguments":[{"id":1087,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1070,"src":"6117:7:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1088,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1078,"src":"6126:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1086,"name":"getLicense","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45614,"src":"6106:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,bytes memory) view returns (uint256)"}},"id":1089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6106:29:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6082:53:4"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1091,"name":"attestationId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1085,"src":"6220:13:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6237:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6220:18:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1096,"nodeType":"IfStatement","src":"6216:36:4","trueBody":{"expression":{"hexValue":"66616c7365","id":1094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6247:5:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":1076,"id":1095,"nodeType":"Return","src":"6240:12:4"}},{"expression":{"arguments":[{"id":1099,"name":"attestationId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1085,"src":"6324:13:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1100,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1070,"src":"6339:7:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1097,"name":"ATTESTATION_PROVIDER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45397,"src":"6296:20:4","typeDescriptions":{"typeIdentifier":"t_contract$_IAttestationProvider_$44682","typeString":"contract IAttestationProvider"}},"id":1098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6317:6:4","memberName":"verify","nodeType":"MemberAccess","referencedDeclaration":44681,"src":"6296:27:4","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view external returns (bool)"}},"id":1101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6296:51:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1076,"id":1102,"nodeType":"Return","src":"6289:58:4"}]},"documentation":{"id":1068,"nodeType":"StructuredDocumentation","src":"5682:251:4","text":"@notice Verifies whether the on-chain access terms are satisfied for an account.\n @dev The function checks if the provided account complies with the attestation.\n @param account The address of the user whose access is being verified."},"functionSelector":"a5cc2dbb","implemented":true,"kind":"function","modifiers":[],"name":"_isCompliant","nameLocation":"5947:12:4","parameters":{"id":1073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1070,"mutability":"mutable","name":"account","nameLocation":"5968:7:4","nodeType":"VariableDeclaration","scope":1104,"src":"5960:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1069,"name":"address","nodeType":"ElementaryTypeName","src":"5960:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1072,"mutability":"mutable","name":"holder","nameLocation":"5985:6:4","nodeType":"VariableDeclaration","scope":1104,"src":"5977:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1071,"name":"address","nodeType":"ElementaryTypeName","src":"5977:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5959:33:4"},"returnParameters":{"id":1076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1104,"src":"6014:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1074,"name":"bool","nodeType":"ElementaryTypeName","src":"6014:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6013:6:4"},"scope":1248,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":1147,"nodeType":"FunctionDefinition","src":"6360:669:4","nodes":[],"body":{"id":1146,"nodeType":"Block","src":"6509:520:4","nodes":[],"statements":[{"assignments":[1116],"declarations":[{"constant":false,"id":1116,"mutability":"mutable","name":"paymentPerAccount","nameLocation":"6602:17:4","nodeType":"VariableDeclaration","scope":1146,"src":"6594:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1115,"name":"uint256","nodeType":"ElementaryTypeName","src":"6594:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1120,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1117,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1106,"src":"6622:6:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1118,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"6631:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6622:19:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6594:47:4"},{"assignments":[1122],"declarations":[{"constant":false,"id":1122,"mutability":"mutable","name":"subscriptionDuration","nameLocation":"6707:20:4","nodeType":"VariableDeclaration","scope":1146,"src":"6699:28:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1121,"name":"uint256","nodeType":"ElementaryTypeName","src":"6699:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1126,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1123,"name":"paymentPerAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1116,"src":"6730:17:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1124,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1108,"src":"6750:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6730:31:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6699:62:4"},{"assignments":[1128],"declarations":[{"constant":false,"id":1128,"mutability":"mutable","name":"total","nameLocation":"6834:5:4","nodeType":"VariableDeclaration","scope":1146,"src":"6826:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1127,"name":"uint256","nodeType":"ElementaryTypeName","src":"6826:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1135,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1129,"name":"subscriptionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1122,"src":"6843:20:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1130,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1108,"src":"6866:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6843:34:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1132,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6842:36:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1133,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"6881:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6842:49:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6826:65:4"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1136,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1106,"src":"6905:6:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1137,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1128,"src":"6914:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6905:14:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1143,"nodeType":"IfStatement","src":"6901:84:4","trueBody":{"errorCall":{"arguments":[{"hexValue":"496e73756666696369656e742066756e647320666f7220737562736372697074696f6e","id":1140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6947:37:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7","typeString":"literal_string \"Insufficient funds for subscription\""},"value":"Insufficient funds for subscription"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7","typeString":"literal_string \"Insufficient funds for subscription\""}],"id":1139,"name":"InvalidEnforcement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45439,"src":"6928:18:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":1141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6928:57:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1142,"nodeType":"RevertStatement","src":"6921:64:4"}},{"expression":{"id":1144,"name":"subscriptionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1122,"src":"7002:20:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1114,"id":1145,"nodeType":"Return","src":"6995:27:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_verifyDaysFromAmount","nameLocation":"6369:21:4","parameters":{"id":1111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1106,"mutability":"mutable","name":"amount","nameLocation":"6408:6:4","nodeType":"VariableDeclaration","scope":1147,"src":"6400:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1105,"name":"uint256","nodeType":"ElementaryTypeName","src":"6400:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1108,"mutability":"mutable","name":"pricePerDay","nameLocation":"6432:11:4","nodeType":"VariableDeclaration","scope":1147,"src":"6424:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1107,"name":"uint256","nodeType":"ElementaryTypeName","src":"6424:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1110,"mutability":"mutable","name":"partiesLen","nameLocation":"6461:10:4","nodeType":"VariableDeclaration","scope":1147,"src":"6453:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1109,"name":"uint256","nodeType":"ElementaryTypeName","src":"6453:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6390:87:4"},"returnParameters":{"id":1114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1147,"src":"6500:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1112,"name":"uint256","nodeType":"ElementaryTypeName","src":"6500:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6499:9:4"},"scope":1248,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":1197,"nodeType":"FunctionDefinition","src":"7228:400:4","nodes":[],"body":{"id":1196,"nodeType":"Block","src":"7374:254:4","nodes":[],"statements":[{"assignments":[1160],"declarations":[{"constant":false,"id":1160,"mutability":"mutable","name":"partiesLen","nameLocation":"7392:10:4","nodeType":"VariableDeclaration","scope":1196,"src":"7384:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1159,"name":"uint256","nodeType":"ElementaryTypeName","src":"7384:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1163,"initialValue":{"expression":{"id":1161,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"7405:7:4","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7413:6:4","memberName":"length","nodeType":"MemberAccess","src":"7405:14:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7384:35:4"},{"body":{"id":1194,"nodeType":"Block","src":"7487:135:4","statements":[{"assignments":[1178],"declarations":[{"constant":false,"id":1178,"mutability":"mutable","name":"context","nameLocation":"7514:7:4","nodeType":"VariableDeclaration","scope":1194,"src":"7501:20:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1177,"name":"bytes","nodeType":"ElementaryTypeName","src":"7501:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1183,"initialValue":{"arguments":[{"id":1181,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"7535:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1179,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7524:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7528:6:4","memberName":"encode","nodeType":"MemberAccess","src":"7524:10:4","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7524:18:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7501:41:4"},{"expression":{"arguments":[{"baseExpression":{"id":1185,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"7572:7:4","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1187,"indexExpression":{"id":1186,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"7580:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7572:10:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1188,"name":"context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"7584:7:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"baseExpression":{"id":1189,"name":"attestationIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1153,"src":"7593:14:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1191,"indexExpression":{"id":1190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"7608:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7593:17:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1184,"name":"_setAttestation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45725,"src":"7556:15:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,bytes memory,uint256)"}},"id":1192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7556:55:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1193,"nodeType":"ExpressionStatement","src":"7556:55:4"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1168,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"7449:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1169,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1160,"src":"7453:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7449:14:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1195,"initializationExpression":{"assignments":[1165],"declarations":[{"constant":false,"id":1165,"mutability":"mutable","name":"i","nameLocation":"7442:1:4","nodeType":"VariableDeclaration","scope":1195,"src":"7434:9:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1164,"name":"uint256","nodeType":"ElementaryTypeName","src":"7434:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1167,"initialValue":{"hexValue":"30","id":1166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7446:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7434:13:4"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":1175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1171,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"7465:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1172,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"7469:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7471:12:4","memberName":"uncheckedInc","nodeType":"MemberAccess","referencedDeclaration":45338,"src":"7469:14:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7469:16:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7465:20:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1176,"nodeType":"ExpressionStatement","src":"7465:20:4"},"nodeType":"ForStatement","src":"7429:193:4"}]},"documentation":{"id":1148,"nodeType":"StructuredDocumentation","src":"7035:188:4","text":"@notice Updates the attestation records for each account.\n @param attestationIds The ID of the attestations.\n @param parties The list of account to assign attestation id."},"implemented":true,"kind":"function","modifiers":[],"name":"_updateBatchAttestation","nameLocation":"7237:23:4","parameters":{"id":1157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1150,"mutability":"mutable","name":"holder","nameLocation":"7278:6:4","nodeType":"VariableDeclaration","scope":1197,"src":"7270:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1149,"name":"address","nodeType":"ElementaryTypeName","src":"7270:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1153,"mutability":"mutable","name":"attestationIds","nameLocation":"7311:14:4","nodeType":"VariableDeclaration","scope":1197,"src":"7294:31:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1151,"name":"uint256","nodeType":"ElementaryTypeName","src":"7294:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1152,"nodeType":"ArrayTypeName","src":"7294:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1156,"mutability":"mutable","name":"parties","nameLocation":"7352:7:4","nodeType":"VariableDeclaration","scope":1197,"src":"7335:24:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1154,"name":"address","nodeType":"ElementaryTypeName","src":"7335:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1155,"nodeType":"ArrayTypeName","src":"7335:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7260:105:4"},"returnParameters":{"id":1158,"nodeType":"ParameterList","parameters":[],"src":"7374:0:4"},"scope":1248,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":1247,"nodeType":"FunctionDefinition","src":"7634:1087:4","nodes":[],"body":{"id":1246,"nodeType":"Block","src":"7713:1008:4","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1204,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1199,"src":"8476:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8485:6:4","memberName":"length","nodeType":"MemberAccess","src":"8476:15:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3332","id":1206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8495:2:4","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8476:21:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1211,"nodeType":"IfStatement","src":"8472:64:4","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1208,"name":"InvalidNotSupportedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45426,"src":"8506:28:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8506:30:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1210,"nodeType":"RevertStatement","src":"8499:37:4"}},{"assignments":[1213],"declarations":[{"constant":false,"id":1213,"mutability":"mutable","name":"last20Valid","nameLocation":"8551:11:4","nodeType":"VariableDeclaration","scope":1246,"src":"8546:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1212,"name":"bool","nodeType":"ElementaryTypeName","src":"8546:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1226,"initialValue":{"commonType":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"id":1225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":1216,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1199,"src":"8573:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3332","id":1218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8585:2:4","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"id":1219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"8573:15:4","startExpression":{"hexValue":"3132","id":1217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8582:2:4","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":1215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8565:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":1214,"name":"bytes20","nodeType":"ElementaryTypeName","src":"8565:7:4","typeDescriptions":{}}},"id":1220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8565:24:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8601:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8593:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":1221,"name":"bytes20","nodeType":"ElementaryTypeName","src":"8593:7:4","typeDescriptions":{}}},"id":1224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8593:10:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"src":"8565:38:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"8546:57:4"},{"assignments":[1228],"declarations":[{"constant":false,"id":1228,"mutability":"mutable","name":"first12Valid","nameLocation":"8618:12:4","nodeType":"VariableDeclaration","scope":1246,"src":"8613:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1227,"name":"bool","nodeType":"ElementaryTypeName","src":"8613:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1241,"initialValue":{"commonType":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"id":1240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":1231,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1199,"src":"8641:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3132","id":1233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8652:2:4","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"id":1234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"8641:14:4","startExpression":{"hexValue":"30","id":1232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8650:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":1230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8633:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":1229,"name":"bytes12","nodeType":"ElementaryTypeName","src":"8633:7:4","typeDescriptions":{}}},"id":1235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8633:23:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8668:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8660:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":1236,"name":"bytes12","nodeType":"ElementaryTypeName","src":"8660:7:4","typeDescriptions":{}}},"id":1239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8660:10:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"src":"8633:37:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"8613:57:4"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1242,"name":"last20Valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"8687:11:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":1243,"name":"first12Valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"8702:12:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8687:27:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1203,"id":1245,"nodeType":"Return","src":"8680:34:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isHolderAddress","nameLocation":"7643:16:4","parameters":{"id":1200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1199,"mutability":"mutable","name":"criteria","nameLocation":"7675:8:4","nodeType":"VariableDeclaration","scope":1247,"src":"7660:23:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1198,"name":"bytes","nodeType":"ElementaryTypeName","src":"7660:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7659:25:4"},"returnParameters":{"id":1203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1202,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1247,"src":"7707:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1201,"name":"bool","nodeType":"ElementaryTypeName","src":"7707:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7706:6:4"},"scope":1248,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":778,"name":"BasePolicy","nameLocations":["444:10:4"],"nodeType":"IdentifierPath","referencedDeclaration":45745,"src":"444:10:4"},"id":779,"nodeType":"InheritanceSpecifier","src":"444:10:4"}],"canonicalName":"SubscriptionPolicy","contractDependencies":[],"contractKind":"contract","documentation":{"id":777,"nodeType":"StructuredDocumentation","src":"316:97:4","text":"@title SubscriptionPolicy\n @notice Implements a subscription-based content access policy."},"fullyImplemented":true,"linearizedBaseContracts":[1248,45745,40819,40831,44994],"name":"SubscriptionPolicy","nameLocation":"422:18:4","scope":1249,"usedErrors":[45423,45426,45431,45434,45439,45442,45447],"usedEvents":[802,45353,45420]}],"license":"MIT"},"id":4} diff --git a/src/hooks/use-authorize-policy.ts b/src/hooks/use-authorize-policy.ts index 23c02936..46cb9c16 100644 --- a/src/hooks/use-authorize-policy.ts +++ b/src/hooks/use-authorize-policy.ts @@ -100,7 +100,8 @@ export const useAuthorizePolicy = (): useAuthorizePolicyHook => { setData(receipt); setLoading(false); } catch (err: any) { - console.log('AUTHORIZE: ',err); + console.log('err') + console.log(err) setError(ERRORS.UNKNOWN_ERROR); setLoading(false); } diff --git a/src/hooks/use-get-active-licenses.ts b/src/hooks/use-get-active-licenses.ts new file mode 100644 index 00000000..f8170ed9 --- /dev/null +++ b/src/hooks/use-get-active-licenses.ts @@ -0,0 +1,92 @@ +import { useState, useEffect, useCallback } from 'react'; +import { Address } from 'viem'; +import { publicClient } from '@src/clients/viem/publicClient'; +import AccessAggAbi from '@src/config/abi/AccessAgg.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; + +interface ActiveLicensesError { + message: string; + code?: number; + [key: string]: any; +} + +interface PolicyTerms { + amount: string; + currency: string; + rateBasis: number; + uri: string; +} + +interface Policy { + policy: string; + terms: PolicyTerms; +} + +interface UseGetActiveLicensesHook { + activeLicenses: any[]; + loading: boolean; + error?: ActiveLicensesError | null; + refetch: () => void; +} + +export const useGetActiveLicenses = ( + recipient: Address, holder?: Address +): UseGetActiveLicensesHook => { + const [activeLicenses, setActiveLicenses] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + const fetchHolderPolicies = useCallback(async () => { + // Validate that holder exists + if (!holder) { + setActiveLicenses([]); + setLoading(false); + setError({ message: 'Holder address is missing.' }); + return; + } + + setLoading(true); + + try { + console.log('getActiveLicenses') + console.log(GLOBAL_CONSTANTS.ACCESS_AGG_ADDRESS) + // Call the contract method + const licenses: any = (await publicClient.readContract({ + address: GLOBAL_CONSTANTS.ACCESS_AGG_ADDRESS, + abi: AccessAggAbi.abi, + functionName: 'getActiveLicenses', + args: [recipient, holder], + })) as Policy[]; + + console.log('getActiveLicenses') + console.log(licenses) + console.log(GLOBAL_CONSTANTS.ACCESS_AGG_ADDRESS) + + // Store the response in state + setActiveLicenses(licenses); + setError(null); + } catch (err: any) { + console.error('Error fetching active licenses:', err); + setActiveLicenses([]); + setError({ message: err?.message || 'Error occurred while fetching active licenses.' }); + } finally { + setLoading(false); + } + }, [holder]); + + useEffect(() => { + fetchHolderPolicies(); + }, [fetchHolderPolicies]); + + // Allows to refetch the data on demand + const refetch = useCallback(() => { + fetchHolderPolicies(); + }, [fetchHolderPolicies]); + + return { + activeLicenses, + loading, + error, + refetch, + }; +}; diff --git a/src/hooks/use-get-authorized-holder-policies.ts b/src/hooks/use-get-policies-terms.ts similarity index 91% rename from src/hooks/use-get-authorized-holder-policies.ts rename to src/hooks/use-get-policies-terms.ts index c29a6b05..fda3e3a9 100644 --- a/src/hooks/use-get-authorized-holder-policies.ts +++ b/src/hooks/use-get-policies-terms.ts @@ -33,7 +33,7 @@ interface UseGetAuthorizedHolderPoliciesHook { * Custom hook that fetches the authorized policies for a given holder. * @param holder Address of the holder. */ -export const useGetAuthorizedHolderPolicies = ( +export const useGetPoliciesTerms = ( holder: Address | undefined ): UseGetAuthorizedHolderPoliciesHook => { const [authorizedHolderPolicies, setAuthorizedHolderPolicies] = useState([]); @@ -56,15 +56,18 @@ export const useGetAuthorizedHolderPolicies = ( const policies: any = (await publicClient.readContract({ address: GLOBAL_CONSTANTS.POLICIES_AGG_ADDRESS, abi: PoliciesAggAbi.abi, - functionName: 'getHolderWidePolicies', + functionName: 'getPoliciesTerms', args: [holder], })) as Policy[]; + console.log('getPoliciesTerms') + console.log(policies) + // Store the response in state setAuthorizedHolderPolicies(policies); setError(null); } catch (err: any) { - console.error('Error fetching holder-wide policies:', err); + console.error('Error fetching policies terms:', err); setAuthorizedHolderPolicies([]); setError({ message: err?.message || 'Error occurred while fetching authorized policies.' }); } finally { diff --git a/src/hooks/use-get-attestation.ts b/src/hooks/use-get-policy-attestation.ts similarity index 50% rename from src/hooks/use-get-attestation.ts rename to src/hooks/use-get-policy-attestation.ts index a5fcc5b2..295bcb91 100644 --- a/src/hooks/use-get-attestation.ts +++ b/src/hooks/use-get-policy-attestation.ts @@ -1,9 +1,7 @@ import { useState, useEffect, useCallback } from 'react'; import { Address } from 'viem'; -import { publicClient } from '@src/clients/viem/publicClient'; -import { GLOBAL_CONSTANTS } from '@src/config-global'; -import SubscriptionPolicyAbi from '@src/config/abi/SubscriptionPolicy.json'; import { useSelector } from 'react-redux'; +import { useGetActiveLicenses } from '@src/hooks/use-get-active-licenses'; interface AttestationError { message: string; @@ -11,7 +9,7 @@ interface AttestationError { [key: string]: any; } -interface UseGetAttestationHook { +interface UseGetPolicyAttestationHook { attestation?: string; loading: boolean; fetching: boolean; @@ -20,61 +18,71 @@ interface UseGetAttestationHook { } /** - * Custom hook to get the attestation of a subscription. + * Custom hook to get the attestation for a specific policy. + * @param policy The address of the policy to check. * @param recipient The address of the recipient of subscription. * @param holder The address of the holder of subscription. * @returns An object containing the attestation data, loading state, error, and a refetch function. */ -export function useGetAttestation(recipient: Address, holder?: Address): UseGetAttestationHook { +export function useGetPolicyAttestation(policy: Address, recipient: Address, holder?: Address): UseGetPolicyAttestationHook { const sessionData = useSelector((state: any) => state.auth.session); const userAddress = sessionData?.profile?.ownedBy?.address as Address | undefined; - const [attestation, setAttestation] = useState(undefined); const [loading, setLoading] = useState(true); const [fetching, setFetching] = useState(true); const [error, setError] = useState(null); + const { activeLicenses, loading: licensesLoading, refetch: refetchLicenses } = useGetActiveLicenses(recipient, holder); - const fetchAttestation = useCallback(async () => { + const fetchAttestation = useCallback(() => { setFetching(true); + + if (!policy || licensesLoading) { + setFetching(false); + setLoading(false); + return; + } + try { - const attestationData: unknown = await publicClient.readContract({ - address: GLOBAL_CONSTANTS.SUBSCRIPTION_POLICY_ADDRESS, - abi: SubscriptionPolicyAbi.abi, - functionName: 'getAttestation', - args: [recipient, holder ?? (userAddress as Address)], - }); + const matchedLicense = activeLicenses.find( + (license) => license.policy.toLowerCase() === policy.toLowerCase() + ); - const attestationStr = attestationData ? String(attestationData) : undefined; - setAttestation(attestationStr); - setError(null); + if (matchedLicense) { + setAttestation(matchedLicense.license); + setError(null); + } else { + setAttestation(undefined); + setError({ message: 'No matching license found for the specified policy.' }); + } } catch (err: any) { - console.error('Error fetching attestation:', err); + console.error('Error fetching license:', err); setError({ message: err.message || 'An error occurred' }); setAttestation(undefined); } finally { setLoading(false); setFetching(false); } - }, [recipient, holder, userAddress]); + }, [policy, activeLicenses, licensesLoading]); useEffect(() => { - if (!recipient || !(holder ?? userAddress)) { + if (!policy || !recipient || !(holder ?? userAddress)) { setLoading(false); setFetching(false); - setError({ message: 'Recipient or holder address is missing.' }); + setError({ message: 'Policy, recipient, or holder address is missing.' }); return; } + fetchAttestation(); - }, [recipient, holder, userAddress, fetchAttestation]); + }, [policy, recipient, holder, userAddress, fetchAttestation]); const refetch = useCallback(() => { - setFetching(true); + refetchLicenses(); fetchAttestation(); - }, [fetchAttestation]); + }, [refetchLicenses, fetchAttestation]); return { attestation, - loading, + loading: licensesLoading || loading, fetching, error, refetch, diff --git a/src/hooks/use-get-policy-terms.ts b/src/hooks/use-get-policy-terms.ts index a86bb42c..ded505cd 100644 --- a/src/hooks/use-get-policy-terms.ts +++ b/src/hooks/use-get-policy-terms.ts @@ -1,6 +1,6 @@ import { useState, useEffect, useCallback } from 'react'; import { Address } from 'viem'; -import { useGetAuthorizedHolderPolicies } from './use-get-authorized-holder-policies'; +import { useGetPoliciesTerms } from './use-get-policies-terms.ts'; interface HasAccessError { message: string; @@ -42,7 +42,7 @@ export const useGetPolicyTerms = ( loading: loadingPolicies, error: errorPolicies, refetch: refetchPolicies, - } = useGetAuthorizedHolderPolicies(holderAddress); + } = useGetPoliciesTerms(holderAddress); /** * Attempt to find `policyAddress` in the array of `authorizedHolderPolicies` diff --git a/src/hooks/use-has-access.ts b/src/hooks/use-has-access.ts index 5649d294..b5e777dd 100644 --- a/src/hooks/use-has-access.ts +++ b/src/hooks/use-has-access.ts @@ -43,16 +43,14 @@ export const useHasAccess = (ownerAddress?: Address): UseHasAccessHook => { setFetching(true); try { - const accessData: unknown = await publicClient.readContract({ + const accessData: any = await publicClient.readContract({ address: GLOBAL_CONSTANTS.ACCESS_AGG_ADDRESS, abi: AccessAggAbi.abi, - functionName: 'isAccessAllowedByHolder', + functionName: 'isAccessAllowed', args: [userAddress, ownerAddress], }); - console.log('isAccessAllowedByHolder', accessData); - - const access = Boolean(accessData); + const access = Boolean(accessData?.[0]); setHasAccess(access); setError(null); } catch (err: any) { diff --git a/src/hooks/use-is-active-campaign.ts b/src/hooks/use-is-active-campaign.ts new file mode 100644 index 00000000..a74bb931 --- /dev/null +++ b/src/hooks/use-is-active-campaign.ts @@ -0,0 +1,83 @@ +import { useState, useEffect, useCallback } from 'react'; +import { Address } from 'viem'; +import { publicClient } from '@src/clients/viem/publicClient'; +import SubscriptionCampaignAbi from '@src/config/abi/SubscriptionCampaign.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; +import { useSelector } from 'react-redux'; + +interface IsActiveCampaignError { + message: string; + code?: number; + [key: string]: any; +} + +interface UseIsActiveCampaignHook { + isActive?: boolean; + loading: boolean; + error?: IsActiveCampaignError | null; + refetch: () => void; +} + +export const useIsActiveCampaign = (ownerAddress?: Address): UseIsActiveCampaignHook => { + const sessionData = useSelector((state: any) => state.auth.session); + const userAddress = sessionData?.profile?.ownedBy?.address as Address | undefined; + + const [isActive, setIsActive] = useState(undefined); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + const fetchIsActive = useCallback(async () => { + if (!userAddress || !ownerAddress) { + setLoading(false); + setError({ message: 'User address or owner address is missing.' }); + return; + } + + setLoading(true); + try { + const activeData: any = await publicClient.readContract({ + address: GLOBAL_CONSTANTS.SUBSCRIPTION_CAMPAIGN_ADDRESS, + abi: SubscriptionCampaignAbi.abi, + functionName: 'isActiveCampaign', + args: [ownerAddress, GLOBAL_CONSTANTS.ACCESS_WORKFLOW_ADDRESS], + }); + + console.log('is active campaign') + console.log(activeData) + + const access = Boolean(activeData?.[0]); + setIsActive(access); + setError(null); + } catch (err: any) { + console.error('Error checking access:', err); + setIsActive(undefined); + setError({ message: err?.message || 'An error occurred' }); + } finally { + setLoading(false); + } + }, [userAddress, ownerAddress]); + + useEffect(() => { + fetchIsActive(); + }, [fetchIsActive]); + + const refetch = useCallback(() => { + fetchIsActive(); + }, [fetchIsActive]); + + if (!userAddress) { + return { + isActive: false, + loading: false, + error: null, + refetch: () => {}, + }; + } + + return { + isActive, + loading, + error, + refetch, + }; +}; diff --git a/src/hooks/use-is-policy-authorized.ts b/src/hooks/use-is-policy-authorized.ts index 6ac0110b..a5dce4be 100644 --- a/src/hooks/use-is-policy-authorized.ts +++ b/src/hooks/use-is-policy-authorized.ts @@ -1,7 +1,7 @@ import { useState, useEffect, useCallback } from 'react'; import { Address } from 'viem'; import { useSelector } from 'react-redux'; -import { useGetAuthorizedHolderPolicies } from './use-get-authorized-holder-policies.ts'; +import { useGetPoliciesTerms } from './use-get-policies-terms.ts'; interface HasAccessError { message: string; @@ -40,7 +40,7 @@ export const useIsPolicyAuthorized = ( loading: loadingPolicies, error: errorPolicies, refetch: refetchPolicies, - } = useGetAuthorizedHolderPolicies(holder ?? userAddress); + } = useGetPoliciesTerms(holder ?? userAddress); /** * Checks if the given policy exists in the holder's authorized policies. diff --git a/src/hooks/use-subscribe.ts b/src/hooks/use-subscribe.ts index b80915a7..705bbe5d 100644 --- a/src/hooks/use-subscribe.ts +++ b/src/hooks/use-subscribe.ts @@ -48,7 +48,7 @@ export const useSubscribe = (): UseSubscribeHook => { const transferToAccessAgreement = (approvalAmount: bigint): string => { return encodeFunctionData({ abi: LedgerVaultabi.abi, - functionName: 'transfer', // reserve + functionName: 'reserve', args: [ GLOBAL_CONSTANTS.ACCESS_WORKFLOW_ADDRESS, approvalAmount, diff --git a/src/sections/publication/publication-comment-item.tsx b/src/sections/publication/publication-comment-item.tsx index ee459501..5299246a 100644 --- a/src/sections/publication/publication-comment-item.tsx +++ b/src/sections/publication/publication-comment-item.tsx @@ -18,10 +18,8 @@ import { import Typography from '@mui/material/Typography'; import { hasReacted, - ProfileSession, PublicationReactionType, useReactionToggle, - useSession, } from '@lens-protocol/react-web'; import RepliesList from '@src/sections/publication/publication-replies-list.tsx'; import { timeAgo } from '@src/utils/comment.ts'; diff --git a/src/sections/user/profile-header.tsx b/src/sections/user/profile-header.tsx index af6e1b9b..c0656b97 100644 --- a/src/sections/user/profile-header.tsx +++ b/src/sections/user/profile-header.tsx @@ -41,12 +41,9 @@ import { useIsPolicyAuthorized } from '@src/hooks/use-is-policy-authorized.ts'; import { SubscribeProfileModal } from '@src/components/subscribe-profile-modal.tsx'; import { ActivateSubscriptionProfileModal } from '@src/components/activate-subscription-profile-modal.tsx'; import FollowUnfollowButton from '@src/components/follow-unfollow-button.tsx'; - -// @ts-ignore -import { ReadResult } from '@lens-protocol/react/dist/declarations/src/helpers/reads'; import { randomColors } from '@src/components/poster/variants/poster-latest-content.tsx'; import { OpenableText } from '@src/components/openable-text/index.ts'; -import { useGetAttestation } from '@src/hooks/use-get-attestation.ts'; +import { useGetPolicyAttestation } from '@src/hooks/use-get-policy-attestation.ts'; // Notifcations import { notifyError, notifySuccess } from '@notifications/internal-notifications.ts'; @@ -133,7 +130,8 @@ const ProfileHeader = ({ attestation, loading: attestationLoading, refetch: refetchAttestation, - } = useGetAttestation( + } = useGetPolicyAttestation( + GLOBAL_CONSTANTS.SUBSCRIPTION_POLICY_ADDRESS as Address, sessionData?.profile?.ownedBy?.address as Address, profile?.ownedBy?.address as Address );