From 5dbaf42e6cb7375cb5e91a5c4910b91e725ff050 Mon Sep 17 00:00:00 2001 From: Piotr Roslaniec Date: Fri, 6 Oct 2023 13:23:28 +0200 Subject: [PATCH 1/8] feat(allowlist): register encrypters in the ritual allowlist --- packages/pre/src/characters/bob.ts | 4 +- packages/pre/src/cohort.ts | 4 +- packages/pre/src/kits/retrieval.ts | 2 +- packages/pre/src/policy.ts | 3 +- packages/shared/abis/GlobalAllowList.json | 522 ++++++++++ .../src/contracts/agents/global-allow-list.ts | 41 + packages/shared/src/contracts/agents/index.ts | 1 + .../ethers-typechain/GlobalAllowList.ts | 976 ++++++++++++++++++ .../factories/GlobalAllowList__factory.ts | 546 ++++++++++ .../ethers-typechain/factories/index.ts | 1 + .../src/contracts/ethers-typechain/index.ts | 2 + packages/shared/src/contracts/registry.ts | 9 +- packages/shared/src/index.ts | 2 +- packages/shared/src/types.ts | 2 +- packages/shared/src/web3.ts | 2 +- packages/taco/src/conditions/const.ts | 2 +- packages/taco/src/taco.ts | 22 +- packages/test-utils/src/utils.ts | 8 +- 18 files changed, 2133 insertions(+), 16 deletions(-) create mode 100644 packages/shared/abis/GlobalAllowList.json create mode 100644 packages/shared/src/contracts/agents/global-allow-list.ts create mode 100644 packages/shared/src/contracts/ethers-typechain/GlobalAllowList.ts create mode 100644 packages/shared/src/contracts/ethers-typechain/factories/GlobalAllowList__factory.ts diff --git a/packages/pre/src/characters/bob.ts b/packages/pre/src/characters/bob.ts index 6fac22ba7..6db7dabba 100644 --- a/packages/pre/src/characters/bob.ts +++ b/packages/pre/src/characters/bob.ts @@ -5,7 +5,7 @@ import { SecretKey, Signer, } from '@nucypher/nucypher-core'; -import { PorterClient, zip } from '@nucypher/shared'; +import { ChecksumAddress, PorterClient, zip } from '@nucypher/shared'; import { Keyring } from '../keyring'; import { PolicyMessageKit, RetrievalResult } from '../kits'; @@ -128,7 +128,7 @@ export class Bob { return zip(policyMessageKits, retrieveCFragsResponses).map((pair) => { const [messageKit, { cFrags, errors }] = pair; const vcFrags = Object.keys(cFrags).map((address) => { - const verified = cFrags[address].verify( + const verified = cFrags[address as ChecksumAddress].verify( messageKit.capsule, publisherVerifyingKey, policyEncryptingKey, diff --git a/packages/pre/src/cohort.ts b/packages/pre/src/cohort.ts index 43e820f8b..fecad583a 100644 --- a/packages/pre/src/cohort.ts +++ b/packages/pre/src/cohort.ts @@ -14,8 +14,8 @@ export class Cohort { public static async create( porterUri: string, numUrsulas: number, - include: string[] = [], - exclude: string[] = [], + include: ChecksumAddress[] = [], + exclude: ChecksumAddress[] = [], ) { const porter = new PorterClient(porterUri); const ursulas = await porter.getUrsulas(numUrsulas, exclude, include); diff --git a/packages/pre/src/kits/retrieval.ts b/packages/pre/src/kits/retrieval.ts index ad5f333e2..cae7ad4ea 100644 --- a/packages/pre/src/kits/retrieval.ts +++ b/packages/pre/src/kits/retrieval.ts @@ -12,7 +12,7 @@ export class RetrievalResult { } public get addresses(): readonly ChecksumAddress[] { - return Object.keys(this.cFrags); + return Object.keys(this.cFrags) as ChecksumAddress[]; } public withResult(result: RetrievalResult): RetrievalResult { diff --git a/packages/pre/src/policy.ts b/packages/pre/src/policy.ts index 9ce220154..f5447ff31 100644 --- a/packages/pre/src/policy.ts +++ b/packages/pre/src/policy.ts @@ -7,6 +7,7 @@ import { VerifiedKeyFrag, } from '@nucypher/nucypher-core'; import { + ChecksumAddress, PreSubscriptionManagerAgent, toBytes, toCanonicalAddress, @@ -76,7 +77,7 @@ export class PreEnactedPolicy implements IPreEnactedPolicy { this.size, startTimestamp, endTimestamp, - ownerAddress, + ownerAddress as ChecksumAddress, ); return tx.hash; } diff --git a/packages/shared/abis/GlobalAllowList.json b/packages/shared/abis/GlobalAllowList.json new file mode 100644 index 000000000..414fb653f --- /dev/null +++ b/packages/shared/abis/GlobalAllowList.json @@ -0,0 +1,522 @@ +[ + { + "inputs": [ + { + "internalType": "contract Coordinator", + "name": "_coordinator", + "type": "address" + }, + { + "internalType": "address", + "name": "_admin", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [], + "name": "DefaultAdminDelayChangeCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "effectSchedule", + "type": "uint48" + } + ], + "name": "DefaultAdminDelayChangeScheduled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "DefaultAdminTransferCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "acceptSchedule", + "type": "uint48" + } + ], + "name": "DefaultAdminTransferScheduled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "ritualId", + "type": "uint32" + }, + { + "internalType": "address[]", + "name": "addresses", + "type": "address[]" + } + ], + "name": "authorize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "beginDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "cancelDefaultAdminTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + } + ], + "name": "changeDefaultAdminDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "coordinator", + "outputs": [ + { + "internalType": "contract Coordinator", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "ritualId", + "type": "uint32" + }, + { + "internalType": "address[]", + "name": "addresses", + "type": "address[]" + } + ], + "name": "deauthorize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdminDelay", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultAdminDelayIncreaseWait", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "ritualId", + "type": "uint32" + }, + { + "internalType": "address", + "name": "encryptor", + "type": "address" + } + ], + "name": "isAddressAuthorized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "ritualId", + "type": "uint32" + }, + { + "internalType": "bytes", + "name": "evidence", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "ciphertextHeader", + "type": "bytes" + } + ], + "name": "isAuthorized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingDefaultAdmin", + "outputs": [ + { + "internalType": "address", + "name": "newAdmin", + "type": "address" + }, + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingDefaultAdminDelay", + "outputs": [ + { + "internalType": "uint48", + "name": "newDelay", + "type": "uint48" + }, + { + "internalType": "uint48", + "name": "schedule", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rollbackDefaultAdminDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Coordinator", + "name": "_coordinator", + "type": "address" + } + ], + "name": "setCoordinator", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } +] diff --git a/packages/shared/src/contracts/agents/global-allow-list.ts b/packages/shared/src/contracts/agents/global-allow-list.ts new file mode 100644 index 000000000..a66974c70 --- /dev/null +++ b/packages/shared/src/contracts/agents/global-allow-list.ts @@ -0,0 +1,41 @@ +import { ethers } from 'ethers'; + +import { ChecksumAddress } from '../../types'; +import { GlobalAllowList, GlobalAllowList__factory } from '../ethers-typechain'; +import { DEFAULT_WAIT_N_CONFIRMATIONS, getContract } from '../registry'; + +export class GlobalAllowListAgent { + public static async registerEncrypters( + provider: ethers.providers.Provider, + signer: ethers.Signer, + ritualId: number, + encrypters: ChecksumAddress[], + ): Promise { + const globalAllowList = await this.connectReadWrite(provider, signer); + const tx = await globalAllowList.authorize(ritualId, encrypters); + await tx.wait(DEFAULT_WAIT_N_CONFIRMATIONS); + } + + private static async connectReadOnly(provider: ethers.providers.Provider) { + return await this.connect(provider); + } + + private static async connectReadWrite( + provider: ethers.providers.Provider, + signer: ethers.Signer, + ) { + return await this.connect(provider, signer); + } + + private static async connect( + provider: ethers.providers.Provider, + signer?: ethers.Signer, + ): Promise { + const network = await provider.getNetwork(); + const contractAddress = getContract(network.chainId, 'GLOBAL_ALLOW_LIST'); + return GlobalAllowList__factory.connect( + contractAddress, + signer ?? provider, + ); + } +} diff --git a/packages/shared/src/contracts/agents/index.ts b/packages/shared/src/contracts/agents/index.ts index 6196ca778..61e29c0e6 100644 --- a/packages/shared/src/contracts/agents/index.ts +++ b/packages/shared/src/contracts/agents/index.ts @@ -1,2 +1,3 @@ export * from './coordinator'; +export * from './global-allow-list'; export * from './subscription-manager'; diff --git a/packages/shared/src/contracts/ethers-typechain/GlobalAllowList.ts b/packages/shared/src/contracts/ethers-typechain/GlobalAllowList.ts new file mode 100644 index 000000000..448e4424b --- /dev/null +++ b/packages/shared/src/contracts/ethers-typechain/GlobalAllowList.ts @@ -0,0 +1,976 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from "ethers"; +import type { + FunctionFragment, + Result, + EventFragment, +} from "@ethersproject/abi"; +import type { Listener, Provider } from "@ethersproject/providers"; +import type { + TypedEventFilter, + TypedEvent, + TypedListener, + OnEvent, +} from "./common"; + +export interface GlobalAllowListInterface extends utils.Interface { + functions: { + "DEFAULT_ADMIN_ROLE()": FunctionFragment; + "acceptDefaultAdminTransfer()": FunctionFragment; + "authorize(uint32,address[])": FunctionFragment; + "beginDefaultAdminTransfer(address)": FunctionFragment; + "cancelDefaultAdminTransfer()": FunctionFragment; + "changeDefaultAdminDelay(uint48)": FunctionFragment; + "coordinator()": FunctionFragment; + "deauthorize(uint32,address[])": FunctionFragment; + "defaultAdmin()": FunctionFragment; + "defaultAdminDelay()": FunctionFragment; + "defaultAdminDelayIncreaseWait()": FunctionFragment; + "getRoleAdmin(bytes32)": FunctionFragment; + "grantRole(bytes32,address)": FunctionFragment; + "hasRole(bytes32,address)": FunctionFragment; + "isAddressAuthorized(uint32,address)": FunctionFragment; + "isAuthorized(uint32,bytes,bytes)": FunctionFragment; + "owner()": FunctionFragment; + "pendingDefaultAdmin()": FunctionFragment; + "pendingDefaultAdminDelay()": FunctionFragment; + "renounceRole(bytes32,address)": FunctionFragment; + "revokeRole(bytes32,address)": FunctionFragment; + "rollbackDefaultAdminDelay()": FunctionFragment; + "setCoordinator(address)": FunctionFragment; + "supportsInterface(bytes4)": FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | "DEFAULT_ADMIN_ROLE" + | "acceptDefaultAdminTransfer" + | "authorize" + | "beginDefaultAdminTransfer" + | "cancelDefaultAdminTransfer" + | "changeDefaultAdminDelay" + | "coordinator" + | "deauthorize" + | "defaultAdmin" + | "defaultAdminDelay" + | "defaultAdminDelayIncreaseWait" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "isAddressAuthorized" + | "isAuthorized" + | "owner" + | "pendingDefaultAdmin" + | "pendingDefaultAdminDelay" + | "renounceRole" + | "revokeRole" + | "rollbackDefaultAdminDelay" + | "setCoordinator" + | "supportsInterface" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "acceptDefaultAdminTransfer", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "authorize", + values: [BigNumberish, string[]] + ): string; + encodeFunctionData( + functionFragment: "beginDefaultAdminTransfer", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "cancelDefaultAdminTransfer", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "changeDefaultAdminDelay", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "coordinator", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "deauthorize", + values: [BigNumberish, string[]] + ): string; + encodeFunctionData( + functionFragment: "defaultAdmin", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "defaultAdminDelay", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "defaultAdminDelayIncreaseWait", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "isAddressAuthorized", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "isAuthorized", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "pendingDefaultAdmin", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "pendingDefaultAdminDelay", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "rollbackDefaultAdminDelay", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "setCoordinator", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "acceptDefaultAdminTransfer", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "authorize", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "beginDefaultAdminTransfer", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "cancelDefaultAdminTransfer", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "changeDefaultAdminDelay", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "coordinator", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "deauthorize", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "defaultAdmin", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "defaultAdminDelay", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "defaultAdminDelayIncreaseWait", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "isAddressAuthorized", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "isAuthorized", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "pendingDefaultAdmin", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "pendingDefaultAdminDelay", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "rollbackDefaultAdminDelay", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setCoordinator", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + + events: { + "DefaultAdminDelayChangeCanceled()": EventFragment; + "DefaultAdminDelayChangeScheduled(uint48,uint48)": EventFragment; + "DefaultAdminTransferCanceled()": EventFragment; + "DefaultAdminTransferScheduled(address,uint48)": EventFragment; + "RoleAdminChanged(bytes32,bytes32,bytes32)": EventFragment; + "RoleGranted(bytes32,address,address)": EventFragment; + "RoleRevoked(bytes32,address,address)": EventFragment; + }; + + getEvent( + nameOrSignatureOrTopic: "DefaultAdminDelayChangeCanceled" + ): EventFragment; + getEvent( + nameOrSignatureOrTopic: "DefaultAdminDelayChangeScheduled" + ): EventFragment; + getEvent( + nameOrSignatureOrTopic: "DefaultAdminTransferCanceled" + ): EventFragment; + getEvent( + nameOrSignatureOrTopic: "DefaultAdminTransferScheduled" + ): EventFragment; + getEvent(nameOrSignatureOrTopic: "RoleAdminChanged"): EventFragment; + getEvent(nameOrSignatureOrTopic: "RoleGranted"): EventFragment; + getEvent(nameOrSignatureOrTopic: "RoleRevoked"): EventFragment; +} + +export interface DefaultAdminDelayChangeCanceledEventObject {} +export type DefaultAdminDelayChangeCanceledEvent = TypedEvent< + [], + DefaultAdminDelayChangeCanceledEventObject +>; + +export type DefaultAdminDelayChangeCanceledEventFilter = + TypedEventFilter; + +export interface DefaultAdminDelayChangeScheduledEventObject { + newDelay: number; + effectSchedule: number; +} +export type DefaultAdminDelayChangeScheduledEvent = TypedEvent< + [number, number], + DefaultAdminDelayChangeScheduledEventObject +>; + +export type DefaultAdminDelayChangeScheduledEventFilter = + TypedEventFilter; + +export interface DefaultAdminTransferCanceledEventObject {} +export type DefaultAdminTransferCanceledEvent = TypedEvent< + [], + DefaultAdminTransferCanceledEventObject +>; + +export type DefaultAdminTransferCanceledEventFilter = + TypedEventFilter; + +export interface DefaultAdminTransferScheduledEventObject { + newAdmin: string; + acceptSchedule: number; +} +export type DefaultAdminTransferScheduledEvent = TypedEvent< + [string, number], + DefaultAdminTransferScheduledEventObject +>; + +export type DefaultAdminTransferScheduledEventFilter = + TypedEventFilter; + +export interface RoleAdminChangedEventObject { + role: string; + previousAdminRole: string; + newAdminRole: string; +} +export type RoleAdminChangedEvent = TypedEvent< + [string, string, string], + RoleAdminChangedEventObject +>; + +export type RoleAdminChangedEventFilter = + TypedEventFilter; + +export interface RoleGrantedEventObject { + role: string; + account: string; + sender: string; +} +export type RoleGrantedEvent = TypedEvent< + [string, string, string], + RoleGrantedEventObject +>; + +export type RoleGrantedEventFilter = TypedEventFilter; + +export interface RoleRevokedEventObject { + role: string; + account: string; + sender: string; +} +export type RoleRevokedEvent = TypedEvent< + [string, string, string], + RoleRevokedEventObject +>; + +export type RoleRevokedEventFilter = TypedEventFilter; + +export interface GlobalAllowList extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: GlobalAllowListInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>; + + acceptDefaultAdminTransfer( + overrides?: Overrides & { from?: string } + ): Promise; + + authorize( + ritualId: BigNumberish, + addresses: string[], + overrides?: Overrides & { from?: string } + ): Promise; + + beginDefaultAdminTransfer( + newAdmin: string, + overrides?: Overrides & { from?: string } + ): Promise; + + cancelDefaultAdminTransfer( + overrides?: Overrides & { from?: string } + ): Promise; + + changeDefaultAdminDelay( + newDelay: BigNumberish, + overrides?: Overrides & { from?: string } + ): Promise; + + coordinator(overrides?: CallOverrides): Promise<[string]>; + + deauthorize( + ritualId: BigNumberish, + addresses: string[], + overrides?: Overrides & { from?: string } + ): Promise; + + defaultAdmin(overrides?: CallOverrides): Promise<[string]>; + + defaultAdminDelay(overrides?: CallOverrides): Promise<[number]>; + + defaultAdminDelayIncreaseWait(overrides?: CallOverrides): Promise<[number]>; + + getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<[string]>; + + grantRole( + role: BytesLike, + account: string, + overrides?: Overrides & { from?: string } + ): Promise; + + hasRole( + role: BytesLike, + account: string, + overrides?: CallOverrides + ): Promise<[boolean]>; + + isAddressAuthorized( + ritualId: BigNumberish, + encryptor: string, + overrides?: CallOverrides + ): Promise<[boolean]>; + + isAuthorized( + ritualId: BigNumberish, + evidence: BytesLike, + ciphertextHeader: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + pendingDefaultAdmin( + overrides?: CallOverrides + ): Promise<[string, number] & { newAdmin: string; schedule: number }>; + + pendingDefaultAdminDelay( + overrides?: CallOverrides + ): Promise<[number, number] & { newDelay: number; schedule: number }>; + + renounceRole( + role: BytesLike, + account: string, + overrides?: Overrides & { from?: string } + ): Promise; + + revokeRole( + role: BytesLike, + account: string, + overrides?: Overrides & { from?: string } + ): Promise; + + rollbackDefaultAdminDelay( + overrides?: Overrides & { from?: string } + ): Promise; + + setCoordinator( + _coordinator: string, + overrides?: Overrides & { from?: string } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + }; + + DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise; + + acceptDefaultAdminTransfer( + overrides?: Overrides & { from?: string } + ): Promise; + + authorize( + ritualId: BigNumberish, + addresses: string[], + overrides?: Overrides & { from?: string } + ): Promise; + + beginDefaultAdminTransfer( + newAdmin: string, + overrides?: Overrides & { from?: string } + ): Promise; + + cancelDefaultAdminTransfer( + overrides?: Overrides & { from?: string } + ): Promise; + + changeDefaultAdminDelay( + newDelay: BigNumberish, + overrides?: Overrides & { from?: string } + ): Promise; + + coordinator(overrides?: CallOverrides): Promise; + + deauthorize( + ritualId: BigNumberish, + addresses: string[], + overrides?: Overrides & { from?: string } + ): Promise; + + defaultAdmin(overrides?: CallOverrides): Promise; + + defaultAdminDelay(overrides?: CallOverrides): Promise; + + defaultAdminDelayIncreaseWait(overrides?: CallOverrides): Promise; + + getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise; + + grantRole( + role: BytesLike, + account: string, + overrides?: Overrides & { from?: string } + ): Promise; + + hasRole( + role: BytesLike, + account: string, + overrides?: CallOverrides + ): Promise; + + isAddressAuthorized( + ritualId: BigNumberish, + encryptor: string, + overrides?: CallOverrides + ): Promise; + + isAuthorized( + ritualId: BigNumberish, + evidence: BytesLike, + ciphertextHeader: BytesLike, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + pendingDefaultAdmin( + overrides?: CallOverrides + ): Promise<[string, number] & { newAdmin: string; schedule: number }>; + + pendingDefaultAdminDelay( + overrides?: CallOverrides + ): Promise<[number, number] & { newDelay: number; schedule: number }>; + + renounceRole( + role: BytesLike, + account: string, + overrides?: Overrides & { from?: string } + ): Promise; + + revokeRole( + role: BytesLike, + account: string, + overrides?: Overrides & { from?: string } + ): Promise; + + rollbackDefaultAdminDelay( + overrides?: Overrides & { from?: string } + ): Promise; + + setCoordinator( + _coordinator: string, + overrides?: Overrides & { from?: string } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise; + + acceptDefaultAdminTransfer(overrides?: CallOverrides): Promise; + + authorize( + ritualId: BigNumberish, + addresses: string[], + overrides?: CallOverrides + ): Promise; + + beginDefaultAdminTransfer( + newAdmin: string, + overrides?: CallOverrides + ): Promise; + + cancelDefaultAdminTransfer(overrides?: CallOverrides): Promise; + + changeDefaultAdminDelay( + newDelay: BigNumberish, + overrides?: CallOverrides + ): Promise; + + coordinator(overrides?: CallOverrides): Promise; + + deauthorize( + ritualId: BigNumberish, + addresses: string[], + overrides?: CallOverrides + ): Promise; + + defaultAdmin(overrides?: CallOverrides): Promise; + + defaultAdminDelay(overrides?: CallOverrides): Promise; + + defaultAdminDelayIncreaseWait(overrides?: CallOverrides): Promise; + + getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise; + + grantRole( + role: BytesLike, + account: string, + overrides?: CallOverrides + ): Promise; + + hasRole( + role: BytesLike, + account: string, + overrides?: CallOverrides + ): Promise; + + isAddressAuthorized( + ritualId: BigNumberish, + encryptor: string, + overrides?: CallOverrides + ): Promise; + + isAuthorized( + ritualId: BigNumberish, + evidence: BytesLike, + ciphertextHeader: BytesLike, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + pendingDefaultAdmin( + overrides?: CallOverrides + ): Promise<[string, number] & { newAdmin: string; schedule: number }>; + + pendingDefaultAdminDelay( + overrides?: CallOverrides + ): Promise<[number, number] & { newDelay: number; schedule: number }>; + + renounceRole( + role: BytesLike, + account: string, + overrides?: CallOverrides + ): Promise; + + revokeRole( + role: BytesLike, + account: string, + overrides?: CallOverrides + ): Promise; + + rollbackDefaultAdminDelay(overrides?: CallOverrides): Promise; + + setCoordinator( + _coordinator: string, + overrides?: CallOverrides + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "DefaultAdminDelayChangeCanceled()"(): DefaultAdminDelayChangeCanceledEventFilter; + DefaultAdminDelayChangeCanceled(): DefaultAdminDelayChangeCanceledEventFilter; + + "DefaultAdminDelayChangeScheduled(uint48,uint48)"( + newDelay?: null, + effectSchedule?: null + ): DefaultAdminDelayChangeScheduledEventFilter; + DefaultAdminDelayChangeScheduled( + newDelay?: null, + effectSchedule?: null + ): DefaultAdminDelayChangeScheduledEventFilter; + + "DefaultAdminTransferCanceled()"(): DefaultAdminTransferCanceledEventFilter; + DefaultAdminTransferCanceled(): DefaultAdminTransferCanceledEventFilter; + + "DefaultAdminTransferScheduled(address,uint48)"( + newAdmin?: string | null, + acceptSchedule?: null + ): DefaultAdminTransferScheduledEventFilter; + DefaultAdminTransferScheduled( + newAdmin?: string | null, + acceptSchedule?: null + ): DefaultAdminTransferScheduledEventFilter; + + "RoleAdminChanged(bytes32,bytes32,bytes32)"( + role?: BytesLike | null, + previousAdminRole?: BytesLike | null, + newAdminRole?: BytesLike | null + ): RoleAdminChangedEventFilter; + RoleAdminChanged( + role?: BytesLike | null, + previousAdminRole?: BytesLike | null, + newAdminRole?: BytesLike | null + ): RoleAdminChangedEventFilter; + + "RoleGranted(bytes32,address,address)"( + role?: BytesLike | null, + account?: string | null, + sender?: string | null + ): RoleGrantedEventFilter; + RoleGranted( + role?: BytesLike | null, + account?: string | null, + sender?: string | null + ): RoleGrantedEventFilter; + + "RoleRevoked(bytes32,address,address)"( + role?: BytesLike | null, + account?: string | null, + sender?: string | null + ): RoleRevokedEventFilter; + RoleRevoked( + role?: BytesLike | null, + account?: string | null, + sender?: string | null + ): RoleRevokedEventFilter; + }; + + estimateGas: { + DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise; + + acceptDefaultAdminTransfer( + overrides?: Overrides & { from?: string } + ): Promise; + + authorize( + ritualId: BigNumberish, + addresses: string[], + overrides?: Overrides & { from?: string } + ): Promise; + + beginDefaultAdminTransfer( + newAdmin: string, + overrides?: Overrides & { from?: string } + ): Promise; + + cancelDefaultAdminTransfer( + overrides?: Overrides & { from?: string } + ): Promise; + + changeDefaultAdminDelay( + newDelay: BigNumberish, + overrides?: Overrides & { from?: string } + ): Promise; + + coordinator(overrides?: CallOverrides): Promise; + + deauthorize( + ritualId: BigNumberish, + addresses: string[], + overrides?: Overrides & { from?: string } + ): Promise; + + defaultAdmin(overrides?: CallOverrides): Promise; + + defaultAdminDelay(overrides?: CallOverrides): Promise; + + defaultAdminDelayIncreaseWait( + overrides?: CallOverrides + ): Promise; + + getRoleAdmin( + role: BytesLike, + overrides?: CallOverrides + ): Promise; + + grantRole( + role: BytesLike, + account: string, + overrides?: Overrides & { from?: string } + ): Promise; + + hasRole( + role: BytesLike, + account: string, + overrides?: CallOverrides + ): Promise; + + isAddressAuthorized( + ritualId: BigNumberish, + encryptor: string, + overrides?: CallOverrides + ): Promise; + + isAuthorized( + ritualId: BigNumberish, + evidence: BytesLike, + ciphertextHeader: BytesLike, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + pendingDefaultAdmin(overrides?: CallOverrides): Promise; + + pendingDefaultAdminDelay(overrides?: CallOverrides): Promise; + + renounceRole( + role: BytesLike, + account: string, + overrides?: Overrides & { from?: string } + ): Promise; + + revokeRole( + role: BytesLike, + account: string, + overrides?: Overrides & { from?: string } + ): Promise; + + rollbackDefaultAdminDelay( + overrides?: Overrides & { from?: string } + ): Promise; + + setCoordinator( + _coordinator: string, + overrides?: Overrides & { from?: string } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + DEFAULT_ADMIN_ROLE( + overrides?: CallOverrides + ): Promise; + + acceptDefaultAdminTransfer( + overrides?: Overrides & { from?: string } + ): Promise; + + authorize( + ritualId: BigNumberish, + addresses: string[], + overrides?: Overrides & { from?: string } + ): Promise; + + beginDefaultAdminTransfer( + newAdmin: string, + overrides?: Overrides & { from?: string } + ): Promise; + + cancelDefaultAdminTransfer( + overrides?: Overrides & { from?: string } + ): Promise; + + changeDefaultAdminDelay( + newDelay: BigNumberish, + overrides?: Overrides & { from?: string } + ): Promise; + + coordinator(overrides?: CallOverrides): Promise; + + deauthorize( + ritualId: BigNumberish, + addresses: string[], + overrides?: Overrides & { from?: string } + ): Promise; + + defaultAdmin(overrides?: CallOverrides): Promise; + + defaultAdminDelay(overrides?: CallOverrides): Promise; + + defaultAdminDelayIncreaseWait( + overrides?: CallOverrides + ): Promise; + + getRoleAdmin( + role: BytesLike, + overrides?: CallOverrides + ): Promise; + + grantRole( + role: BytesLike, + account: string, + overrides?: Overrides & { from?: string } + ): Promise; + + hasRole( + role: BytesLike, + account: string, + overrides?: CallOverrides + ): Promise; + + isAddressAuthorized( + ritualId: BigNumberish, + encryptor: string, + overrides?: CallOverrides + ): Promise; + + isAuthorized( + ritualId: BigNumberish, + evidence: BytesLike, + ciphertextHeader: BytesLike, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + pendingDefaultAdmin( + overrides?: CallOverrides + ): Promise; + + pendingDefaultAdminDelay( + overrides?: CallOverrides + ): Promise; + + renounceRole( + role: BytesLike, + account: string, + overrides?: Overrides & { from?: string } + ): Promise; + + revokeRole( + role: BytesLike, + account: string, + overrides?: Overrides & { from?: string } + ): Promise; + + rollbackDefaultAdminDelay( + overrides?: Overrides & { from?: string } + ): Promise; + + setCoordinator( + _coordinator: string, + overrides?: Overrides & { from?: string } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/packages/shared/src/contracts/ethers-typechain/factories/GlobalAllowList__factory.ts b/packages/shared/src/contracts/ethers-typechain/factories/GlobalAllowList__factory.ts new file mode 100644 index 000000000..f46e18fa6 --- /dev/null +++ b/packages/shared/src/contracts/ethers-typechain/factories/GlobalAllowList__factory.ts @@ -0,0 +1,546 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import type { Provider } from "@ethersproject/providers"; +import type { + GlobalAllowList, + GlobalAllowListInterface, +} from "../GlobalAllowList"; + +const _abi = [ + { + inputs: [ + { + internalType: "contract Coordinator", + name: "_coordinator", + type: "address", + }, + { + internalType: "address", + name: "_admin", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [], + name: "DefaultAdminDelayChangeCanceled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint48", + name: "newDelay", + type: "uint48", + }, + { + indexed: false, + internalType: "uint48", + name: "effectSchedule", + type: "uint48", + }, + ], + name: "DefaultAdminDelayChangeScheduled", + type: "event", + }, + { + anonymous: false, + inputs: [], + name: "DefaultAdminTransferCanceled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "newAdmin", + type: "address", + }, + { + indexed: false, + internalType: "uint48", + name: "acceptSchedule", + type: "uint48", + }, + ], + name: "DefaultAdminTransferScheduled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "previousAdminRole", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newAdminRole", + type: "bytes32", + }, + ], + name: "RoleAdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleGranted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleRevoked", + type: "event", + }, + { + inputs: [], + name: "DEFAULT_ADMIN_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "acceptDefaultAdminTransfer", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "ritualId", + type: "uint32", + }, + { + internalType: "address[]", + name: "addresses", + type: "address[]", + }, + ], + name: "authorize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newAdmin", + type: "address", + }, + ], + name: "beginDefaultAdminTransfer", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "cancelDefaultAdminTransfer", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint48", + name: "newDelay", + type: "uint48", + }, + ], + name: "changeDefaultAdminDelay", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "coordinator", + outputs: [ + { + internalType: "contract Coordinator", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "ritualId", + type: "uint32", + }, + { + internalType: "address[]", + name: "addresses", + type: "address[]", + }, + ], + name: "deauthorize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "defaultAdmin", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "defaultAdminDelay", + outputs: [ + { + internalType: "uint48", + name: "", + type: "uint48", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "defaultAdminDelayIncreaseWait", + outputs: [ + { + internalType: "uint48", + name: "", + type: "uint48", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + ], + name: "getRoleAdmin", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "hasRole", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "ritualId", + type: "uint32", + }, + { + internalType: "address", + name: "encryptor", + type: "address", + }, + ], + name: "isAddressAuthorized", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32", + name: "ritualId", + type: "uint32", + }, + { + internalType: "bytes", + name: "evidence", + type: "bytes", + }, + { + internalType: "bytes", + name: "ciphertextHeader", + type: "bytes", + }, + ], + name: "isAuthorized", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "pendingDefaultAdmin", + outputs: [ + { + internalType: "address", + name: "newAdmin", + type: "address", + }, + { + internalType: "uint48", + name: "schedule", + type: "uint48", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "pendingDefaultAdminDelay", + outputs: [ + { + internalType: "uint48", + name: "newDelay", + type: "uint48", + }, + { + internalType: "uint48", + name: "schedule", + type: "uint48", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "renounceRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "rollbackDefaultAdminDelay", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "contract Coordinator", + name: "_coordinator", + type: "address", + }, + ], + name: "setCoordinator", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class GlobalAllowList__factory { + static readonly abi = _abi; + static createInterface(): GlobalAllowListInterface { + return new utils.Interface(_abi) as GlobalAllowListInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): GlobalAllowList { + return new Contract(address, _abi, signerOrProvider) as GlobalAllowList; + } +} diff --git a/packages/shared/src/contracts/ethers-typechain/factories/index.ts b/packages/shared/src/contracts/ethers-typechain/factories/index.ts index f91f0a2b7..19ffd50d3 100644 --- a/packages/shared/src/contracts/ethers-typechain/factories/index.ts +++ b/packages/shared/src/contracts/ethers-typechain/factories/index.ts @@ -2,4 +2,5 @@ /* tslint:disable */ /* eslint-disable */ export { Coordinator__factory } from "./Coordinator__factory"; +export { GlobalAllowList__factory } from "./GlobalAllowList__factory"; export { SubscriptionManager__factory } from "./SubscriptionManager__factory"; diff --git a/packages/shared/src/contracts/ethers-typechain/index.ts b/packages/shared/src/contracts/ethers-typechain/index.ts index 64d144160..27e4b39b2 100644 --- a/packages/shared/src/contracts/ethers-typechain/index.ts +++ b/packages/shared/src/contracts/ethers-typechain/index.ts @@ -2,7 +2,9 @@ /* tslint:disable */ /* eslint-disable */ export type { Coordinator } from "./Coordinator"; +export type { GlobalAllowList } from "./GlobalAllowList"; export type { SubscriptionManager } from "./SubscriptionManager"; export * as factories from "./factories"; export { Coordinator__factory } from "./factories/Coordinator__factory"; +export { GlobalAllowList__factory } from "./factories/GlobalAllowList__factory"; export { SubscriptionManager__factory } from "./factories/SubscriptionManager__factory"; diff --git a/packages/shared/src/contracts/registry.ts b/packages/shared/src/contracts/registry.ts index d15ffc23e..8a2a7b937 100644 --- a/packages/shared/src/contracts/registry.ts +++ b/packages/shared/src/contracts/registry.ts @@ -4,33 +4,38 @@ import { ChainId } from '../web3'; type Contracts = { readonly SUBSCRIPTION_MANAGER: ChecksumAddress | undefined; readonly COORDINATOR: ChecksumAddress | undefined; + readonly GLOBAL_ALLOW_LIST: ChecksumAddress | undefined; }; const POLYGON: Contracts = { SUBSCRIPTION_MANAGER: '0xB0194073421192F6Cf38d72c791Be8729721A0b3', COORDINATOR: undefined, + GLOBAL_ALLOW_LIST: undefined, }; const MUMBAI: Contracts = { SUBSCRIPTION_MANAGER: '0xb9015d7b35ce7c81dde38ef7136baa3b1044f313', COORDINATOR: '0x8E49989F9D3aD89c8ab0de21FbA2E00C67ca872F', + GLOBAL_ALLOW_LIST: '0x7b521E78CFaf55fa01433181d1D636E7e4b73243', }; const GOERLI: Contracts = { SUBSCRIPTION_MANAGER: undefined, COORDINATOR: '0x2cf19429168a0943992D8e7dE534E9b802C687B6', + GLOBAL_ALLOW_LIST: undefined, }; -const MAINNET: Contracts = { +const ETHEREUM_MAINNET: Contracts = { SUBSCRIPTION_MANAGER: undefined, COORDINATOR: undefined, + GLOBAL_ALLOW_LIST: undefined, }; const CONTRACTS: { readonly [key in ChainId]: Contracts } = { [ChainId.POLYGON]: POLYGON, [ChainId.MUMBAI]: MUMBAI, [ChainId.GOERLI]: GOERLI, - [ChainId.MAINNET]: MAINNET, + [ChainId.ETHEREUM_MAINNET]: ETHEREUM_MAINNET, }; export const getContract = ( diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index 800d2ac5e..63f08aa5a 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -1,6 +1,6 @@ export * from './contracts'; export * from './porter'; -export * from './types'; +export type * from './types'; export * from './utils'; export * from './web3'; diff --git a/packages/shared/src/types.ts b/packages/shared/src/types.ts index 9befc497e..02603b3c2 100644 --- a/packages/shared/src/types.ts +++ b/packages/shared/src/types.ts @@ -1,3 +1,3 @@ -export type ChecksumAddress = string; +export type ChecksumAddress = `0x${string}`; export type HexEncodedBytes = string; export type Base64EncodedBytes = string; diff --git a/packages/shared/src/web3.ts b/packages/shared/src/web3.ts index c4bdcee12..d82919698 100644 --- a/packages/shared/src/web3.ts +++ b/packages/shared/src/web3.ts @@ -4,7 +4,7 @@ export enum ChainId { POLYGON = 137, MUMBAI = 80001, GOERLI = 5, - MAINNET = 1, + ETHEREUM_MAINNET = 1, } export const toCanonicalAddress = (address: string): Uint8Array => { diff --git a/packages/taco/src/conditions/const.ts b/packages/taco/src/conditions/const.ts index a7d8dc12c..2c100bf33 100644 --- a/packages/taco/src/conditions/const.ts +++ b/packages/taco/src/conditions/const.ts @@ -8,5 +8,5 @@ export const SUPPORTED_CHAIN_IDS = [ ChainId.POLYGON, ChainId.MUMBAI, ChainId.GOERLI, - ChainId.MAINNET, + ChainId.ETHEREUM_MAINNET, ]; diff --git a/packages/taco/src/taco.ts b/packages/taco/src/taco.ts index b15f4871b..abb9f2c9d 100644 --- a/packages/taco/src/taco.ts +++ b/packages/taco/src/taco.ts @@ -4,7 +4,13 @@ import { encryptForDkg, ThresholdMessageKit, } from '@nucypher/nucypher-core'; -import { DkgCoordinatorAgent, fromHexString, toBytes } from '@nucypher/shared'; +import { + ChecksumAddress, + DkgCoordinatorAgent, + fromHexString, + GlobalAllowListAgent, + toBytes, +} from '@nucypher/shared'; import { ethers } from 'ethers'; import { keccak256 } from 'ethers/lib/utils'; @@ -101,3 +107,17 @@ export const isAuthorized = async ( messageKit: ThresholdMessageKit, ritualId: number, ) => DkgCoordinatorAgent.isEncryptionAuthorized(provider, ritualId, messageKit); + +export const registerEncrypters = async ( + provider: ethers.providers.Provider, + signer: ethers.Signer, + ritualId: number, + encrypters: ChecksumAddress[], +): Promise => { + await GlobalAllowListAgent.registerEncrypters( + provider, + signer, + ritualId, + encrypters, + ); +}; diff --git a/packages/test-utils/src/utils.ts b/packages/test-utils/src/utils.ts index 0ffcf8910..858adf68c 100644 --- a/packages/test-utils/src/utils.ts +++ b/packages/test-utils/src/utils.ts @@ -95,8 +95,10 @@ export const fakeProvider = ( } as unknown as ethers.providers.Web3Provider; }; -const genChecksumAddress = (i: number) => - '0x' + '0'.repeat(40 - i.toString(16).length) + i.toString(16); +const genChecksumAddress = (i: number): ChecksumAddress => + `0x${'0'.repeat(40 - i.toString(16).length)}${i.toString( + 16, + )}`.toLowerCase() as ChecksumAddress; const genEthAddr = (i: number) => EthereumAddress.fromString(genChecksumAddress(i)); @@ -105,7 +107,7 @@ export const fakeUrsulas = (n = 4): Ursula[] => // 0...n-1 Array.from(Array(n).keys()).map((i: number) => ({ encryptingKey: SecretKey.random().publicKey(), - checksumAddress: genChecksumAddress(i).toLowerCase(), + checksumAddress: genChecksumAddress(i), uri: `https://example.${i}.com:9151`, })); From 599cb72b7afd8282e57ef3517e8d836d8b746cc5 Mon Sep 17 00:00:00 2001 From: Piotr Roslaniec Date: Fri, 6 Oct 2023 16:23:06 +0200 Subject: [PATCH 2/8] feature(contracts): use @nucypher/nucypher-contracts package with typechain --- packages/shared/abis/Coordinator.json | 1423 - packages/shared/abis/SubscriptionManager.json | 22543 ---------------- packages/shared/package.json | 4 +- packages/shared/scripts/typechain.ts | 92 + .../factories/GlobalAllowList__factory.ts | 320 +- .../factories/SubscriptionManager__factory.ts | 44 +- packages/shared/tsconfig.json | 1 + pnpm-lock.yaml | 14 + 8 files changed, 274 insertions(+), 24167 deletions(-) delete mode 100644 packages/shared/abis/Coordinator.json delete mode 100644 packages/shared/abis/SubscriptionManager.json create mode 100644 packages/shared/scripts/typechain.ts diff --git a/packages/shared/abis/Coordinator.json b/packages/shared/abis/Coordinator.json deleted file mode 100644 index 2217b4085..000000000 --- a/packages/shared/abis/Coordinator.json +++ /dev/null @@ -1,1423 +0,0 @@ -[ - { - "type": "constructor", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_application", - "type": "address", - "internalType": "contract ITACoChildApplication" - }, - { - "name": "_timeout", - "type": "uint32", - "internalType": "uint32" - }, - { - "name": "_maxDkgSize", - "type": "uint16", - "internalType": "uint16" - }, - { - "name": "_admin", - "type": "address", - "internalType": "address" - }, - { - "name": "_currency", - "type": "address", - "internalType": "contract IERC20" - }, - { - "name": "_feeRatePerSecond", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "event", - "name": "AggregationPosted", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32", - "indexed": true - }, - { - "name": "node", - "type": "address", - "internalType": "address", - "indexed": true - }, - { - "name": "aggregatedTranscriptDigest", - "type": "bytes32", - "internalType": "bytes32", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "DefaultAdminDelayChangeCanceled", - "inputs": [], - "anonymous": false - }, - { - "type": "event", - "name": "DefaultAdminDelayChangeScheduled", - "inputs": [ - { - "name": "newDelay", - "type": "uint48", - "internalType": "uint48", - "indexed": false - }, - { - "name": "effectSchedule", - "type": "uint48", - "internalType": "uint48", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "DefaultAdminTransferCanceled", - "inputs": [], - "anonymous": false - }, - { - "type": "event", - "name": "DefaultAdminTransferScheduled", - "inputs": [ - { - "name": "newAdmin", - "type": "address", - "internalType": "address", - "indexed": true - }, - { - "name": "acceptSchedule", - "type": "uint48", - "internalType": "uint48", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "EndRitual", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32", - "indexed": true - }, - { - "name": "successful", - "type": "bool", - "internalType": "bool", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "MaxDkgSizeChanged", - "inputs": [ - { - "name": "oldSize", - "type": "uint16", - "internalType": "uint16", - "indexed": false - }, - { - "name": "newSize", - "type": "uint16", - "internalType": "uint16", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "ParticipantPublicKeySet", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32", - "indexed": true - }, - { - "name": "participant", - "type": "address", - "internalType": "address", - "indexed": true - }, - { - "name": "publicKey", - "type": "tuple", - "components": [ - { - "name": "word0", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "word1", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "word2", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "internalType": "struct BLS12381.G2Point", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "RoleAdminChanged", - "inputs": [ - { - "name": "role", - "type": "bytes32", - "internalType": "bytes32", - "indexed": true - }, - { - "name": "previousAdminRole", - "type": "bytes32", - "internalType": "bytes32", - "indexed": true - }, - { - "name": "newAdminRole", - "type": "bytes32", - "internalType": "bytes32", - "indexed": true - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "RoleGranted", - "inputs": [ - { - "name": "role", - "type": "bytes32", - "internalType": "bytes32", - "indexed": true - }, - { - "name": "account", - "type": "address", - "internalType": "address", - "indexed": true - }, - { - "name": "sender", - "type": "address", - "internalType": "address", - "indexed": true - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "RoleRevoked", - "inputs": [ - { - "name": "role", - "type": "bytes32", - "internalType": "bytes32", - "indexed": true - }, - { - "name": "account", - "type": "address", - "internalType": "address", - "indexed": true - }, - { - "name": "sender", - "type": "address", - "internalType": "address", - "indexed": true - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "StartAggregationRound", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32", - "indexed": true - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "StartRitual", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32", - "indexed": true - }, - { - "name": "authority", - "type": "address", - "internalType": "address", - "indexed": true - }, - { - "name": "participants", - "type": "address[]", - "internalType": "address[]", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "TimeoutChanged", - "inputs": [ - { - "name": "oldTimeout", - "type": "uint32", - "internalType": "uint32", - "indexed": false - }, - { - "name": "newTimeout", - "type": "uint32", - "internalType": "uint32", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "TranscriptPosted", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32", - "indexed": true - }, - { - "name": "node", - "type": "address", - "internalType": "address", - "indexed": true - }, - { - "name": "transcriptDigest", - "type": "bytes32", - "internalType": "bytes32", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "function", - "name": "DEFAULT_ADMIN_ROLE", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "bytes32", - "internalType": "bytes32" - } - ] - }, - { - "type": "function", - "name": "INITIATOR_ROLE", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "bytes32", - "internalType": "bytes32" - } - ] - }, - { - "type": "function", - "name": "TREASURY_ROLE", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "bytes32", - "internalType": "bytes32" - } - ] - }, - { - "type": "function", - "name": "acceptDefaultAdminTransfer", - "stateMutability": "nonpayable", - "inputs": [], - "outputs": [] - }, - { - "type": "function", - "name": "application", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "contract ITACoChildApplication" - } - ] - }, - { - "type": "function", - "name": "beginDefaultAdminTransfer", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "newAdmin", - "type": "address", - "internalType": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "cancelDefaultAdminTransfer", - "stateMutability": "nonpayable", - "inputs": [], - "outputs": [] - }, - { - "type": "function", - "name": "changeDefaultAdminDelay", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "newDelay", - "type": "uint48", - "internalType": "uint48" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "cohortFingerprint", - "stateMutability": "pure", - "inputs": [ - { - "name": "nodes", - "type": "address[]", - "internalType": "address[]" - } - ], - "outputs": [ - { - "name": "", - "type": "bytes32", - "internalType": "bytes32" - } - ] - }, - { - "type": "function", - "name": "currency", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "contract IERC20" - } - ] - }, - { - "type": "function", - "name": "defaultAdmin", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - } - ] - }, - { - "type": "function", - "name": "defaultAdminDelay", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint48", - "internalType": "uint48" - } - ] - }, - { - "type": "function", - "name": "defaultAdminDelayIncreaseWait", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint48", - "internalType": "uint48" - } - ] - }, - { - "type": "function", - "name": "feeRatePerSecond", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "function", - "name": "getAuthority", - "stateMutability": "view", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32" - } - ], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - } - ] - }, - { - "type": "function", - "name": "getParticipantFromProvider", - "stateMutability": "view", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32" - }, - { - "name": "provider", - "type": "address", - "internalType": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "tuple", - "components": [ - { - "name": "provider", - "type": "address", - "internalType": "address" - }, - { - "name": "aggregated", - "type": "bool", - "internalType": "bool" - }, - { - "name": "transcript", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "decryptionRequestStaticKey", - "type": "bytes", - "internalType": "bytes" - } - ], - "internalType": "struct Coordinator.Participant" - } - ] - }, - { - "type": "function", - "name": "getParticipants", - "stateMutability": "view", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32" - } - ], - "outputs": [ - { - "name": "", - "type": "tuple[]", - "components": [ - { - "name": "provider", - "type": "address", - "internalType": "address" - }, - { - "name": "aggregated", - "type": "bool", - "internalType": "bool" - }, - { - "name": "transcript", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "decryptionRequestStaticKey", - "type": "bytes", - "internalType": "bytes" - } - ], - "internalType": "struct Coordinator.Participant[]" - } - ] - }, - { - "type": "function", - "name": "getProviderPublicKey", - "stateMutability": "view", - "inputs": [ - { - "name": "_provider", - "type": "address", - "internalType": "address" - }, - { - "name": "_ritualId", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "tuple", - "components": [ - { - "name": "word0", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "word1", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "word2", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "internalType": "struct BLS12381.G2Point" - } - ] - }, - { - "type": "function", - "name": "getPublicKeyFromRitualId", - "stateMutability": "view", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32" - } - ], - "outputs": [ - { - "name": "dkgPublicKey", - "type": "tuple", - "components": [ - { - "name": "word0", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "word1", - "type": "bytes16", - "internalType": "bytes16" - } - ], - "internalType": "struct BLS12381.G1Point" - } - ] - }, - { - "type": "function", - "name": "getRitualIdFromPublicKey", - "stateMutability": "view", - "inputs": [ - { - "name": "dkgPublicKey", - "type": "tuple", - "components": [ - { - "name": "word0", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "word1", - "type": "bytes16", - "internalType": "bytes16" - } - ], - "internalType": "struct BLS12381.G1Point" - } - ], - "outputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32" - } - ] - }, - { - "type": "function", - "name": "getRitualInitiationCost", - "stateMutability": "view", - "inputs": [ - { - "name": "providers", - "type": "address[]", - "internalType": "address[]" - }, - { - "name": "duration", - "type": "uint32", - "internalType": "uint32" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "function", - "name": "getRitualState", - "stateMutability": "view", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32" - } - ], - "outputs": [ - { - "name": "", - "type": "uint8", - "internalType": "enum Coordinator.RitualState" - } - ] - }, - { - "type": "function", - "name": "getRoleAdmin", - "stateMutability": "view", - "inputs": [ - { - "name": "role", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "bytes32", - "internalType": "bytes32" - } - ] - }, - { - "type": "function", - "name": "getThresholdForRitualSize", - "stateMutability": "pure", - "inputs": [ - { - "name": "size", - "type": "uint16", - "internalType": "uint16" - } - ], - "outputs": [ - { - "name": "", - "type": "uint16", - "internalType": "uint16" - } - ] - }, - { - "type": "function", - "name": "grantRole", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "role", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "account", - "type": "address", - "internalType": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "hasRole", - "stateMutability": "view", - "inputs": [ - { - "name": "role", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "account", - "type": "address", - "internalType": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ] - }, - { - "type": "function", - "name": "initiateRitual", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "providers", - "type": "address[]", - "internalType": "address[]" - }, - { - "name": "authority", - "type": "address", - "internalType": "address" - }, - { - "name": "duration", - "type": "uint32", - "internalType": "uint32" - }, - { - "name": "accessController", - "type": "address", - "internalType": "contract IEncryptionAuthorizer" - } - ], - "outputs": [ - { - "name": "", - "type": "uint32", - "internalType": "uint32" - } - ] - }, - { - "type": "function", - "name": "isEncryptionAuthorized", - "stateMutability": "view", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32" - }, - { - "name": "evidence", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "ciphertextHeader", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ] - }, - { - "type": "function", - "name": "isInitiationPublic", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ] - }, - { - "type": "function", - "name": "isProviderPublicKeySet", - "stateMutability": "view", - "inputs": [ - { - "name": "_provider", - "type": "address", - "internalType": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ] - }, - { - "type": "function", - "name": "isRitualFinalized", - "stateMutability": "view", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ] - }, - { - "type": "function", - "name": "makeInitiationPublic", - "stateMutability": "nonpayable", - "inputs": [], - "outputs": [] - }, - { - "type": "function", - "name": "maxDkgSize", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint16", - "internalType": "uint16" - } - ] - }, - { - "type": "function", - "name": "numberOfRituals", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "function", - "name": "owner", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - } - ] - }, - { - "type": "function", - "name": "pendingDefaultAdmin", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "newAdmin", - "type": "address", - "internalType": "address" - }, - { - "name": "schedule", - "type": "uint48", - "internalType": "uint48" - } - ] - }, - { - "type": "function", - "name": "pendingDefaultAdminDelay", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "newDelay", - "type": "uint48", - "internalType": "uint48" - }, - { - "name": "schedule", - "type": "uint48", - "internalType": "uint48" - } - ] - }, - { - "type": "function", - "name": "pendingFees", - "stateMutability": "view", - "inputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "function", - "name": "postAggregation", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32" - }, - { - "name": "aggregatedTranscript", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "dkgPublicKey", - "type": "tuple", - "components": [ - { - "name": "word0", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "word1", - "type": "bytes16", - "internalType": "bytes16" - } - ], - "internalType": "struct BLS12381.G1Point" - }, - { - "name": "decryptionRequestStaticKey", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "postTranscript", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32" - }, - { - "name": "transcript", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "processPendingFee", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "renounceRole", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "role", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "account", - "type": "address", - "internalType": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "revokeRole", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "role", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "account", - "type": "address", - "internalType": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "rituals", - "stateMutability": "view", - "inputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "initiator", - "type": "address", - "internalType": "address" - }, - { - "name": "initTimestamp", - "type": "uint32", - "internalType": "uint32" - }, - { - "name": "endTimestamp", - "type": "uint32", - "internalType": "uint32" - }, - { - "name": "totalTranscripts", - "type": "uint16", - "internalType": "uint16" - }, - { - "name": "totalAggregations", - "type": "uint16", - "internalType": "uint16" - }, - { - "name": "authority", - "type": "address", - "internalType": "address" - }, - { - "name": "dkgSize", - "type": "uint16", - "internalType": "uint16" - }, - { - "name": "threshold", - "type": "uint16", - "internalType": "uint16" - }, - { - "name": "aggregationMismatch", - "type": "bool", - "internalType": "bool" - }, - { - "name": "accessController", - "type": "address", - "internalType": "contract IEncryptionAuthorizer" - }, - { - "name": "publicKey", - "type": "tuple", - "components": [ - { - "name": "word0", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "word1", - "type": "bytes16", - "internalType": "bytes16" - } - ], - "internalType": "struct BLS12381.G1Point" - }, - { - "name": "aggregatedTranscript", - "type": "bytes", - "internalType": "bytes" - } - ] - }, - { - "type": "function", - "name": "rollbackDefaultAdminDelay", - "stateMutability": "nonpayable", - "inputs": [], - "outputs": [] - }, - { - "type": "function", - "name": "setMaxDkgSize", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "newSize", - "type": "uint16", - "internalType": "uint16" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "setProviderPublicKey", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_publicKey", - "type": "tuple", - "components": [ - { - "name": "word0", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "word1", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "word2", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "internalType": "struct BLS12381.G2Point" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "setReimbursementPool", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "pool", - "type": "address", - "internalType": "contract IReimbursementPool" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "setRitualAuthority", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "ritualId", - "type": "uint32", - "internalType": "uint32" - }, - { - "name": "authority", - "type": "address", - "internalType": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "setTimeout", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "newTimeout", - "type": "uint32", - "internalType": "uint32" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "supportsInterface", - "stateMutability": "view", - "inputs": [ - { - "name": "interfaceId", - "type": "bytes4", - "internalType": "bytes4" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ] - }, - { - "type": "function", - "name": "timeout", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint32", - "internalType": "uint32" - } - ] - }, - { - "type": "function", - "name": "totalPendingFees", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "function", - "name": "withdrawTokens", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "token", - "type": "address", - "internalType": "contract IERC20" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [] - } -] diff --git a/packages/shared/abis/SubscriptionManager.json b/packages/shared/abis/SubscriptionManager.json deleted file mode 100644 index 8c2b86540..000000000 --- a/packages/shared/abis/SubscriptionManager.json +++ /dev/null @@ -1,22543 +0,0 @@ -{ - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "oldFeeRate", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newFeeRate", - "type": "uint256" - } - ], - "name": "FeeRateUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes16", - "name": "policyId", - "type": "bytes16" - }, - { - "indexed": true, - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint16", - "name": "size", - "type": "uint16" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "startTimestamp", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "endTimestamp", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "cost", - "type": "uint256" - } - ], - "name": "PolicyCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "SET_RATE_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "WITHDRAW_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes16", - "name": "_policyId", - "type": "bytes16" - }, - { - "internalType": "address", - "name": "_policyOwner", - "type": "address" - }, - { - "internalType": "uint16", - "name": "_size", - "type": "uint16" - }, - { - "internalType": "uint32", - "name": "_startTimestamp", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "_endTimestamp", - "type": "uint32" - } - ], - "name": "createPolicy", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "feeRate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes16", - "name": "_policyID", - "type": "bytes16" - } - ], - "name": "getPolicy", - "outputs": [ - { - "components": [ - { - "internalType": "address payable", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint32", - "name": "startTimestamp", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "endTimestamp", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "size", - "type": "uint16" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "internalType": "struct SubscriptionManager.Policy", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint16", - "name": "_size", - "type": "uint16" - }, - { - "internalType": "uint32", - "name": "_startTimestamp", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "_endTimestamp", - "type": "uint32" - } - ], - "name": "getPolicyCost", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_feeRate", - "type": "uint256" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes16", - "name": "_policyID", - "type": "bytes16" - } - ], - "name": "isPolicyActive", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_ratePerSecond", - "type": "uint256" - } - ], - "name": "setFeeRate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address payable", - "name": "recipient", - "type": "address" - } - ], - "name": "sweep", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "allSourcePaths": { - "0": "/home/piotr/.brownie/packages/OpenZeppelin/openzeppelin-contracts-upgradeable@4.5.0/contracts/access/AccessControlUpgradeable.sol", - "1": "/home/piotr/.brownie/packages/OpenZeppelin/openzeppelin-contracts-upgradeable@4.5.0/contracts/access/IAccessControlUpgradeable.sol", - "2": "/home/piotr/.brownie/packages/OpenZeppelin/openzeppelin-contracts-upgradeable@4.5.0/contracts/proxy/utils/Initializable.sol", - "30": "contracts/matic/SubscriptionManager.sol", - "4": "/home/piotr/.brownie/packages/OpenZeppelin/openzeppelin-contracts-upgradeable@4.5.0/contracts/utils/ContextUpgradeable.sol", - "6": "/home/piotr/.brownie/packages/OpenZeppelin/openzeppelin-contracts-upgradeable@4.5.0/contracts/utils/introspection/ERC165Upgradeable.sol", - "7": "/home/piotr/.brownie/packages/OpenZeppelin/openzeppelin-contracts-upgradeable@4.5.0/contracts/utils/introspection/IERC165Upgradeable.sol" - }, - "ast": { - "absolutePath": "contracts/matic/SubscriptionManager.sol", - "exportedSymbols": { - "AccessControlUpgradeable": [ - 15111 - ], - "AddressUpgradeable": [ - 15790 - ], - "ContextUpgradeable": [ - 15300 - ], - "ERC165Upgradeable": [ - 15547 - ], - "IAccessControlUpgradeable": [ - 15258 - ], - "IERC165Upgradeable": [ - 15802 - ], - "Initializable": [ - 15185 - ], - "StringsUpgradeable": [ - 15503 - ], - "SubscriptionManager": [ - 12850 - ] - }, - "id": 12851, - "license": "AGPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12486, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "47:23:30" - }, - { - "absolutePath": "/home/piotr/.brownie/packages/OpenZeppelin/openzeppelin-contracts-upgradeable@4.5.0/contracts/access/AccessControlUpgradeable.sol", - "file": "@openzeppelin-upgradeable/contracts/access/AccessControlUpgradeable.sol", - "id": 12487, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 12851, - "sourceUnit": 15112, - "src": "72:81:30", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/piotr/.brownie/packages/OpenZeppelin/openzeppelin-contracts-upgradeable@4.5.0/contracts/proxy/utils/Initializable.sol", - "file": "@openzeppelin-upgradeable/contracts/proxy/utils/Initializable.sol", - "id": 12488, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 12851, - "sourceUnit": 15186, - "src": "154:75:30", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 12489, - "name": "Initializable", - "nodeType": "IdentifierPath", - "referencedDeclaration": 15185, - "src": "263:13:30" - }, - "id": 12490, - "nodeType": "InheritanceSpecifier", - "src": "263:13:30" - }, - { - "baseName": { - "id": 12491, - "name": "AccessControlUpgradeable", - "nodeType": "IdentifierPath", - "referencedDeclaration": 15111, - "src": "278:24:30" - }, - "id": 12492, - "nodeType": "InheritanceSpecifier", - "src": "278:24:30" - } - ], - "canonicalName": "SubscriptionManager", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 12850, - "linearizedBaseContracts": [ - 12850, - 15111, - 15547, - 15802, - 15258, - 15300, - 15185 - ], - "name": "SubscriptionManager", - "nameLocation": "240:19:30", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "functionSelector": "58f70858", - "id": 12497, - "mutability": "constant", - "name": "SET_RATE_ROLE", - "nameLocation": "334:13:30", - "nodeType": "VariableDeclaration", - "scope": 12850, - "src": "310:87:30", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12493, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "310:7:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "506f77657220746f2073657420746865206665652072617465", - "id": 12495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "369:27:30", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_637ca263f44c0a7e4a3b057e26c82c5667c084aa950864a2916355c481f6a097", - "typeString": "literal_string \"Power to set the fee rate\"" - }, - "value": "Power to set the fee rate" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_637ca263f44c0a7e4a3b057e26c82c5667c084aa950864a2916355c481f6a097", - "typeString": "literal_string \"Power to set the fee rate\"" - } - ], - "id": 12494, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "359:9:30", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 12496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "359:38:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "e02023a1", - "id": 12502, - "mutability": "constant", - "name": "WITHDRAW_ROLE", - "nameLocation": "427:13:30", - "nodeType": "VariableDeclaration", - "scope": 12850, - "src": "403:110:30", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12498, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "403:7:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "506f77657220746f2077697468647261772066756e64732066726f6d20537562736372697074696f6e4d616e61676572", - "id": 12500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "462:50:30", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c1f0c13d12a4ca09aada5725e24c49160e8f198a4ca0d2bd4dafc9c5c12e6a35", - "typeString": "literal_string \"Power to withdraw funds from SubscriptionManager\"" - }, - "value": "Power to withdraw funds from SubscriptionManager" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c1f0c13d12a4ca09aada5725e24c49160e8f198a4ca0d2bd4dafc9c5c12e6a35", - "typeString": "literal_string \"Power to withdraw funds from SubscriptionManager\"" - } - ], - "id": 12499, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "452:9:30", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 12501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "452:61:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "canonicalName": "SubscriptionManager.Policy", - "id": 12513, - "members": [ - { - "constant": false, - "id": 12504, - "mutability": "mutable", - "name": "sponsor", - "nameLocation": "674:7:30", - "nodeType": "VariableDeclaration", - "scope": 12513, - "src": "658:23:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 12503, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "658:15:30", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12506, - "mutability": "mutable", - "name": "startTimestamp", - "nameLocation": "698:14:30", - "nodeType": "VariableDeclaration", - "scope": 12513, - "src": "691:21:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12505, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "691:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12508, - "mutability": "mutable", - "name": "endTimestamp", - "nameLocation": "729:12:30", - "nodeType": "VariableDeclaration", - "scope": 12513, - "src": "722:19:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12507, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "722:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12510, - "mutability": "mutable", - "name": "size", - "nameLocation": "758:4:30", - "nodeType": "VariableDeclaration", - "scope": 12513, - "src": "751:11:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 12509, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "751:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12512, - "mutability": "mutable", - "name": "owner", - "nameLocation": "849:5:30", - "nodeType": "VariableDeclaration", - "scope": 12513, - "src": "841:13:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12511, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "841:7:30", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "name": "Policy", - "nameLocation": "641:6:30", - "nodeType": "StructDefinition", - "scope": 12850, - "src": "634:227:30", - "visibility": "public" - }, - { - "anonymous": false, - "id": 12529, - "name": "PolicyCreated", - "nameLocation": "873:13:30", - "nodeType": "EventDefinition", - "parameters": { - "id": 12528, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12515, - "indexed": true, - "mutability": "mutable", - "name": "policyId", - "nameLocation": "912:8:30", - "nodeType": "VariableDeclaration", - "scope": 12529, - "src": "896:24:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - }, - "typeName": { - "id": 12514, - "name": "bytes16", - "nodeType": "ElementaryTypeName", - "src": "896:7:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12517, - "indexed": true, - "mutability": "mutable", - "name": "sponsor", - "nameLocation": "946:7:30", - "nodeType": "VariableDeclaration", - "scope": 12529, - "src": "930:23:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12516, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "930:7:30", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12519, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "979:5:30", - "nodeType": "VariableDeclaration", - "scope": 12529, - "src": "963:21:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "963:7:30", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12521, - "indexed": false, - "mutability": "mutable", - "name": "size", - "nameLocation": "1001:4:30", - "nodeType": "VariableDeclaration", - "scope": 12529, - "src": "994:11:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 12520, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "994:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12523, - "indexed": false, - "mutability": "mutable", - "name": "startTimestamp", - "nameLocation": "1022:14:30", - "nodeType": "VariableDeclaration", - "scope": 12529, - "src": "1015:21:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12522, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1015:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12525, - "indexed": false, - "mutability": "mutable", - "name": "endTimestamp", - "nameLocation": "1053:12:30", - "nodeType": "VariableDeclaration", - "scope": 12529, - "src": "1046:19:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12524, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1046:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12527, - "indexed": false, - "mutability": "mutable", - "name": "cost", - "nameLocation": "1083:4:30", - "nodeType": "VariableDeclaration", - "scope": 12529, - "src": "1075:12:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12526, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1075:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "886:207:30" - }, - "src": "867:227:30" - }, - { - "anonymous": false, - "id": 12535, - "name": "FeeRateUpdated", - "nameLocation": "1106:14:30", - "nodeType": "EventDefinition", - "parameters": { - "id": 12534, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12531, - "indexed": false, - "mutability": "mutable", - "name": "oldFeeRate", - "nameLocation": "1129:10:30", - "nodeType": "VariableDeclaration", - "scope": 12535, - "src": "1121:18:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12530, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1121:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12533, - "indexed": false, - "mutability": "mutable", - "name": "newFeeRate", - "nameLocation": "1149:10:30", - "nodeType": "VariableDeclaration", - "scope": 12535, - "src": "1141:18:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12532, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1141:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1120:40:30" - }, - "src": "1100:61:30" - }, - { - "constant": false, - "functionSelector": "978bbdb9", - "id": 12537, - "mutability": "mutable", - "name": "feeRate", - "nameLocation": "1227:7:30", - "nodeType": "VariableDeclaration", - "scope": 12850, - "src": "1212:22:30", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12536, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1212:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 12542, - "mutability": "mutable", - "name": "_policies", - "nameLocation": "1340:9:30", - "nodeType": "VariableDeclaration", - "scope": 12850, - "src": "1303:46:30", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Policy_$12513_storage_$", - "typeString": "mapping(bytes16 => struct SubscriptionManager.Policy)" - }, - "typeName": { - "id": 12541, - "keyType": { - "id": 12538, - "name": "bytes16", - "nodeType": "ElementaryTypeName", - "src": "1312:7:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - "nodeType": "Mapping", - "src": "1303:27:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Policy_$12513_storage_$", - "typeString": "mapping(bytes16 => struct SubscriptionManager.Policy)" - }, - "valueType": { - "id": 12540, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12539, - "name": "Policy", - "nodeType": "IdentifierPath", - "referencedDeclaration": 12513, - "src": "1323:6:30" - }, - "referencedDeclaration": 12513, - "src": "1323:6:30", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage_ptr", - "typeString": "struct SubscriptionManager.Policy" - } - } - }, - "visibility": "internal" - }, - { - "body": { - "id": 12571, - "nodeType": "Block", - "src": "1413:184:30", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 12550, - "name": "_feeRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12544, - "src": "1435:8:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12549, - "name": "_setFeeRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12805, - "src": "1423:11:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 12551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1423:21:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12552, - "nodeType": "ExpressionStatement", - "src": "1423:21:30" - }, - { - "expression": { - "arguments": [ - { - "id": 12554, - "name": "SET_RATE_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12497, - "src": "1465:13:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 12555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1480:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1480:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12553, - "name": "_setupRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15014, - "src": "1454:10:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" - } - }, - "id": 12557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1454:37:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12558, - "nodeType": "ExpressionStatement", - "src": "1454:37:30" - }, - { - "expression": { - "arguments": [ - { - "id": 12560, - "name": "WITHDRAW_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12502, - "src": "1512:13:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 12561, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1527:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1527:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12559, - "name": "_setupRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15014, - "src": "1501:10:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" - } - }, - "id": 12563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1501:37:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12564, - "nodeType": "ExpressionStatement", - "src": "1501:37:30" - }, - { - "expression": { - "arguments": [ - { - "id": 12566, - "name": "DEFAULT_ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14825, - "src": "1559:18:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 12567, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1579:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1579:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12565, - "name": "_setupRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15014, - "src": "1548:10:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" - } - }, - "id": 12569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1548:42:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12570, - "nodeType": "ExpressionStatement", - "src": "1548:42:30" - } - ] - }, - "functionSelector": "fe4b84df", - "id": 12572, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 12547, - "kind": "modifierInvocation", - "modifierName": { - "id": 12546, - "name": "initializer", - "nodeType": "IdentifierPath", - "referencedDeclaration": 15159, - "src": "1401:11:30" - }, - "nodeType": "ModifierInvocation", - "src": "1401:11:30" - } - ], - "name": "initialize", - "nameLocation": "1365:10:30", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12545, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12544, - "mutability": "mutable", - "name": "_feeRate", - "nameLocation": "1384:8:30", - "nodeType": "VariableDeclaration", - "scope": 12572, - "src": "1376:16:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12543, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1376:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1375:18:30" - }, - "returnParameters": { - "id": 12548, - "nodeType": "ParameterList", - "parameters": [], - "src": "1413:0:30" - }, - "scope": 12850, - "src": "1356:241:30", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 12609, - "nodeType": "Block", - "src": "1745:213:30", - "statements": [ - { - "assignments": [ - 12584 - ], - "declarations": [ - { - "constant": false, - "id": 12584, - "mutability": "mutable", - "name": "duration", - "nameLocation": "1762:8:30", - "nodeType": "VariableDeclaration", - "scope": 12609, - "src": "1755:15:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12583, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1755:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 12588, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 12587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12585, - "name": "_endTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12578, - "src": "1773:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 12586, - "name": "_startTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12576, - "src": "1789:15:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1773:31:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1755:49:30" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 12592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12590, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12584, - "src": "1822:8:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 12591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1833:1:30", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1822:12:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e76616c69642074696d657374616d7073", - "id": 12593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1836:20:30", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d13ce2008fdeb7fc794b4b53783363d1e4b47fe95f36462fc20fc0c6be1fe852", - "typeString": "literal_string \"Invalid timestamps\"" - }, - "value": "Invalid timestamps" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d13ce2008fdeb7fc794b4b53783363d1e4b47fe95f36462fc20fc0c6be1fe852", - "typeString": "literal_string \"Invalid timestamps\"" - } - ], - "id": 12589, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1814:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1814:43:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12595, - "nodeType": "ExpressionStatement", - "src": "1814:43:30" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 12599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12597, - "name": "_size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12574, - "src": "1875:5:30", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 12598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1883:1:30", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1875:9:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e76616c696420706f6c6963792073697a65", - "id": 12600, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1886:21:30", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e48c2af64a0e06871ea64bc338dd6248f31a3041f2eaf662911b9d84755db436", - "typeString": "literal_string \"Invalid policy size\"" - }, - "value": "Invalid policy size" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e48c2af64a0e06871ea64bc338dd6248f31a3041f2eaf662911b9d84755db436", - "typeString": "literal_string \"Invalid policy size\"" - } - ], - "id": 12596, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1867:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1867:41:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12602, - "nodeType": "ExpressionStatement", - "src": "1867:41:30" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12603, - "name": "feeRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12537, - "src": "1925:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 12604, - "name": "_size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12574, - "src": "1935:5:30", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "1925:15:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 12606, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12584, - "src": "1943:8:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1925:26:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 12582, - "id": 12608, - "nodeType": "Return", - "src": "1918:33:30" - } - ] - }, - "functionSelector": "58db2a72", - "id": 12610, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPolicyCost", - "nameLocation": "1612:13:30", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12579, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12574, - "mutability": "mutable", - "name": "_size", - "nameLocation": "1642:5:30", - "nodeType": "VariableDeclaration", - "scope": 12610, - "src": "1635:12:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 12573, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1635:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12576, - "mutability": "mutable", - "name": "_startTimestamp", - "nameLocation": "1664:15:30", - "nodeType": "VariableDeclaration", - "scope": 12610, - "src": "1657:22:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12575, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1657:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12578, - "mutability": "mutable", - "name": "_endTimestamp", - "nameLocation": "1696:13:30", - "nodeType": "VariableDeclaration", - "scope": 12610, - "src": "1689:20:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12577, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1689:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "1625:90:30" - }, - "returnParameters": { - "id": 12582, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12581, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 12610, - "src": "1737:7:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12580, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1737:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1736:9:30" - }, - "scope": 12850, - "src": "1603:355:30", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 12655, - "nodeType": "Block", - "src": "2162:377:30", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 12626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12624, - "name": "_startTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12618, - "src": "2193:15:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 12625, - "name": "_endTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12620, - "src": "2211:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "2193:31:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 12627, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "2228:5:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 12628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "2228:15:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 12629, - "name": "_endTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12620, - "src": "2246:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "2228:31:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2193:66:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e76616c69642074696d657374616d7073", - "id": 12632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2273:20:30", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d13ce2008fdeb7fc794b4b53783363d1e4b47fe95f36462fc20fc0c6be1fe852", - "typeString": "literal_string \"Invalid timestamps\"" - }, - "value": "Invalid timestamps" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d13ce2008fdeb7fc794b4b53783363d1e4b47fe95f36462fc20fc0c6be1fe852", - "typeString": "literal_string \"Invalid timestamps\"" - } - ], - "id": 12623, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2172:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2172:131:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12634, - "nodeType": "ExpressionStatement", - "src": "2172:131:30" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 12636, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2334:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "src": "2334:9:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "id": 12639, - "name": "_size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12616, - "src": "2361:5:30", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "id": 12640, - "name": "_startTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12618, - "src": "2368:15:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 12641, - "name": "_endTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12620, - "src": "2385:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 12638, - "name": "getPolicyCost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12610, - "src": "2347:13:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint16_$_t_uint32_$_t_uint32_$returns$_t_uint256_$", - "typeString": "function (uint16,uint32,uint32) view returns (uint256)" - } - }, - "id": 12642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2347:52:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2334:65:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e76616c696420706f6c69637920636f7374", - "id": 12644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2413:21:30", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0fa49a49f72cb6cd60abea125eafdb07a7b52059bdbf119d2ea22c3391585b5a", - "typeString": "literal_string \"Invalid policy cost\"" - }, - "value": "Invalid policy cost" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0fa49a49f72cb6cd60abea125eafdb07a7b52059bdbf119d2ea22c3391585b5a", - "typeString": "literal_string \"Invalid policy cost\"" - } - ], - "id": 12635, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2313:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2313:131:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12646, - "nodeType": "ExpressionStatement", - "src": "2313:131:30" - }, - { - "expression": { - "arguments": [ - { - "id": 12648, - "name": "_policyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12612, - "src": "2469:9:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - { - "id": 12649, - "name": "_policyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12614, - "src": "2480:12:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12650, - "name": "_size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12616, - "src": "2494:5:30", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "id": 12651, - "name": "_startTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12618, - "src": "2501:15:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 12652, - "name": "_endTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12620, - "src": "2518:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 12647, - "name": "_createPolicy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12757, - "src": "2455:13:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes16_$_t_address_$_t_uint16_$_t_uint32_$_t_uint32_$returns$_t_struct$_Policy_$12513_storage_ptr_$", - "typeString": "function (bytes16,address,uint16,uint32,uint32) returns (struct SubscriptionManager.Policy storage pointer)" - } - }, - "id": 12653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2455:77:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage_ptr", - "typeString": "struct SubscriptionManager.Policy storage pointer" - } - }, - "id": 12654, - "nodeType": "ExpressionStatement", - "src": "2455:77:30" - } - ] - }, - "functionSelector": "4f004041", - "id": 12656, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createPolicy", - "nameLocation": "1973:12:30", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12621, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12612, - "mutability": "mutable", - "name": "_policyId", - "nameLocation": "2003:9:30", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "1995:17:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - }, - "typeName": { - "id": 12611, - "name": "bytes16", - "nodeType": "ElementaryTypeName", - "src": "1995:7:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12614, - "mutability": "mutable", - "name": "_policyOwner", - "nameLocation": "2030:12:30", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "2022:20:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12613, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2022:7:30", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12616, - "mutability": "mutable", - "name": "_size", - "nameLocation": "2059:5:30", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "2052:12:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 12615, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2052:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12618, - "mutability": "mutable", - "name": "_startTimestamp", - "nameLocation": "2081:15:30", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "2074:22:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12617, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2074:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12620, - "mutability": "mutable", - "name": "_endTimestamp", - "nameLocation": "2113:13:30", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "2106:20:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12619, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2106:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "1985:147:30" - }, - "returnParameters": { - "id": 12622, - "nodeType": "ParameterList", - "parameters": [], - "src": "2162:0:30" - }, - "scope": 12850, - "src": "1964:575:30", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 12756, - "nodeType": "Block", - "src": "3113:712:30", - "statements": [ - { - "expression": { - "id": 12677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 12673, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12671, - "src": "3123:6:30", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage_ptr", - "typeString": "struct SubscriptionManager.Policy storage pointer" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "id": 12674, - "name": "_policies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12542, - "src": "3132:9:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Policy_$12513_storage_$", - "typeString": "mapping(bytes16 => struct SubscriptionManager.Policy storage ref)" - } - }, - "id": 12676, - "indexExpression": { - "id": 12675, - "name": "_policyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12659, - "src": "3142:9:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3132:20:30", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage", - "typeString": "struct SubscriptionManager.Policy storage ref" - } - }, - "src": "3123:29:30", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage_ptr", - "typeString": "struct SubscriptionManager.Policy storage pointer" - } - }, - "id": 12678, - "nodeType": "ExpressionStatement", - "src": "3123:29:30" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 12680, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12671, - "src": "3183:6:30", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage_ptr", - "typeString": "struct SubscriptionManager.Policy storage pointer" - } - }, - "id": 12681, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "endTimestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 12508, - "src": "3183:19:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 12682, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "3205:5:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 12683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "3205:15:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3183:37:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "506f6c6963792069732063757272656e746c7920616374697665", - "id": 12685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3234:28:30", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3339add1fc1c1d8c133d098db0d1021bb8c3f2996c9977a091db0ae1e4089b0", - "typeString": "literal_string \"Policy is currently active\"" - }, - "value": "Policy is currently active" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3339add1fc1c1d8c133d098db0d1021bb8c3f2996c9977a091db0ae1e4089b0", - "typeString": "literal_string \"Policy is currently active\"" - } - ], - "id": 12679, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3162:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3162:110:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12687, - "nodeType": "ExpressionStatement", - "src": "3162:110:30" - }, - { - "expression": { - "id": 12696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 12688, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12671, - "src": "3283:6:30", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage_ptr", - "typeString": "struct SubscriptionManager.Policy storage pointer" - } - }, - "id": 12690, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "sponsor", - "nodeType": "MemberAccess", - "referencedDeclaration": 12504, - "src": "3283:14:30", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 12693, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3308:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "3308:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3300:8:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 12691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3300:8:30", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 12695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3300:19:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3283:36:30", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 12697, - "nodeType": "ExpressionStatement", - "src": "3283:36:30" - }, - { - "expression": { - "id": 12702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 12698, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12671, - "src": "3329:6:30", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage_ptr", - "typeString": "struct SubscriptionManager.Policy storage pointer" - } - }, - "id": 12700, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "startTimestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 12506, - "src": "3329:21:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 12701, - "name": "_startTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12665, - "src": "3353:15:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "3329:39:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 12703, - "nodeType": "ExpressionStatement", - "src": "3329:39:30" - }, - { - "expression": { - "id": 12708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 12704, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12671, - "src": "3378:6:30", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage_ptr", - "typeString": "struct SubscriptionManager.Policy storage pointer" - } - }, - "id": 12706, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "endTimestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 12508, - "src": "3378:19:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 12707, - "name": "_endTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12667, - "src": "3400:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "3378:35:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 12709, - "nodeType": "ExpressionStatement", - "src": "3378:35:30" - }, - { - "expression": { - "id": 12714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 12710, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12671, - "src": "3423:6:30", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage_ptr", - "typeString": "struct SubscriptionManager.Policy storage pointer" - } - }, - "id": 12712, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "size", - "nodeType": "MemberAccess", - "referencedDeclaration": 12510, - "src": "3423:11:30", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 12713, - "name": "_size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12663, - "src": "3437:5:30", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "3423:19:30", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 12715, - "nodeType": "ExpressionStatement", - "src": "3423:19:30" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 12719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12716, - "name": "_policyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12661, - "src": "3457:12:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 12717, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3473:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "3473:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3457:26:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 12725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12720, - "name": "_policyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12661, - "src": "3487:12:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 12723, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3511:1:30", - "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": 12722, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3503:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12721, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3503:7:30", - "typeDescriptions": {} - } - }, - "id": 12724, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3503:10:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3487:26:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3457:56:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 12734, - "nodeType": "IfStatement", - "src": "3453:114:30", - "trueBody": { - "id": 12733, - "nodeType": "Block", - "src": "3515:52:30", - "statements": [ - { - "expression": { - "id": 12731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 12727, - "name": "policy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12671, - "src": "3529:6:30", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage_ptr", - "typeString": "struct SubscriptionManager.Policy storage pointer" - } - }, - "id": 12729, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 12512, - "src": "3529:12:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 12730, - "name": "_policyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12661, - "src": "3544:12:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3529:27:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 12732, - "nodeType": "ExpressionStatement", - "src": "3529:27:30" - } - ] - } - }, - { - "eventCall": { - "arguments": [ - { - "id": 12736, - "name": "_policyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12659, - "src": "3609:9:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - { - "expression": { - "id": 12737, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3632:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "3632:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 12744, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12739, - "name": "_policyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12661, - "src": "3656:12:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 12742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3680:1:30", - "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": 12741, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3672:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12740, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3672:7:30", - "typeDescriptions": {} - } - }, - "id": 12743, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3672:10:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3656:26:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 12747, - "name": "_policyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12661, - "src": "3698:12:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 12748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "3656:54:30", - "trueExpression": { - "expression": { - "id": 12745, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3685:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "3685:10:30", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12749, - "name": "_size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12663, - "src": "3724:5:30", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "id": 12750, - "name": "_startTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12665, - "src": "3743:15:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 12751, - "name": "_endTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12667, - "src": "3772:13:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "expression": { - "id": 12752, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3799:3:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "src": "3799:9:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12735, - "name": "PolicyCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12529, - "src": "3582:13:30", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_address_$_t_address_$_t_uint16_$_t_uint32_$_t_uint32_$_t_uint256_$returns$__$", - "typeString": "function (bytes16,address,address,uint16,uint32,uint32,uint256)" - } - }, - "id": 12754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3582:236:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12755, - "nodeType": "EmitStatement", - "src": "3577:241:30" - } - ] - }, - "documentation": { - "id": 12657, - "nodeType": "StructuredDocumentation", - "src": "2545:340:30", - "text": " @notice Create policy\n @param _policyId Policy id\n @param _policyOwner Policy owner. Zero address means sender is owner\n @param _size Number of nodes involved in the policy\n @param _startTimestamp Start timestamp of the policy in seconds\n @param _endTimestamp End timestamp of the policy in seconds" - }, - "id": 12757, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_createPolicy", - "nameLocation": "2899:13:30", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12668, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12659, - "mutability": "mutable", - "name": "_policyId", - "nameLocation": "2930:9:30", - "nodeType": "VariableDeclaration", - "scope": 12757, - "src": "2922:17:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - }, - "typeName": { - "id": 12658, - "name": "bytes16", - "nodeType": "ElementaryTypeName", - "src": "2922:7:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12661, - "mutability": "mutable", - "name": "_policyOwner", - "nameLocation": "2957:12:30", - "nodeType": "VariableDeclaration", - "scope": 12757, - "src": "2949:20:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12660, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2949:7:30", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12663, - "mutability": "mutable", - "name": "_size", - "nameLocation": "2986:5:30", - "nodeType": "VariableDeclaration", - "scope": 12757, - "src": "2979:12:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 12662, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2979:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12665, - "mutability": "mutable", - "name": "_startTimestamp", - "nameLocation": "3008:15:30", - "nodeType": "VariableDeclaration", - "scope": 12757, - "src": "3001:22:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12664, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3001:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12667, - "mutability": "mutable", - "name": "_endTimestamp", - "nameLocation": "3040:13:30", - "nodeType": "VariableDeclaration", - "scope": 12757, - "src": "3033:20:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12666, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3033:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "2912:147:30" - }, - "returnParameters": { - "id": 12672, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12671, - "mutability": "mutable", - "name": "policy", - "nameLocation": "3101:6:30", - "nodeType": "VariableDeclaration", - "scope": 12757, - "src": "3086:21:30", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage_ptr", - "typeString": "struct SubscriptionManager.Policy" - }, - "typeName": { - "id": 12670, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12669, - "name": "Policy", - "nodeType": "IdentifierPath", - "referencedDeclaration": 12513, - "src": "3086:6:30" - }, - "referencedDeclaration": 12513, - "src": "3086:6:30", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage_ptr", - "typeString": "struct SubscriptionManager.Policy" - } - }, - "visibility": "internal" - } - ], - "src": "3085:23:30" - }, - "scope": 12850, - "src": "2890:935:30", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12769, - "nodeType": "Block", - "src": "3903:44:30", - "statements": [ - { - "expression": { - "baseExpression": { - "id": 12765, - "name": "_policies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12542, - "src": "3920:9:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Policy_$12513_storage_$", - "typeString": "mapping(bytes16 => struct SubscriptionManager.Policy storage ref)" - } - }, - "id": 12767, - "indexExpression": { - "id": 12766, - "name": "_policyID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12759, - "src": "3930:9:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3920:20:30", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage", - "typeString": "struct SubscriptionManager.Policy storage ref" - } - }, - "functionReturnParameters": 12764, - "id": 12768, - "nodeType": "Return", - "src": "3913:27:30" - } - ] - }, - "functionSelector": "2c815161", - "id": 12770, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPolicy", - "nameLocation": "3840:9:30", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12759, - "mutability": "mutable", - "name": "_policyID", - "nameLocation": "3858:9:30", - "nodeType": "VariableDeclaration", - "scope": 12770, - "src": "3850:17:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - }, - "typeName": { - "id": 12758, - "name": "bytes16", - "nodeType": "ElementaryTypeName", - "src": "3850:7:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - "visibility": "internal" - } - ], - "src": "3849:19:30" - }, - "returnParameters": { - "id": 12764, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12763, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 12770, - "src": "3889:13:30", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_memory_ptr", - "typeString": "struct SubscriptionManager.Policy" - }, - "typeName": { - "id": 12762, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12761, - "name": "Policy", - "nodeType": "IdentifierPath", - "referencedDeclaration": 12513, - "src": "3889:6:30" - }, - "referencedDeclaration": 12513, - "src": "3889:6:30", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage_ptr", - "typeString": "struct SubscriptionManager.Policy" - } - }, - "visibility": "internal" - } - ], - "src": "3888:15:30" - }, - "scope": 12850, - "src": "3831:116:30", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 12785, - "nodeType": "Block", - "src": "4021:75:30", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 12777, - "name": "_policies", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12542, - "src": "4038:9:30", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Policy_$12513_storage_$", - "typeString": "mapping(bytes16 => struct SubscriptionManager.Policy storage ref)" - } - }, - "id": 12779, - "indexExpression": { - "id": 12778, - "name": "_policyID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12772, - "src": "4048:9:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4038:20:30", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Policy_$12513_storage", - "typeString": "struct SubscriptionManager.Policy storage ref" - } - }, - "id": 12780, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "endTimestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 12508, - "src": "4038:33:30", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "id": 12781, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "4074:5:30", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 12782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "4074:15:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4038:51:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 12776, - "id": 12784, - "nodeType": "Return", - "src": "4031:58:30" - } - ] - }, - "functionSelector": "7ef3c6d5", - "id": 12786, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPolicyActive", - "nameLocation": "3962:14:30", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12772, - "mutability": "mutable", - "name": "_policyID", - "nameLocation": "3985:9:30", - "nodeType": "VariableDeclaration", - "scope": 12786, - "src": "3977:17:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - }, - "typeName": { - "id": 12771, - "name": "bytes16", - "nodeType": "ElementaryTypeName", - "src": "3977:7:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - "visibility": "internal" - } - ], - "src": "3976:19:30" - }, - "returnParameters": { - "id": 12776, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12775, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 12786, - "src": "4016:4:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12774, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4016:4:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "4015:6:30" - }, - "scope": 12850, - "src": "3953:143:30", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 12804, - "nodeType": "Block", - "src": "4148:112:30", - "statements": [ - { - "assignments": [ - 12792 - ], - "declarations": [ - { - "constant": false, - "id": 12792, - "mutability": "mutable", - "name": "oldFee", - "nameLocation": "4166:6:30", - "nodeType": "VariableDeclaration", - "scope": 12804, - "src": "4158:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12791, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4158:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 12794, - "initialValue": { - "id": 12793, - "name": "feeRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12537, - "src": "4175:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4158:24:30" - }, - { - "expression": { - "id": 12797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 12795, - "name": "feeRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12537, - "src": "4192:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 12796, - "name": "newFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12788, - "src": "4202:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4192:16:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12798, - "nodeType": "ExpressionStatement", - "src": "4192:16:30" - }, - { - "eventCall": { - "arguments": [ - { - "id": 12800, - "name": "oldFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12792, - "src": "4238:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 12801, - "name": "newFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12788, - "src": "4246:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12799, - "name": "FeeRateUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12535, - "src": "4223:14:30", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 12802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4223:30:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12803, - "nodeType": "EmitStatement", - "src": "4218:35:30" - } - ] - }, - "id": 12805, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setFeeRate", - "nameLocation": "4111:11:30", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12789, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12788, - "mutability": "mutable", - "name": "newFee", - "nameLocation": "4131:6:30", - "nodeType": "VariableDeclaration", - "scope": 12805, - "src": "4123:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12787, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4123:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4122:16:30" - }, - "returnParameters": { - "id": 12790, - "nodeType": "ParameterList", - "parameters": [], - "src": "4148:0:30" - }, - "scope": 12850, - "src": "4102:158:30", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12817, - "nodeType": "Block", - "src": "4343:44:30", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 12814, - "name": "_ratePerSecond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12807, - "src": "4365:14:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12813, - "name": "_setFeeRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12805, - "src": "4353:11:30", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 12815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4353:27:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12816, - "nodeType": "ExpressionStatement", - "src": "4353:27:30" - } - ] - }, - "functionSelector": "45596e2e", - "id": 12818, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 12810, - "name": "SET_RATE_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12497, - "src": "4319:13:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 12811, - "kind": "modifierInvocation", - "modifierName": { - "id": 12809, - "name": "onlyRole", - "nodeType": "IdentifierPath", - "referencedDeclaration": 14838, - "src": "4310:8:30" - }, - "nodeType": "ModifierInvocation", - "src": "4310:23:30" - } - ], - "name": "setFeeRate", - "nameLocation": "4275:10:30", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12808, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12807, - "mutability": "mutable", - "name": "_ratePerSecond", - "nameLocation": "4294:14:30", - "nodeType": "VariableDeclaration", - "scope": 12818, - "src": "4286:22:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12806, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4286:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4285:24:30" - }, - "returnParameters": { - "id": 12812, - "nodeType": "ParameterList", - "parameters": [], - "src": "4343:0:30" - }, - "scope": 12850, - "src": "4266:121:30", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 12848, - "nodeType": "Block", - "src": "4468:158:30", - "statements": [ - { - "assignments": [ - 12827 - ], - "declarations": [ - { - "constant": false, - "id": 12827, - "mutability": "mutable", - "name": "balance", - "nameLocation": "4486:7:30", - "nodeType": "VariableDeclaration", - "scope": 12848, - "src": "4478:15:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12826, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4478:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 12833, - "initialValue": { - "expression": { - "arguments": [ - { - "id": 12830, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "4504:4:30", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SubscriptionManager_$12850", - "typeString": "contract SubscriptionManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SubscriptionManager_$12850", - "typeString": "contract SubscriptionManager" - } - ], - "id": 12829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4496:7:30", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12828, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4496:7:30", - "typeDescriptions": {} - } - }, - "id": 12831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4496:13:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 12832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "4496:21:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4478:39:30" - }, - { - "assignments": [ - 12835, - null - ], - "declarations": [ - { - "constant": false, - "id": 12835, - "mutability": "mutable", - "name": "sent", - "nameLocation": "4533:4:30", - "nodeType": "VariableDeclaration", - "scope": 12848, - "src": "4528:9:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12834, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4528:4:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - null - ], - "id": 12842, - "initialValue": { - "arguments": [ - { - "hexValue": "", - "id": 12840, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4574:2:30", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "expression": { - "id": 12836, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12820, - "src": "4543:9:30", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 12837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "src": "4543:14:30", - "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": 12839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 12838, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12827, - "src": "4565:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "4543:30:30", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 12841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:34:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4527:50:30" - }, - { - "expression": { - "arguments": [ - { - "id": 12844, - "name": "sent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12835, - "src": "4595:4:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4661696c6564207472616e73666572", - "id": 12845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4601:17:30", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c2fbaba3bb1d2019934c8227a4cef7d3dc308257c2e14c94ee64b4d42e272196", - "typeString": "literal_string \"Failed transfer\"" - }, - "value": "Failed transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c2fbaba3bb1d2019934c8227a4cef7d3dc308257c2e14c94ee64b4d42e272196", - "typeString": "literal_string \"Failed transfer\"" - } - ], - "id": 12843, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4587:7:30", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4587:32:30", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12847, - "nodeType": "ExpressionStatement", - "src": "4587:32:30" - } - ] - }, - "functionSelector": "01681a62", - "id": 12849, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 12823, - "name": "WITHDRAW_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12502, - "src": "4444:13:30", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 12824, - "kind": "modifierInvocation", - "modifierName": { - "id": 12822, - "name": "onlyRole", - "nodeType": "IdentifierPath", - "referencedDeclaration": 14838, - "src": "4435:8:30" - }, - "nodeType": "ModifierInvocation", - "src": "4435:23:30" - } - ], - "name": "sweep", - "nameLocation": "4402:5:30", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12821, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12820, - "mutability": "mutable", - "name": "recipient", - "nameLocation": "4424:9:30", - "nodeType": "VariableDeclaration", - "scope": 12849, - "src": "4408:25:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 12819, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4408:15:30", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "4407:27:30" - }, - "returnParameters": { - "id": 12825, - "nodeType": "ParameterList", - "parameters": [], - "src": "4468:0:30" - }, - "scope": 12850, - "src": "4393:233:30", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 12851, - "src": "231:4398:30", - "usedErrors": [] - } - ], - "src": "47:4583:30" - }, - "bytecode": "608060405234801561001057600080fd5b506111bc806100206000396000f3fe6080604052600436106100fe5760003560e01c806358db2a7211610095578063978bbdb911610064578063978bbdb9146103e0578063a217fddf146103f6578063d547741f1461040b578063e02023a11461042b578063fe4b84df1461045f57600080fd5b806358db2a721461032557806358f70858146103455780637ef3c6d51461037957806391d14854146103c057600080fd5b80632f2ff15d116100d15780632f2ff15d146102b257806336568abe146102d257806345596e2e146102f25780634f0040411461031257600080fd5b806301681a621461010357806301ffc9a714610125578063248a9ca31461015a5780632c81516114610198575b600080fd5b34801561010f57600080fd5b5061012361011e366004610e65565b61047f565b005b34801561013157600080fd5b50610145610140366004610e82565b61054a565b60405190151581526020015b60405180910390f35b34801561016657600080fd5b5061018a610175366004610eac565b60009081526065602052604090206001015490565b604051908152602001610151565b3480156101a457600080fd5b506102576101b3366004610ee2565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506001600160801b031916600090815260986020908152604091829020825160a08101845281546001600160a01b038082168352600160a01b820463ffffffff90811695840195909552600160c01b820490941694820194909452600160e01b90930461ffff1660608401526001015416608082015290565b604051610151919081516001600160a01b03908116825260208084015163ffffffff908116918401919091526040808501519091169083015260608084015161ffff1690830152608092830151169181019190915260a00190565b3480156102be57600080fd5b506101236102cd366004610efd565b610581565b3480156102de57600080fd5b506101236102ed366004610efd565b6105ac565b3480156102fe57600080fd5b5061012361030d366004610eac565b61062a565b610123610320366004610f53565b61065e565b34801561033157600080fd5b5061018a610340366004610fba565b610723565b34801561035157600080fd5b5061018a7f637ca263f44c0a7e4a3b057e26c82c5667c084aa950864a2916355c481f6a09781565b34801561038557600080fd5b50610145610394366004610ee2565b6001600160801b03191660009081526098602052604090205442600160c01b90910463ffffffff161190565b3480156103cc57600080fd5b506101456103db366004610efd565b6107f3565b3480156103ec57600080fd5b5061018a60975481565b34801561040257600080fd5b5061018a600081565b34801561041757600080fd5b50610123610426366004610efd565b61081e565b34801561043757600080fd5b5061018a7fc1f0c13d12a4ca09aada5725e24c49160e8f198a4ca0d2bd4dafc9c5c12e6a3581565b34801561046b57600080fd5b5061012361047a366004610eac565b610844565b7fc1f0c13d12a4ca09aada5725e24c49160e8f198a4ca0d2bd4dafc9c5c12e6a356104aa8133610965565b60405147906000906001600160a01b0385169083908381818185875af1925050503d80600081146104f7576040519150601f19603f3d011682016040523d82523d6000602084013e6104fc565b606091505b50509050806105445760405162461bcd60e51b815260206004820152600f60248201526e2330b4b632b2103a3930b739b332b960891b60448201526064015b60405180910390fd5b50505050565b60006001600160e01b03198216637965db0b60e01b148061057b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008281526065602052604090206001015461059d8133610965565b6105a783836109c9565b505050565b6001600160a01b038116331461061c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161053b565b6106268282610a4f565b5050565b7f637ca263f44c0a7e4a3b057e26c82c5667c084aa950864a2916355c481f6a0976106558133610965565b61062682610ab6565b8063ffffffff168263ffffffff1610801561067e57508063ffffffff1642105b6106bf5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642074696d657374616d707360701b604482015260640161053b565b6106ca838383610723565b341461070e5760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081c1bdb1a58de4818dbdcdd606a1b604482015260640161053b565b61071b8585858585610afb565b505050505050565b6000806107308484611013565b905060008163ffffffff161161077d5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642074696d657374616d707360701b604482015260640161053b565b60008561ffff16116107c75760405162461bcd60e51b8152602060048201526013602482015272496e76616c696420706f6c6963792073697a6560681b604482015260640161053b565b8063ffffffff168561ffff166097546107e09190611038565b6107ea9190611038565b95945050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008281526065602052604090206001015461083a8133610965565b6105a78383610a4f565b600054610100900460ff1661085f5760005460ff1615610863565b303b155b6108c65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161053b565b600054610100900460ff161580156108e8576000805461ffff19166101011790555b6108f182610ab6565b61091b7f637ca263f44c0a7e4a3b057e26c82c5667c084aa950864a2916355c481f6a09733610ca0565b6109457fc1f0c13d12a4ca09aada5725e24c49160e8f198a4ca0d2bd4dafc9c5c12e6a3533610ca0565b610950600033610ca0565b8015610626576000805461ff00191690555050565b61096f82826107f3565b61062657610987816001600160a01b03166014610caa565b610992836020610caa565b6040516020016109a3929190611083565b60408051601f198184030181529082905262461bcd60e51b825261053b916004016110f8565b6109d382826107f3565b6106265760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610a0b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610a5982826107f3565b156106265760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b609780549082905560408051828152602081018490527f14914da2bf76024616fbe1859783fcd4dbddcb179b1f3a854949fbf920dcb957910160405180910390a15050565b6001600160801b031985166000908152609860205260409020805442600160c01b90910463ffffffff1610610b725760405162461bcd60e51b815260206004820152601a60248201527f506f6c6963792069732063757272656e746c7920616374697665000000000000604482015260640161053b565b805461ffff8516600160e01b0261ffff60e01b1963ffffffff858116600160c01b029190911665ffffffffffff60c01b19918716600160a01b0263ffffffff60a01b19339081166001600160c01b0319909616959095171791909116171782556001600160a01b03861614801590610bf257506001600160a01b03851615155b15610c15576001810180546001600160a01b0319166001600160a01b0387161790555b6001600160a01b03851615610c2a5784610c2c565b335b6040805161ffff8716815263ffffffff868116602083015285168183015234606082015290516001600160a01b03929092169133916001600160801b03198a16917f3e7e513ddaf550a2b9b8c400d5a2428f924d4aae6d8de14c1e2c42e8431fca159181900360800190a495945050505050565b61062682826109c9565b60606000610cb9836002611038565b610cc490600261112b565b67ffffffffffffffff811115610cdc57610cdc611143565b6040519080825280601f01601f191660200182016040528015610d06576020820181803683370190505b509050600360fc1b81600081518110610d2157610d21611159565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610d5057610d50611159565b60200101906001600160f81b031916908160001a9053506000610d74846002611038565b610d7f90600161112b565b90505b6001811115610df7576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610db357610db3611159565b1a60f81b828281518110610dc957610dc9611159565b60200101906001600160f81b031916908160001a90535060049490941c93610df08161116f565b9050610d82565b508315610e465760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161053b565b9392505050565b6001600160a01b0381168114610e6257600080fd5b50565b600060208284031215610e7757600080fd5b8135610e4681610e4d565b600060208284031215610e9457600080fd5b81356001600160e01b031981168114610e4657600080fd5b600060208284031215610ebe57600080fd5b5035919050565b80356001600160801b031981168114610edd57600080fd5b919050565b600060208284031215610ef457600080fd5b610e4682610ec5565b60008060408385031215610f1057600080fd5b823591506020830135610f2281610e4d565b809150509250929050565b803561ffff81168114610edd57600080fd5b803563ffffffff81168114610edd57600080fd5b600080600080600060a08688031215610f6b57600080fd5b610f7486610ec5565b94506020860135610f8481610e4d565b9350610f9260408701610f2d565b9250610fa060608701610f3f565b9150610fae60808701610f3f565b90509295509295909350565b600080600060608486031215610fcf57600080fd5b610fd884610f2d565b9250610fe660208501610f3f565b9150610ff460408501610f3f565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8381169083168181101561103057611030610ffd565b039392505050565b600081600019048311821515161561105257611052610ffd565b500290565b60005b8381101561107257818101518382015260200161105a565b838111156105445750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516110bb816017850160208801611057565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516110ec816028840160208801611057565b01602801949350505050565b6020815260008251806020840152611117816040850160208701611057565b601f01601f19169190910160400192915050565b6000821982111561113e5761113e610ffd565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60008161117e5761117e610ffd565b50600019019056fea26469706673582212207579dc0a825776e3c879b178544a69dd8110090a91fe12ab18231504b8be3ae964736f6c634300080c0033", - "bytecodeSha1": "9f5f8ed36f38b50e397785df52a4d99462b84bc8", - "compiler": { - "evm_version": "istanbul", - "optimizer": { - "enabled": true, - "runs": 200 - }, - "version": "0.8.12+commit.f00d7308" - }, - "contractName": "SubscriptionManager", - "coverageMap": { - "branches": { - "0": { - "AccessControlUpgradeable._checkRole": { - "51": [ - 3731, - 3753, - false - ] - }, - "AccessControlUpgradeable._grantRole": { - "52": [ - 7274, - 7296, - false - ] - }, - "AccessControlUpgradeable._revokeRole": { - "53": [ - 7632, - 7654, - false - ] - }, - "AccessControlUpgradeable.renounceRole": { - "50": [ - 5829, - 5852, - true - ] - } - }, - "1": {}, - "2": { - "SubscriptionManager.initialize": { - "54": [ - 2369, - 2382, - true - ], - "55": [ - 2369, - 2417, - true - ] - } - }, - "30": { - "SubscriptionManager._createPolicy": { - "46": [ - 3183, - 3220, - true - ], - "47": [ - 3457, - 3483, - false - ], - "48": [ - 3487, - 3513, - false - ], - "49": [ - 3656, - 3682, - true - ] - }, - "SubscriptionManager.createPolicy": { - "41": [ - 2193, - 2224, - false - ], - "42": [ - 2228, - 2259, - true - ], - "43": [ - 2334, - 2399, - true - ] - }, - "SubscriptionManager.getPolicyCost": { - "44": [ - 1822, - 1834, - true - ], - "45": [ - 1875, - 1884, - true - ] - }, - "SubscriptionManager.sweep": { - "40": [ - 4595, - 4599, - true - ] - } - }, - "4": {}, - "6": {}, - "7": {} - }, - "statements": { - "0": { - "AccessControlUpgradeable._checkRole": { - "24": [ - 3769, - 4140 - ] - }, - "AccessControlUpgradeable._grantRole": { - "25": [ - 7312, - 7348 - ], - "26": [ - 7362, - 7407 - ] - }, - "AccessControlUpgradeable._revokeRole": { - "27": [ - 7670, - 7707 - ], - "28": [ - 7721, - 7766 - ] - }, - "AccessControlUpgradeable._setupRole": { - "39": [ - 6665, - 6690 - ] - }, - "AccessControlUpgradeable.getRoleAdmin": { - "0": [ - 4431, - 4460 - ] - }, - "AccessControlUpgradeable.grantRole": { - "7": [ - 4830, - 4855 - ] - }, - "AccessControlUpgradeable.hasRole": { - "17": [ - 3319, - 3355 - ] - }, - "AccessControlUpgradeable.renounceRole": { - "8": [ - 5821, - 5904 - ], - "9": [ - 5915, - 5941 - ] - }, - "AccessControlUpgradeable.revokeRole": { - "18": [ - 5210, - 5236 - ] - }, - "AccessControlUpgradeable.supportsInterface": { - "5": [ - 3018, - 3123 - ] - } - }, - "1": {}, - "2": { - "Initializable._isConstructor": { - "19": [ - 3101, - 3153 - ] - } - }, - "30": { - "SubscriptionManager._createPolicy": { - "31": [ - 3123, - 3152 - ], - "32": [ - 3162, - 3272 - ], - "33": [ - 3283, - 3319 - ], - "34": [ - 3423, - 3442 - ], - "35": [ - 3329, - 3368 - ], - "36": [ - 3378, - 3413 - ], - "37": [ - 3529, - 3556 - ], - "38": [ - 3577, - 3818 - ] - }, - "SubscriptionManager._setFeeRate": { - "29": [ - 4192, - 4208 - ], - "30": [ - 4218, - 4253 - ] - }, - "SubscriptionManager.createPolicy": { - "11": [ - 2172, - 2303 - ], - "12": [ - 2313, - 2444 - ], - "13": [ - 2455, - 2532 - ] - }, - "SubscriptionManager.getPolicy": { - "1": [ - 3913, - 3940 - ] - }, - "SubscriptionManager.getPolicyCost": { - "14": [ - 1814, - 1857 - ], - "15": [ - 1867, - 1908 - ], - "16": [ - 1918, - 1951 - ] - }, - "SubscriptionManager.initialize": { - "20": [ - 1423, - 1444 - ], - "21": [ - 1454, - 1491 - ], - "22": [ - 1501, - 1538 - ], - "23": [ - 1548, - 1590 - ] - }, - "SubscriptionManager.isPolicyActive": { - "2": [ - 4031, - 4089 - ] - }, - "SubscriptionManager.setFeeRate": { - "10": [ - 4353, - 4380 - ] - }, - "SubscriptionManager.sweep": { - "4": [ - 4587, - 4619 - ] - } - }, - "4": { - "ContextUpgradeable._msgSender": { - "3": [ - 922, - 939 - ] - } - }, - "6": { - "ERC165Upgradeable.supportsInterface": { - "6": [ - 1161, - 1219 - ] - } - }, - "7": {} - } - }, - "dependencies": [ - "OpenZeppelin/openzeppelin-contracts-upgradeable@4.5.0/AccessControlUpgradeable", - "OpenZeppelin/openzeppelin-contracts-upgradeable@4.5.0/ContextUpgradeable", - "OpenZeppelin/openzeppelin-contracts-upgradeable@4.5.0/ERC165Upgradeable", - "OpenZeppelin/openzeppelin-contracts-upgradeable@4.5.0/IAccessControlUpgradeable", - "OpenZeppelin/openzeppelin-contracts-upgradeable@4.5.0/IERC165Upgradeable", - "OpenZeppelin/openzeppelin-contracts-upgradeable@4.5.0/Initializable" - ], - "deployedBytecode": "6080604052600436106100fe5760003560e01c806358db2a7211610095578063978bbdb911610064578063978bbdb9146103e0578063a217fddf146103f6578063d547741f1461040b578063e02023a11461042b578063fe4b84df1461045f57600080fd5b806358db2a721461032557806358f70858146103455780637ef3c6d51461037957806391d14854146103c057600080fd5b80632f2ff15d116100d15780632f2ff15d146102b257806336568abe146102d257806345596e2e146102f25780634f0040411461031257600080fd5b806301681a621461010357806301ffc9a714610125578063248a9ca31461015a5780632c81516114610198575b600080fd5b34801561010f57600080fd5b5061012361011e366004610e65565b61047f565b005b34801561013157600080fd5b50610145610140366004610e82565b61054a565b60405190151581526020015b60405180910390f35b34801561016657600080fd5b5061018a610175366004610eac565b60009081526065602052604090206001015490565b604051908152602001610151565b3480156101a457600080fd5b506102576101b3366004610ee2565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506001600160801b031916600090815260986020908152604091829020825160a08101845281546001600160a01b038082168352600160a01b820463ffffffff90811695840195909552600160c01b820490941694820194909452600160e01b90930461ffff1660608401526001015416608082015290565b604051610151919081516001600160a01b03908116825260208084015163ffffffff908116918401919091526040808501519091169083015260608084015161ffff1690830152608092830151169181019190915260a00190565b3480156102be57600080fd5b506101236102cd366004610efd565b610581565b3480156102de57600080fd5b506101236102ed366004610efd565b6105ac565b3480156102fe57600080fd5b5061012361030d366004610eac565b61062a565b610123610320366004610f53565b61065e565b34801561033157600080fd5b5061018a610340366004610fba565b610723565b34801561035157600080fd5b5061018a7f637ca263f44c0a7e4a3b057e26c82c5667c084aa950864a2916355c481f6a09781565b34801561038557600080fd5b50610145610394366004610ee2565b6001600160801b03191660009081526098602052604090205442600160c01b90910463ffffffff161190565b3480156103cc57600080fd5b506101456103db366004610efd565b6107f3565b3480156103ec57600080fd5b5061018a60975481565b34801561040257600080fd5b5061018a600081565b34801561041757600080fd5b50610123610426366004610efd565b61081e565b34801561043757600080fd5b5061018a7fc1f0c13d12a4ca09aada5725e24c49160e8f198a4ca0d2bd4dafc9c5c12e6a3581565b34801561046b57600080fd5b5061012361047a366004610eac565b610844565b7fc1f0c13d12a4ca09aada5725e24c49160e8f198a4ca0d2bd4dafc9c5c12e6a356104aa8133610965565b60405147906000906001600160a01b0385169083908381818185875af1925050503d80600081146104f7576040519150601f19603f3d011682016040523d82523d6000602084013e6104fc565b606091505b50509050806105445760405162461bcd60e51b815260206004820152600f60248201526e2330b4b632b2103a3930b739b332b960891b60448201526064015b60405180910390fd5b50505050565b60006001600160e01b03198216637965db0b60e01b148061057b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008281526065602052604090206001015461059d8133610965565b6105a783836109c9565b505050565b6001600160a01b038116331461061c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161053b565b6106268282610a4f565b5050565b7f637ca263f44c0a7e4a3b057e26c82c5667c084aa950864a2916355c481f6a0976106558133610965565b61062682610ab6565b8063ffffffff168263ffffffff1610801561067e57508063ffffffff1642105b6106bf5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642074696d657374616d707360701b604482015260640161053b565b6106ca838383610723565b341461070e5760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081c1bdb1a58de4818dbdcdd606a1b604482015260640161053b565b61071b8585858585610afb565b505050505050565b6000806107308484611013565b905060008163ffffffff161161077d5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642074696d657374616d707360701b604482015260640161053b565b60008561ffff16116107c75760405162461bcd60e51b8152602060048201526013602482015272496e76616c696420706f6c6963792073697a6560681b604482015260640161053b565b8063ffffffff168561ffff166097546107e09190611038565b6107ea9190611038565b95945050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008281526065602052604090206001015461083a8133610965565b6105a78383610a4f565b600054610100900460ff1661085f5760005460ff1615610863565b303b155b6108c65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161053b565b600054610100900460ff161580156108e8576000805461ffff19166101011790555b6108f182610ab6565b61091b7f637ca263f44c0a7e4a3b057e26c82c5667c084aa950864a2916355c481f6a09733610ca0565b6109457fc1f0c13d12a4ca09aada5725e24c49160e8f198a4ca0d2bd4dafc9c5c12e6a3533610ca0565b610950600033610ca0565b8015610626576000805461ff00191690555050565b61096f82826107f3565b61062657610987816001600160a01b03166014610caa565b610992836020610caa565b6040516020016109a3929190611083565b60408051601f198184030181529082905262461bcd60e51b825261053b916004016110f8565b6109d382826107f3565b6106265760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610a0b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610a5982826107f3565b156106265760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b609780549082905560408051828152602081018490527f14914da2bf76024616fbe1859783fcd4dbddcb179b1f3a854949fbf920dcb957910160405180910390a15050565b6001600160801b031985166000908152609860205260409020805442600160c01b90910463ffffffff1610610b725760405162461bcd60e51b815260206004820152601a60248201527f506f6c6963792069732063757272656e746c7920616374697665000000000000604482015260640161053b565b805461ffff8516600160e01b0261ffff60e01b1963ffffffff858116600160c01b029190911665ffffffffffff60c01b19918716600160a01b0263ffffffff60a01b19339081166001600160c01b0319909616959095171791909116171782556001600160a01b03861614801590610bf257506001600160a01b03851615155b15610c15576001810180546001600160a01b0319166001600160a01b0387161790555b6001600160a01b03851615610c2a5784610c2c565b335b6040805161ffff8716815263ffffffff868116602083015285168183015234606082015290516001600160a01b03929092169133916001600160801b03198a16917f3e7e513ddaf550a2b9b8c400d5a2428f924d4aae6d8de14c1e2c42e8431fca159181900360800190a495945050505050565b61062682826109c9565b60606000610cb9836002611038565b610cc490600261112b565b67ffffffffffffffff811115610cdc57610cdc611143565b6040519080825280601f01601f191660200182016040528015610d06576020820181803683370190505b509050600360fc1b81600081518110610d2157610d21611159565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610d5057610d50611159565b60200101906001600160f81b031916908160001a9053506000610d74846002611038565b610d7f90600161112b565b90505b6001811115610df7576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610db357610db3611159565b1a60f81b828281518110610dc957610dc9611159565b60200101906001600160f81b031916908160001a90535060049490941c93610df08161116f565b9050610d82565b508315610e465760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161053b565b9392505050565b6001600160a01b0381168114610e6257600080fd5b50565b600060208284031215610e7757600080fd5b8135610e4681610e4d565b600060208284031215610e9457600080fd5b81356001600160e01b031981168114610e4657600080fd5b600060208284031215610ebe57600080fd5b5035919050565b80356001600160801b031981168114610edd57600080fd5b919050565b600060208284031215610ef457600080fd5b610e4682610ec5565b60008060408385031215610f1057600080fd5b823591506020830135610f2281610e4d565b809150509250929050565b803561ffff81168114610edd57600080fd5b803563ffffffff81168114610edd57600080fd5b600080600080600060a08688031215610f6b57600080fd5b610f7486610ec5565b94506020860135610f8481610e4d565b9350610f9260408701610f2d565b9250610fa060608701610f3f565b9150610fae60808701610f3f565b90509295509295909350565b600080600060608486031215610fcf57600080fd5b610fd884610f2d565b9250610fe660208501610f3f565b9150610ff460408501610f3f565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8381169083168181101561103057611030610ffd565b039392505050565b600081600019048311821515161561105257611052610ffd565b500290565b60005b8381101561107257818101518382015260200161105a565b838111156105445750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516110bb816017850160208801611057565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516110ec816028840160208801611057565b01602801949350505050565b6020815260008251806020840152611117816040850160208701611057565b601f01601f19169190910160400192915050565b6000821982111561113e5761113e610ffd565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60008161117e5761117e610ffd565b50600019019056fea26469706673582212207579dc0a825776e3c879b178544a69dd8110090a91fe12ab18231504b8be3ae964736f6c634300080c0033", - "deployedSourceMap": "231:4398:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4393:233;;;;;;;;;;-1:-1:-1;4393:233:30;;;;;:::i;:::-;;:::i;:::-;;2917:213:0;;;;;;;;;;-1:-1:-1;2917:213:0;;;;;:::i;:::-;;:::i;:::-;;;882:14:41;;875:22;857:41;;845:2;830:18;2917:213:0;;;;;;;;4338:129;;;;;;;;;;-1:-1:-1;4338:129:0;;;;;:::i;:::-;4412:7;4438:12;;;:6;:12;;;;;:22;;;;4338:129;;;;1240:25:41;;;1228:2;1213:18;4338:129:0;1094:177:41;3831:116:30;;;;;;;;;;-1:-1:-1;3831:116:30;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3920:20:30;;;;;:9;:20;;;;;;;;;3913:27;;;;;;;;;-1:-1:-1;;;;;3913:27:30;;;;;-1:-1:-1;;;3913:27:30;;;;;;;;;;;;;-1:-1:-1;;;3913:27:30;;;;;;;;;;;;-1:-1:-1;;;3913:27:30;;;;;;;;;;;;;;;;;;3831:116;;;;;;;1922:13:41;;-1:-1:-1;;;;;1918:22:41;;;1900:41;;1988:4;1976:17;;;1970:24;2013:10;2061:21;;;2039:20;;;2032:51;;;;2143:4;2131:17;;;2125:24;2121:33;;;2099:20;;;2092:63;2215:4;2203:17;;;2197:24;2223:6;2193:37;2171:20;;;2164:67;2291:4;2279:17;;;2273:24;2269:33;2247:20;;;2240:63;;;;1849:3;1834:19;;1665:644;4717:145:0;;;;;;;;;;-1:-1:-1;4717:145:0;;;;;:::i;:::-;;:::i;5734:214::-;;;;;;;;;;-1:-1:-1;5734:214:0;;;;;:::i;:::-;;:::i;4266:121:30:-;;;;;;;;;;-1:-1:-1;4266:121:30;;;;;:::i;:::-;;:::i;1964:575::-;;;;;;:::i;:::-;;:::i;1603:355::-;;;;;;;;;;-1:-1:-1;1603:355:30;;;;;:::i;:::-;;:::i;310:87::-;;;;;;;;;;;;359:38;310:87;;3953:143;;;;;;;;;;-1:-1:-1;3953:143:30;;;;;:::i;:::-;-1:-1:-1;;;;;;4038:20:30;4016:4;4038:20;;;:9;:20;;;;;:33;4074:15;-1:-1:-1;;;4038:33:30;;;;;:51;;3953:143;3217:145:0;;;;;;;;;;-1:-1:-1;3217:145:0;;;;;:::i;:::-;;:::i;1212:22:30:-;;;;;;;;;;;;;;;;2324:49:0;;;;;;;;;;-1:-1:-1;2324:49:0;2369:4;2324:49;;5096:147;;;;;;;;;;-1:-1:-1;5096:147:0;;;;;:::i;:::-;;:::i;403:110:30:-;;;;;;;;;;;;452:61;403:110;;1356:241;;;;;;;;;;-1:-1:-1;1356:241:30;;;;;:::i;:::-;;:::i;4393:233::-;452:61;2802:30:0;452:61:30;929:10:4;2802::0;:30::i;:::-;4543:34:30::1;::::0;4496:21:::1;::::0;4478:15:::1;::::0;-1:-1:-1;;;;;4543:14:30;::::1;::::0;4496:21;;4478:15;4543:34;4478:15;4543:34;4496:21;4543:14;:34:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4527:50;;;4595:4;4587:32;;;::::0;-1:-1:-1;;;4587:32:30;;4638:2:41;4587:32:30::1;::::0;::::1;4620:21:41::0;4677:2;4657:18;;;4650:30;-1:-1:-1;;;4696:18:41;;;4689:45;4751:18;;4587:32:30::1;;;;;;;;;4468:158;;4393:233:::0;;:::o;2917:213:0:-;3002:4;-1:-1:-1;;;;;;3025:58:0;;-1:-1:-1;;;3025:58:0;;:98;;-1:-1:-1;;;;;;;;;;1168:51:6;;;3087:36:0;3018:105;2917:213;-1:-1:-1;;2917:213:0:o;4717:145::-;4412:7;4438:12;;;:6;:12;;;;;:22;;;2802:30;2813:4;929:10:4;2802::0;:30::i;:::-;4830:25:::1;4841:4;4847:7;4830:10;:25::i;:::-;4717:145:::0;;;:::o;5734:214::-;-1:-1:-1;;;;;5829:23:0;;929:10:4;5829:23:0;5821:83;;;;-1:-1:-1;;;5821:83:0;;4982:2:41;5821:83:0;;;4964:21:41;5021:2;5001:18;;;4994:30;5060:34;5040:18;;;5033:62;-1:-1:-1;;;5111:18:41;;;5104:45;5166:19;;5821:83:0;4780:411:41;5821:83:0;5915:26;5927:4;5933:7;5915:11;:26::i;:::-;5734:214;;:::o;4266:121:30:-;359:38;2802:30:0;359:38:30;929:10:4;2802::0;:30::i;:::-;4353:27:30::1;4365:14;4353:11;:27::i;1964:575::-:0;2211:13;2193:31;;:15;:31;;;:66;;;;;2246:13;2228:31;;:15;:31;2193:66;2172:131;;;;-1:-1:-1;;;2172:131:30;;5398:2:41;2172:131:30;;;5380:21:41;5437:2;5417:18;;;5410:30;-1:-1:-1;;;5456:18:41;;;5449:48;5514:18;;2172:131:30;5196:342:41;2172:131:30;2347:52;2361:5;2368:15;2385:13;2347;:52::i;:::-;2334:9;:65;2313:131;;;;-1:-1:-1;;;2313:131:30;;5745:2:41;2313:131:30;;;5727:21:41;5784:2;5764:18;;;5757:30;-1:-1:-1;;;5803:18:41;;;5796:49;5862:18;;2313:131:30;5543:343:41;2313:131:30;2455:77;2469:9;2480:12;2494:5;2501:15;2518:13;2455;:77::i;:::-;;1964:575;;;;;:::o;1603:355::-;1737:7;;1773:31;1789:15;1773:13;:31;:::i;:::-;1755:49;;1833:1;1822:8;:12;;;1814:43;;;;-1:-1:-1;;;1814:43:30;;5398:2:41;1814:43:30;;;5380:21:41;5437:2;5417:18;;;5410:30;-1:-1:-1;;;5456:18:41;;;5449:48;5514:18;;1814:43:30;5196:342:41;1814:43:30;1883:1;1875:5;:9;;;1867:41;;;;-1:-1:-1;;;1867:41:30;;6451:2:41;1867:41:30;;;6433:21:41;6490:2;6470:18;;;6463:30;-1:-1:-1;;;6509:18:41;;;6502:49;6568:18;;1867:41:30;6249:343:41;1867:41:30;1943:8;1925:26;;1935:5;1925:15;;:7;;:15;;;;:::i;:::-;:26;;;;:::i;:::-;1918:33;1603:355;-1:-1:-1;;;;;1603:355:30:o;3217:145:0:-;3303:4;3326:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3326:29:0;;;;;;;;;;;;;;;3217:145::o;5096:147::-;4412:7;4438:12;;;:6;:12;;;;;:22;;;2802:30;2813:4;929:10:4;2802::0;:30::i;:::-;5210:26:::1;5222:4;5228:7;5210:11;:26::i;1356:241:30:-:0;2369:13:2;;;;;;;:48;;2405:12;;;;2404:13;2369:48;;;3147:4;1476:19:3;:23;2385:16:2;2361:107;;;;-1:-1:-1;;;2361:107:2;;6972:2:41;2361:107:2;;;6954:21:41;7011:2;6991:18;;;6984:30;7050:34;7030:18;;;7023:62;-1:-1:-1;;;7101:18:41;;;7094:44;7155:19;;2361:107:2;6770:410:41;2361:107:2;2479:19;2502:13;;;;;;2501:14;2525:98;;;;2559:13;:20;;-1:-1:-1;;2593:19:2;;;;;2525:98;1423:21:30::1;1435:8;1423:11;:21::i;:::-;1454:37;359:38;1480:10;1454;:37::i;:::-;1501;452:61;1527:10;1501;:37::i;:::-;1548:42;2369:4:0;1579:10:30;1548;:42::i;:::-;2649:14:2::0;2645:66;;;2695:5;2679:21;;-1:-1:-1;;2679:21:2;;;2080:637;1356:241:30;:::o;3643:514:0:-;3731:22;3739:4;3745:7;3731;:22::i;:::-;3726:425;;3914:52;3953:7;-1:-1:-1;;;;;3914:52:0;3963:2;3914:30;:52::i;:::-;4037:49;4076:4;4083:2;4037:30;:49::i;:::-;3821:287;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3821:287:0;;;;;;;;;;-1:-1:-1;;;3769:371:0;;;;;;;:::i;7191:233::-;7274:22;7282:4;7288:7;7274;:22::i;:::-;7269:149;;7312:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7312:29:0;;;;;;;;;:36;;-1:-1:-1;;7312:36:0;7344:4;7312:36;;;7394:12;929:10:4;;850:96;7394:12:0;-1:-1:-1;;;;;7367:40:0;7385:7;-1:-1:-1;;;;;7367:40:0;7379:4;7367:40;;;;;;;;;;7191:233;;:::o;7549:234::-;7632:22;7640:4;7646:7;7632;:22::i;:::-;7628:149;;;7702:5;7670:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7670:29:0;;;;;;;;;;:37;;-1:-1:-1;;7670:37:0;;;7726:40;929:10:4;;7670:12:0;;7726:40;;7702:5;7726:40;7549:234;;:::o;4102:158:30:-;4175:7;;;4192:16;;;;4223:30;;;8801:25:41;;;8857:2;8842:18;;8835:34;;;4223:30:30;;8774:18:41;4223:30:30;;;;;;;4148:112;4102:158;:::o;2890:935::-;-1:-1:-1;;;;;;3132:20:30;;3086:21;3132:20;;;:9;:20;;;;;3183:19;;3205:15;-1:-1:-1;;;3183:19:30;;;;;:37;3162:110;;;;-1:-1:-1;;;3162:110:30;;9082:2:41;3162:110:30;;;9064:21:41;9121:2;9101:18;;;9094:30;9160:28;9140:18;;;9133:56;9206:18;;3162:110:30;8880:350:41;3162:110:30;3283:36;;3423:19;;;-1:-1:-1;;;3423:19:30;-1:-1:-1;;;;3329:39:30;3378:35;;;-1:-1:-1;;;3378:35:30;3423:19;;;;-1:-1:-1;;;;3329:39:30;;;-1:-1:-1;;;3329:39:30;-1:-1:-1;;;;3308:10:30;3329:39;;;-1:-1:-1;;;;;;3329:39:30;;;;;;;;3423:19;;;;;;;;-1:-1:-1;;;;;3457:26:30;;;;;;:56;;-1:-1:-1;;;;;;3487:26:30;;;;3457:56;3453:114;;;3529:12;;;:27;;-1:-1:-1;;;;;;3529:27:30;-1:-1:-1;;;;;3529:27:30;;;;;3453:114;-1:-1:-1;;;;;3656:26:30;;;:54;;3698:12;3656:54;;;3685:10;3656:54;3582:236;;;9490:6:41;9478:19;;9460:38;;9517:10;9563:15;;;9558:2;9543:18;;9536:43;9615:15;;9595:18;;;9588:43;3799:9:30;9662:2:41;9647:18;;9640:34;3582:236:30;;-1:-1:-1;;;;;3582:236:30;;;;;3632:10;;-1:-1:-1;;;;;;3582:236:30;;;;;;;;9447:3:41;3582:236:30;;;2890:935;;;;;;;:::o;6587:110:0:-;6665:25;6676:4;6682:7;6665:10;:25::i;1599:441:5:-;1674:13;1699:19;1731:10;1735:6;1731:1;:10;:::i;:::-;:14;;1744:1;1731:14;:::i;:::-;1721:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1721:25:5;;1699:47;;-1:-1:-1;;;1756:6:5;1763:1;1756:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1756:15:5;;;;;;;;;-1:-1:-1;;;1781:6:5;1788:1;1781:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1781:15:5;;;;;;;;-1:-1:-1;1811:9:5;1823:10;1827:6;1823:1;:10;:::i;:::-;:14;;1836:1;1823:14;:::i;:::-;1811:26;;1806:132;1843:1;1839;:5;1806:132;;;-1:-1:-1;;;1890:5:5;1898:3;1890:11;1877:25;;;;;;;:::i;:::-;;;;1865:6;1872:1;1865:9;;;;;;;;:::i;:::-;;;;:37;-1:-1:-1;;;;;1865:37:5;;;;;;;;-1:-1:-1;1926:1:5;1916:11;;;;;1846:3;;;:::i;:::-;;;1806:132;;;-1:-1:-1;1955:10:5;;1947:55;;;;-1:-1:-1;;;1947:55:5;;10425:2:41;1947:55:5;;;10407:21:41;;;10444:18;;;10437:30;10503:34;10483:18;;;10476:62;10555:18;;1947:55:5;10223:356:41;1947:55:5;2026:6;1599:441;-1:-1:-1;;;1599:441:5:o;14:139:41:-;-1:-1:-1;;;;;97:31:41;;87:42;;77:70;;143:1;140;133:12;77:70;14:139;:::o;158:263::-;225:6;278:2;266:9;257:7;253:23;249:32;246:52;;;294:1;291;284:12;246:52;333:9;320:23;352:39;385:5;352:39;:::i;426:286::-;484:6;537:2;525:9;516:7;512:23;508:32;505:52;;;553:1;550;543:12;505:52;579:23;;-1:-1:-1;;;;;;631:32:41;;621:43;;611:71;;678:1;675;668:12;909:180;968:6;1021:2;1009:9;1000:7;996:23;992:32;989:52;;;1037:1;1034;1027:12;989:52;-1:-1:-1;1060:23:41;;909:180;-1:-1:-1;909:180:41:o;1276:193::-;1344:20;;-1:-1:-1;;;;;;1393:51:41;;1383:62;;1373:90;;1459:1;1456;1449:12;1373:90;1276:193;;;:::o;1474:186::-;1533:6;1586:2;1574:9;1565:7;1561:23;1557:32;1554:52;;;1602:1;1599;1592:12;1554:52;1625:29;1644:9;1625:29;:::i;2314:323::-;2382:6;2390;2443:2;2431:9;2422:7;2418:23;2414:32;2411:52;;;2459:1;2456;2449:12;2411:52;2495:9;2482:23;2472:33;;2555:2;2544:9;2540:18;2527:32;2568:39;2601:5;2568:39;:::i;:::-;2626:5;2616:15;;;2314:323;;;;;:::o;2827:159::-;2894:20;;2954:6;2943:18;;2933:29;;2923:57;;2976:1;2973;2966:12;2991:163;3058:20;;3118:10;3107:22;;3097:33;;3087:61;;3144:1;3141;3134:12;3159:547;3251:6;3259;3267;3275;3283;3336:3;3324:9;3315:7;3311:23;3307:33;3304:53;;;3353:1;3350;3343:12;3304:53;3376:29;3395:9;3376:29;:::i;:::-;3366:39;;3455:2;3444:9;3440:18;3427:32;3468:39;3501:5;3468:39;:::i;:::-;3526:5;-1:-1:-1;3550:37:41;3583:2;3568:18;;3550:37;:::i;:::-;3540:47;;3606:37;3639:2;3628:9;3624:18;3606:37;:::i;:::-;3596:47;;3662:38;3695:3;3684:9;3680:19;3662:38;:::i;:::-;3652:48;;3159:547;;;;;;;;:::o;3711:328::-;3785:6;3793;3801;3854:2;3842:9;3833:7;3829:23;3825:32;3822:52;;;3870:1;3867;3860:12;3822:52;3893:28;3911:9;3893:28;:::i;:::-;3883:38;;3940:37;3973:2;3962:9;3958:18;3940:37;:::i;:::-;3930:47;;3996:37;4029:2;4018:9;4014:18;3996:37;:::i;:::-;3986:47;;3711:328;;;;;:::o;5891:127::-;5952:10;5947:3;5943:20;5940:1;5933:31;5983:4;5980:1;5973:15;6007:4;6004:1;5997:15;6023:221;6062:4;6091:10;6151;;;;6121;;6173:12;;;6170:38;;;6188:18;;:::i;:::-;6225:13;;6023:221;-1:-1:-1;;;6023:221:41:o;6597:168::-;6637:7;6703:1;6699;6695:6;6691:14;6688:1;6685:21;6680:1;6673:9;6666:17;6662:45;6659:71;;;6710:18;;:::i;:::-;-1:-1:-1;6750:9:41;;6597:168::o;7185:258::-;7257:1;7267:113;7281:6;7278:1;7275:13;7267:113;;;7357:11;;;7351:18;7338:11;;;7331:39;7303:2;7296:10;7267:113;;;7398:6;7395:1;7392:13;7389:48;;;-1:-1:-1;;7433:1:41;7415:16;;7408:27;7185:258::o;7448:786::-;7859:25;7854:3;7847:38;7829:3;7914:6;7908:13;7930:62;7985:6;7980:2;7975:3;7971:12;7964:4;7956:6;7952:17;7930:62;:::i;:::-;-1:-1:-1;;;8051:2:41;8011:16;;;8043:11;;;8036:40;8101:13;;8123:63;8101:13;8172:2;8164:11;;8157:4;8145:17;;8123:63;:::i;:::-;8206:17;8225:2;8202:26;;7448:786;-1:-1:-1;;;;7448:786:41:o;8239:383::-;8388:2;8377:9;8370:21;8351:4;8420:6;8414:13;8463:6;8458:2;8447:9;8443:18;8436:34;8479:66;8538:6;8533:2;8522:9;8518:18;8513:2;8505:6;8501:15;8479:66;:::i;:::-;8606:2;8585:15;-1:-1:-1;;8581:29:41;8566:45;;;;8613:2;8562:54;;8239:383;-1:-1:-1;;8239:383:41:o;9685:128::-;9725:3;9756:1;9752:6;9749:1;9746:13;9743:39;;;9762:18;;:::i;:::-;-1:-1:-1;9798:9:41;;9685:128::o;9818:127::-;9879:10;9874:3;9870:20;9867:1;9860:31;9910:4;9907:1;9900:15;9934:4;9931:1;9924:15;9950:127;10011:10;10006:3;10002:20;9999:1;9992:31;10042:4;10039:1;10032:15;10066:4;10063:1;10056:15;10082:136;10121:3;10149:5;10139:39;;10158:18;;:::i;:::-;-1:-1:-1;;;10194:18:41;;10082:136::o", - "language": "Solidity", - "natspec": { - "kind": "dev", - "methods": { - "getRoleAdmin(bytes32)": { - "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}." - }, - "grantRole(bytes32,address)": { - "details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role." - }, - "hasRole(bytes32,address)": { - "details": "Returns `true` if `account` has been granted `role`." - }, - "renounceRole(bytes32,address)": { - "details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`." - }, - "revokeRole(bytes32,address)": { - "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role." - }, - "supportsInterface(bytes4)": { - "details": "See {IERC165-supportsInterface}." - } - }, - "version": 1 - }, - "offset": [ - 231, - 4629 - ], - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xFE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x58DB2A72 GT PUSH2 0x95 JUMPI DUP1 PUSH4 0x978BBDB9 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x978BBDB9 EQ PUSH2 0x3E0 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x3F6 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x40B JUMPI DUP1 PUSH4 0xE02023A1 EQ PUSH2 0x42B JUMPI DUP1 PUSH4 0xFE4B84DF EQ PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x58DB2A72 EQ PUSH2 0x325 JUMPI DUP1 PUSH4 0x58F70858 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x7EF3C6D5 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x3C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2D2 JUMPI DUP1 PUSH4 0x45596E2E EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x4F004041 EQ PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1681A62 EQ PUSH2 0x103 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x125 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0x2C815161 EQ PUSH2 0x198 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x123 PUSH2 0x11E CALLDATASIZE PUSH1 0x4 PUSH2 0xE65 JUMP JUMPDEST PUSH2 0x47F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x131 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x145 PUSH2 0x140 CALLDATASIZE PUSH1 0x4 PUSH2 0xE82 JUMP JUMPDEST PUSH2 0x54A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18A PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0xEAC JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x151 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x257 PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0xEE2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x98 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xA0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND DUP4 MSTORE PUSH1 0x1 PUSH1 0xA0 SHL DUP3 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x1 PUSH1 0xC0 SHL DUP3 DIV SWAP1 SWAP5 AND SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 SWAP4 DIV PUSH2 0xFFFF AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x1 ADD SLOAD AND PUSH1 0x80 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x151 SWAP2 SWAP1 DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 SWAP2 AND SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP5 ADD MLOAD PUSH2 0xFFFF AND SWAP1 DUP4 ADD MSTORE PUSH1 0x80 SWAP3 DUP4 ADD MLOAD AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x123 PUSH2 0x2CD CALLDATASIZE PUSH1 0x4 PUSH2 0xEFD JUMP JUMPDEST PUSH2 0x581 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x123 PUSH2 0x2ED CALLDATASIZE PUSH1 0x4 PUSH2 0xEFD JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x123 PUSH2 0x30D CALLDATASIZE PUSH1 0x4 PUSH2 0xEAC JUMP JUMPDEST PUSH2 0x62A JUMP JUMPDEST PUSH2 0x123 PUSH2 0x320 CALLDATASIZE PUSH1 0x4 PUSH2 0xF53 JUMP JUMPDEST PUSH2 0x65E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18A PUSH2 0x340 CALLDATASIZE PUSH1 0x4 PUSH2 0xFBA JUMP JUMPDEST PUSH2 0x723 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18A PUSH32 0x637CA263F44C0A7E4A3B057E26C82C5667C084AA950864A2916355C481F6A097 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x385 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x145 PUSH2 0x394 CALLDATASIZE PUSH1 0x4 PUSH2 0xEE2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x98 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH4 0xFFFFFFFF AND GT SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x145 PUSH2 0x3DB CALLDATASIZE PUSH1 0x4 PUSH2 0xEFD JUMP JUMPDEST PUSH2 0x7F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18A PUSH1 0x97 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x402 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18A PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x417 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x123 PUSH2 0x426 CALLDATASIZE PUSH1 0x4 PUSH2 0xEFD JUMP JUMPDEST PUSH2 0x81E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x437 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18A PUSH32 0xC1F0C13D12A4CA09AADA5725E24C49160E8F198A4CA0D2BD4DAFC9C5C12E6A35 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x123 PUSH2 0x47A CALLDATASIZE PUSH1 0x4 PUSH2 0xEAC JUMP JUMPDEST PUSH2 0x844 JUMP JUMPDEST PUSH32 0xC1F0C13D12A4CA09AADA5725E24C49160E8F198A4CA0D2BD4DAFC9C5C12E6A35 PUSH2 0x4AA DUP2 CALLER PUSH2 0x965 JUMP JUMPDEST PUSH1 0x40 MLOAD SELFBALANCE SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 DUP4 SWAP1 DUP4 DUP2 DUP2 DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x4F7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4FC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x544 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x2330B4B632B2103A3930B739B332B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x57B JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x59D DUP2 CALLER PUSH2 0x965 JUMP JUMPDEST PUSH2 0x5A7 DUP4 DUP4 PUSH2 0x9C9 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x61C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x53B JUMP JUMPDEST PUSH2 0x626 DUP3 DUP3 PUSH2 0xA4F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x637CA263F44C0A7E4A3B057E26C82C5667C084AA950864A2916355C481F6A097 PUSH2 0x655 DUP2 CALLER PUSH2 0x965 JUMP JUMPDEST PUSH2 0x626 DUP3 PUSH2 0xAB6 JUMP JUMPDEST DUP1 PUSH4 0xFFFFFFFF AND DUP3 PUSH4 0xFFFFFFFF AND LT DUP1 ISZERO PUSH2 0x67E JUMPI POP DUP1 PUSH4 0xFFFFFFFF AND TIMESTAMP LT JUMPDEST PUSH2 0x6BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E76616C69642074696D657374616D7073 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x53B JUMP JUMPDEST PUSH2 0x6CA DUP4 DUP4 DUP4 PUSH2 0x723 JUMP JUMPDEST CALLVALUE EQ PUSH2 0x70E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x125B9D985B1A59081C1BDB1A58DE4818DBDCDD PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x53B JUMP JUMPDEST PUSH2 0x71B DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0xAFB JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x730 DUP5 DUP5 PUSH2 0x1013 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT PUSH2 0x77D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E76616C69642074696D657374616D7073 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x53B JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH2 0xFFFF AND GT PUSH2 0x7C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x496E76616C696420706F6C6963792073697A65 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x53B JUMP JUMPDEST DUP1 PUSH4 0xFFFFFFFF AND DUP6 PUSH2 0xFFFF AND PUSH1 0x97 SLOAD PUSH2 0x7E0 SWAP2 SWAP1 PUSH2 0x1038 JUMP JUMPDEST PUSH2 0x7EA SWAP2 SWAP1 PUSH2 0x1038 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x65 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x83A DUP2 CALLER PUSH2 0x965 JUMP JUMPDEST PUSH2 0x5A7 DUP4 DUP4 PUSH2 0xA4F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x85F JUMPI PUSH1 0x0 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x863 JUMP JUMPDEST ADDRESS EXTCODESIZE ISZERO JUMPDEST PUSH2 0x8C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x53B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x8E8 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x101 OR SWAP1 SSTORE JUMPDEST PUSH2 0x8F1 DUP3 PUSH2 0xAB6 JUMP JUMPDEST PUSH2 0x91B PUSH32 0x637CA263F44C0A7E4A3B057E26C82C5667C084AA950864A2916355C481F6A097 CALLER PUSH2 0xCA0 JUMP JUMPDEST PUSH2 0x945 PUSH32 0xC1F0C13D12A4CA09AADA5725E24C49160E8F198A4CA0D2BD4DAFC9C5C12E6A35 CALLER PUSH2 0xCA0 JUMP JUMPDEST PUSH2 0x950 PUSH1 0x0 CALLER PUSH2 0xCA0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x96F DUP3 DUP3 PUSH2 0x7F3 JUMP JUMPDEST PUSH2 0x626 JUMPI PUSH2 0x987 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0xCAA JUMP JUMPDEST PUSH2 0x992 DUP4 PUSH1 0x20 PUSH2 0xCAA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x9A3 SWAP3 SWAP2 SWAP1 PUSH2 0x1083 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x53B SWAP2 PUSH1 0x4 ADD PUSH2 0x10F8 JUMP JUMPDEST PUSH2 0x9D3 DUP3 DUP3 PUSH2 0x7F3 JUMP JUMPDEST PUSH2 0x626 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xA0B CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0xA59 DUP3 DUP3 PUSH2 0x7F3 JUMP JUMPDEST ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x14914DA2BF76024616FBE1859783FCD4DBDDCB179B1F3A854949FBF920DCB957 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x98 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD TIMESTAMP PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH4 0xFFFFFFFF AND LT PUSH2 0xB72 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792069732063757272656E746C7920616374697665000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x53B JUMP JUMPDEST DUP1 SLOAD PUSH2 0xFFFF DUP6 AND PUSH1 0x1 PUSH1 0xE0 SHL MUL PUSH2 0xFFFF PUSH1 0xE0 SHL NOT PUSH4 0xFFFFFFFF DUP6 DUP2 AND PUSH1 0x1 PUSH1 0xC0 SHL MUL SWAP2 SWAP1 SWAP2 AND PUSH6 0xFFFFFFFFFFFF PUSH1 0xC0 SHL NOT SWAP2 DUP8 AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT CALLER SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP7 AND SWAP6 SWAP1 SWAP6 OR OR SWAP2 SWAP1 SWAP2 AND OR OR DUP3 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xBF2 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xC15 JUMPI PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND OR SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0xC2A JUMPI DUP5 PUSH2 0xC2C JUMP JUMPDEST CALLER JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH4 0xFFFFFFFF DUP7 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP6 AND DUP2 DUP4 ADD MSTORE CALLVALUE PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 CALLER SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP11 AND SWAP2 PUSH32 0x3E7E513DDAF550A2B9B8C400D5A2428F924D4AAE6D8DE14C1E2C42E8431FCA15 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x626 DUP3 DUP3 PUSH2 0x9C9 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xCB9 DUP4 PUSH1 0x2 PUSH2 0x1038 JUMP JUMPDEST PUSH2 0xCC4 SWAP1 PUSH1 0x2 PUSH2 0x112B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCDC JUMPI PUSH2 0xCDC PUSH2 0x1143 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD06 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xD21 JUMPI PUSH2 0xD21 PUSH2 0x1159 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0xD50 JUMPI PUSH2 0xD50 PUSH2 0x1159 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0xD74 DUP5 PUSH1 0x2 PUSH2 0x1038 JUMP JUMPDEST PUSH2 0xD7F SWAP1 PUSH1 0x1 PUSH2 0x112B JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xDF7 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0xDB3 JUMPI PUSH2 0xDB3 PUSH2 0x1159 JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xDC9 JUMPI PUSH2 0xDC9 PUSH2 0x1159 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0xDF0 DUP2 PUSH2 0x116F JUMP JUMPDEST SWAP1 POP PUSH2 0xD82 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0xE46 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x53B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xE62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xE46 DUP2 PUSH2 0xE4D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xE46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xEDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE46 DUP3 PUSH2 0xEC5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0xF22 DUP2 PUSH2 0xE4D JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0xEDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xEDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xF6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF74 DUP7 PUSH2 0xEC5 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0xF84 DUP2 PUSH2 0xE4D JUMP JUMPDEST SWAP4 POP PUSH2 0xF92 PUSH1 0x40 DUP8 ADD PUSH2 0xF2D JUMP JUMPDEST SWAP3 POP PUSH2 0xFA0 PUSH1 0x60 DUP8 ADD PUSH2 0xF3F JUMP JUMPDEST SWAP2 POP PUSH2 0xFAE PUSH1 0x80 DUP8 ADD PUSH2 0xF3F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xFCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFD8 DUP5 PUSH2 0xF2D JUMP JUMPDEST SWAP3 POP PUSH2 0xFE6 PUSH1 0x20 DUP6 ADD PUSH2 0xF3F JUMP JUMPDEST SWAP2 POP PUSH2 0xFF4 PUSH1 0x40 DUP6 ADD PUSH2 0xF3F JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP4 DUP2 AND SWAP1 DUP4 AND DUP2 DUP2 LT ISZERO PUSH2 0x1030 JUMPI PUSH2 0x1030 PUSH2 0xFFD JUMP JUMPDEST SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1052 JUMPI PUSH2 0x1052 PUSH2 0xFFD JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1072 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x105A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x544 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x10BB DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1057 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x10EC DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1057 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1117 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1057 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x113E JUMPI PUSH2 0x113E PUSH2 0xFFD JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x117E JUMPI PUSH2 0x117E PUSH2 0xFFD JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH22 0x79DC0A825776E3C879B178544A69DD8110090A91FE12 0xAB XOR 0x23 ISZERO DIV 0xB8 0xBE GASPRICE 0xE9 PUSH5 0x736F6C6343 STOP ADDMOD 0xC STOP CALLER ", - "pcMap": { - "0": { - "offset": [ - 231, - 4629 - ], - "op": "PUSH1", - "path": "30", - "value": "0x80" - }, - "2": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "4": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "MSTORE", - "path": "30" - }, - "5": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH1", - "path": "30", - "value": "0x4" - }, - "7": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "CALLDATASIZE", - "path": "30" - }, - "8": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "LT", - "path": "30" - }, - "9": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0xFE" - }, - "12": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "13": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "15": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "CALLDATALOAD", - "path": "30" - }, - "16": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH1", - "path": "30", - "value": "0xE0" - }, - "18": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "SHR", - "path": "30" - }, - "19": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "20": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x58DB2A72" - }, - "25": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "GT", - "path": "30" - }, - "26": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x95" - }, - "29": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "30": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "31": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x978BBDB9" - }, - "36": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "GT", - "path": "30" - }, - "37": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x64" - }, - "40": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "41": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "42": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x978BBDB9" - }, - "47": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "48": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x3E0" - }, - "51": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "52": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "53": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0xA217FDDF" - }, - "58": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "59": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x3F6" - }, - "62": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "63": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "64": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0xD547741F" - }, - "69": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "70": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x40B" - }, - "73": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "74": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "75": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0xE02023A1" - }, - "80": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "81": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x42B" - }, - "84": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "85": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "86": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0xFE4B84DF" - }, - "91": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "92": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x45F" - }, - "95": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "96": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "98": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "99": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "REVERT", - "path": "30" - }, - "100": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPDEST", - "path": "30" - }, - "101": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "102": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x58DB2A72" - }, - "107": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "108": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x325" - }, - "111": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "112": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "113": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x58F70858" - }, - "118": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "119": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x345" - }, - "122": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "123": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "124": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x7EF3C6D5" - }, - "129": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "130": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x379" - }, - "133": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "134": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "135": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x91D14854" - }, - "140": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "141": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x3C0" - }, - "144": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "145": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "147": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "148": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "REVERT", - "path": "30" - }, - "149": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPDEST", - "path": "30" - }, - "150": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "151": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x2F2FF15D" - }, - "156": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "GT", - "path": "30" - }, - "157": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0xD1" - }, - "160": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "161": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "162": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x2F2FF15D" - }, - "167": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "168": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x2B2" - }, - "171": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "172": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "173": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x36568ABE" - }, - "178": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "179": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x2D2" - }, - "182": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "183": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "184": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x45596E2E" - }, - "189": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "190": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x2F2" - }, - "193": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "194": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "195": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x4F004041" - }, - "200": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "201": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x312" - }, - "204": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "205": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "207": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "208": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "REVERT", - "path": "30" - }, - "209": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPDEST", - "path": "30" - }, - "210": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "211": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x1681A62" - }, - "216": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "217": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x103" - }, - "220": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "221": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "222": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x1FFC9A7" - }, - "227": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "228": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x125" - }, - "231": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "232": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "233": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x248A9CA3" - }, - "238": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "239": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x15A" - }, - "242": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "243": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "244": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH4", - "path": "30", - "value": "0x2C815161" - }, - "249": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "EQ", - "path": "30" - }, - "250": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH2", - "path": "30", - "value": "0x198" - }, - "253": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPI", - "path": "30" - }, - "254": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "JUMPDEST", - "path": "30" - }, - "255": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "257": { - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "DUP1", - "path": "30" - }, - "258": { - "first_revert": true, - "fn": null, - "offset": [ - 231, - 4629 - ], - "op": "REVERT", - "path": "30" - }, - "259": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "JUMPDEST", - "path": "30" - }, - "260": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "CALLVALUE", - "path": "30" - }, - "261": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "DUP1", - "path": "30" - }, - "262": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "ISZERO", - "path": "30" - }, - "263": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "PUSH2", - "path": "30", - "value": "0x10F" - }, - "266": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "JUMPI", - "path": "30" - }, - "267": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "269": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "DUP1", - "path": "30" - }, - "270": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "REVERT", - "path": "30" - }, - "271": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "JUMPDEST", - "path": "30" - }, - "272": { - "op": "POP" - }, - "273": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "PUSH2", - "path": "30", - "value": "0x123" - }, - "276": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "PUSH2", - "path": "30", - "value": "0x11E" - }, - "279": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "CALLDATASIZE", - "path": "30" - }, - "280": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "PUSH1", - "path": "30", - "value": "0x4" - }, - "282": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "PUSH2", - "path": "30", - "value": "0xE65" - }, - "285": { - "fn": "SubscriptionManager.sweep", - "jump": "i", - "offset": [ - 4393, - 4626 - ], - "op": "JUMP", - "path": "30" - }, - "286": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "JUMPDEST", - "path": "30" - }, - "287": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "PUSH2", - "path": "30", - "value": "0x47F" - }, - "290": { - "fn": "SubscriptionManager.sweep", - "jump": "i", - "offset": [ - 4393, - 4626 - ], - "op": "JUMP", - "path": "30" - }, - "291": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "JUMPDEST", - "path": "30" - }, - "292": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "STOP", - "path": "30" - }, - "293": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "JUMPDEST", - "path": "0" - }, - "294": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "CALLVALUE", - "path": "0" - }, - "295": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "DUP1", - "path": "0" - }, - "296": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "ISZERO", - "path": "0" - }, - "297": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "PUSH2", - "path": "0", - "value": "0x131" - }, - "300": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "JUMPI", - "path": "0" - }, - "301": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "PUSH1", - "path": "0", - "value": "0x0" - }, - "303": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "DUP1", - "path": "0" - }, - "304": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "REVERT", - "path": "0" - }, - "305": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "JUMPDEST", - "path": "0" - }, - "306": { - "op": "POP" - }, - "307": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "PUSH2", - "path": "0", - "value": "0x145" - }, - "310": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "PUSH2", - "path": "0", - "value": "0x140" - }, - "313": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "CALLDATASIZE", - "path": "0" - }, - "314": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "PUSH1", - "path": "0", - "value": "0x4" - }, - "316": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "PUSH2", - "path": "0", - "value": "0xE82" - }, - "319": { - "fn": "AccessControlUpgradeable.supportsInterface", - "jump": "i", - "offset": [ - 2917, - 3130 - ], - "op": "JUMP", - "path": "0" - }, - "320": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "JUMPDEST", - "path": "0" - }, - "321": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "PUSH2", - "path": "0", - "value": "0x54A" - }, - "324": { - "fn": "AccessControlUpgradeable.supportsInterface", - "jump": "i", - "offset": [ - 2917, - 3130 - ], - "op": "JUMP", - "path": "0" - }, - "325": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "JUMPDEST", - "path": "0" - }, - "326": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "PUSH1", - "path": "0", - "value": "0x40" - }, - "328": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "MLOAD", - "path": "0" - }, - "329": { - "op": "SWAP1" - }, - "330": { - "op": "ISZERO" - }, - "331": { - "op": "ISZERO" - }, - "332": { - "op": "DUP2" - }, - "333": { - "op": "MSTORE" - }, - "334": { - "op": "PUSH1", - "value": "0x20" - }, - "336": { - "op": "ADD" - }, - "337": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "JUMPDEST", - "path": "0" - }, - "338": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "PUSH1", - "path": "0", - "value": "0x40" - }, - "340": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "MLOAD", - "path": "0" - }, - "341": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "DUP1", - "path": "0" - }, - "342": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "SWAP2", - "path": "0" - }, - "343": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "SUB", - "path": "0" - }, - "344": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "SWAP1", - "path": "0" - }, - "345": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "RETURN", - "path": "0" - }, - "346": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "JUMPDEST", - "path": "0" - }, - "347": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "CALLVALUE", - "path": "0" - }, - "348": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "DUP1", - "path": "0" - }, - "349": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "ISZERO", - "path": "0" - }, - "350": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "PUSH2", - "path": "0", - "value": "0x166" - }, - "353": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "JUMPI", - "path": "0" - }, - "354": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "PUSH1", - "path": "0", - "value": "0x0" - }, - "356": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "DUP1", - "path": "0" - }, - "357": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "REVERT", - "path": "0" - }, - "358": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "JUMPDEST", - "path": "0" - }, - "359": { - "op": "POP" - }, - "360": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "PUSH2", - "path": "0", - "value": "0x18A" - }, - "363": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "PUSH2", - "path": "0", - "value": "0x175" - }, - "366": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "CALLDATASIZE", - "path": "0" - }, - "367": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "PUSH1", - "path": "0", - "value": "0x4" - }, - "369": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "PUSH2", - "path": "0", - "value": "0xEAC" - }, - "372": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "jump": "i", - "offset": [ - 4338, - 4467 - ], - "op": "JUMP", - "path": "0" - }, - "373": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "JUMPDEST", - "path": "0" - }, - "374": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4412, - 4419 - ], - "op": "PUSH1", - "path": "0", - "value": "0x0" - }, - "376": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "SWAP1", - "path": "0", - "statement": 0 - }, - "377": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "DUP2", - "path": "0" - }, - "378": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "MSTORE", - "path": "0" - }, - "379": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4444 - ], - "op": "PUSH1", - "path": "0", - "value": "0x65" - }, - "381": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "PUSH1", - "path": "0", - "value": "0x20" - }, - "383": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "MSTORE", - "path": "0" - }, - "384": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "PUSH1", - "path": "0", - "value": "0x40" - }, - "386": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "SWAP1", - "path": "0" - }, - "387": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "KECCAK256", - "path": "0" - }, - "388": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4460 - ], - "op": "PUSH1", - "path": "0", - "value": "0x1" - }, - "390": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4460 - ], - "op": "ADD", - "path": "0" - }, - "391": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4460 - ], - "op": "SLOAD", - "path": "0" - }, - "392": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4460 - ], - "op": "SWAP1", - "path": "0" - }, - "393": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "JUMP", - "path": "0" - }, - "394": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "JUMPDEST", - "path": "0" - }, - "395": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "PUSH1", - "path": "0", - "value": "0x40" - }, - "397": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "MLOAD", - "path": "0" - }, - "398": { - "op": "SWAP1" - }, - "399": { - "op": "DUP2" - }, - "400": { - "op": "MSTORE" - }, - "401": { - "op": "PUSH1", - "value": "0x20" - }, - "403": { - "op": "ADD" - }, - "404": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4338, - 4467 - ], - "op": "PUSH2", - "path": "0", - "value": "0x151" - }, - "407": { - "op": "JUMP" - }, - "408": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "JUMPDEST", - "path": "30" - }, - "409": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "CALLVALUE", - "path": "30" - }, - "410": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "DUP1", - "path": "30" - }, - "411": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "ISZERO", - "path": "30" - }, - "412": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "PUSH2", - "path": "30", - "value": "0x1A4" - }, - "415": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "JUMPI", - "path": "30" - }, - "416": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "418": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "DUP1", - "path": "30" - }, - "419": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "REVERT", - "path": "30" - }, - "420": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "JUMPDEST", - "path": "30" - }, - "421": { - "op": "POP" - }, - "422": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "PUSH2", - "path": "30", - "value": "0x257" - }, - "425": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "PUSH2", - "path": "30", - "value": "0x1B3" - }, - "428": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "CALLDATASIZE", - "path": "30" - }, - "429": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "PUSH1", - "path": "30", - "value": "0x4" - }, - "431": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "PUSH2", - "path": "30", - "value": "0xEE2" - }, - "434": { - "fn": "SubscriptionManager.getPolicy", - "jump": "i", - "offset": [ - 3831, - 3947 - ], - "op": "JUMP", - "path": "30" - }, - "435": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "JUMPDEST", - "path": "30" - }, - "436": { - "op": "PUSH1", - "value": "0x40" - }, - "438": { - "op": "DUP1" - }, - "439": { - "op": "MLOAD" - }, - "440": { - "op": "PUSH1", - "value": "0xA0" - }, - "442": { - "op": "DUP2" - }, - "443": { - "op": "ADD" - }, - "444": { - "op": "DUP3" - }, - "445": { - "op": "MSTORE" - }, - "446": { - "op": "PUSH1", - "value": "0x0" - }, - "448": { - "op": "DUP1" - }, - "449": { - "op": "DUP3" - }, - "450": { - "op": "MSTORE" - }, - "451": { - "op": "PUSH1", - "value": "0x20" - }, - "453": { - "op": "DUP3" - }, - "454": { - "op": "ADD" - }, - "455": { - "op": "DUP2" - }, - "456": { - "op": "SWAP1" - }, - "457": { - "op": "MSTORE" - }, - "458": { - "op": "SWAP2" - }, - "459": { - "op": "DUP2" - }, - "460": { - "op": "ADD" - }, - "461": { - "op": "DUP3" - }, - "462": { - "op": "SWAP1" - }, - "463": { - "op": "MSTORE" - }, - "464": { - "op": "PUSH1", - "value": "0x60" - }, - "466": { - "op": "DUP2" - }, - "467": { - "op": "ADD" - }, - "468": { - "op": "DUP3" - }, - "469": { - "op": "SWAP1" - }, - "470": { - "op": "MSTORE" - }, - "471": { - "op": "PUSH1", - "value": "0x80" - }, - "473": { - "op": "DUP2" - }, - "474": { - "op": "ADD" - }, - "475": { - "op": "SWAP2" - }, - "476": { - "op": "SWAP1" - }, - "477": { - "op": "SWAP2" - }, - "478": { - "op": "MSTORE" - }, - "479": { - "op": "POP" - }, - "480": { - "op": "PUSH1", - "value": "0x1" - }, - "482": { - "op": "PUSH1", - "value": "0x1" - }, - "484": { - "op": "PUSH1", - "value": "0x80" - }, - "486": { - "op": "SHL" - }, - "487": { - "op": "SUB" - }, - "488": { - "op": "NOT" - }, - "489": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3940 - ], - "op": "AND", - "path": "30", - "statement": 1 - }, - "490": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3940 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "492": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3940 - ], - "op": "SWAP1", - "path": "30" - }, - "493": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3940 - ], - "op": "DUP2", - "path": "30" - }, - "494": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3940 - ], - "op": "MSTORE", - "path": "30" - }, - "495": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3929 - ], - "op": "PUSH1", - "path": "30", - "value": "0x98" - }, - "497": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3940 - ], - "op": "PUSH1", - "path": "30", - "value": "0x20" - }, - "499": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3940 - ], - "op": "SWAP1", - "path": "30" - }, - "500": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3940 - ], - "op": "DUP2", - "path": "30" - }, - "501": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3940 - ], - "op": "MSTORE", - "path": "30" - }, - "502": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3940 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "504": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3940 - ], - "op": "SWAP2", - "path": "30" - }, - "505": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3940 - ], - "op": "DUP3", - "path": "30" - }, - "506": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3940 - ], - "op": "SWAP1", - "path": "30" - }, - "507": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3920, - 3940 - ], - "op": "KECCAK256", - "path": "30" - }, - "508": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DUP3", - "path": "30" - }, - "509": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "MLOAD", - "path": "30" - }, - "510": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "PUSH1", - "path": "30", - "value": "0xA0" - }, - "512": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DUP2", - "path": "30" - }, - "513": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "ADD", - "path": "30" - }, - "514": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DUP5", - "path": "30" - }, - "515": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "MSTORE", - "path": "30" - }, - "516": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DUP2", - "path": "30" - }, - "517": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SLOAD", - "path": "30" - }, - "518": { - "op": "PUSH1", - "value": "0x1" - }, - "520": { - "op": "PUSH1", - "value": "0x1" - }, - "522": { - "op": "PUSH1", - "value": "0xA0" - }, - "524": { - "op": "SHL" - }, - "525": { - "op": "SUB" - }, - "526": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DUP1", - "path": "30" - }, - "527": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DUP3", - "path": "30" - }, - "528": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "AND", - "path": "30" - }, - "529": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DUP4", - "path": "30" - }, - "530": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "MSTORE", - "path": "30" - }, - "531": { - "op": "PUSH1", - "value": "0x1" - }, - "533": { - "op": "PUSH1", - "value": "0xA0" - }, - "535": { - "op": "SHL" - }, - "536": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DUP3", - "path": "30" - }, - "537": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DIV", - "path": "30" - }, - "538": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "PUSH4", - "path": "30", - "value": "0xFFFFFFFF" - }, - "543": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SWAP1", - "path": "30" - }, - "544": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DUP2", - "path": "30" - }, - "545": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "AND", - "path": "30" - }, - "546": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SWAP6", - "path": "30" - }, - "547": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DUP5", - "path": "30" - }, - "548": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "ADD", - "path": "30" - }, - "549": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SWAP6", - "path": "30" - }, - "550": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SWAP1", - "path": "30" - }, - "551": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SWAP6", - "path": "30" - }, - "552": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "MSTORE", - "path": "30" - }, - "553": { - "op": "PUSH1", - "value": "0x1" - }, - "555": { - "op": "PUSH1", - "value": "0xC0" - }, - "557": { - "op": "SHL" - }, - "558": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DUP3", - "path": "30" - }, - "559": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DIV", - "path": "30" - }, - "560": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SWAP1", - "path": "30" - }, - "561": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SWAP5", - "path": "30" - }, - "562": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "AND", - "path": "30" - }, - "563": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SWAP5", - "path": "30" - }, - "564": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DUP3", - "path": "30" - }, - "565": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "ADD", - "path": "30" - }, - "566": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SWAP5", - "path": "30" - }, - "567": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SWAP1", - "path": "30" - }, - "568": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SWAP5", - "path": "30" - }, - "569": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "MSTORE", - "path": "30" - }, - "570": { - "op": "PUSH1", - "value": "0x1" - }, - "572": { - "op": "PUSH1", - "value": "0xE0" - }, - "574": { - "op": "SHL" - }, - "575": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SWAP1", - "path": "30" - }, - "576": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SWAP4", - "path": "30" - }, - "577": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DIV", - "path": "30" - }, - "578": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "PUSH2", - "path": "30", - "value": "0xFFFF" - }, - "581": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "AND", - "path": "30" - }, - "582": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "PUSH1", - "path": "30", - "value": "0x60" - }, - "584": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DUP5", - "path": "30" - }, - "585": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "ADD", - "path": "30" - }, - "586": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "MSTORE", - "path": "30" - }, - "587": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "PUSH1", - "path": "30", - "value": "0x1" - }, - "589": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "ADD", - "path": "30" - }, - "590": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SLOAD", - "path": "30" - }, - "591": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "AND", - "path": "30" - }, - "592": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "PUSH1", - "path": "30", - "value": "0x80" - }, - "594": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "DUP3", - "path": "30" - }, - "595": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "ADD", - "path": "30" - }, - "596": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "MSTORE", - "path": "30" - }, - "597": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3913, - 3940 - ], - "op": "SWAP1", - "path": "30" - }, - "598": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "JUMP", - "path": "30" - }, - "599": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "JUMPDEST", - "path": "30" - }, - "600": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "602": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "MLOAD", - "path": "30" - }, - "603": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "PUSH2", - "path": "30", - "value": "0x151" - }, - "606": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "SWAP2", - "path": "30" - }, - "607": { - "fn": "SubscriptionManager.getPolicy", - "offset": [ - 3831, - 3947 - ], - "op": "SWAP1", - "path": "30" - }, - "608": { - "op": "DUP2" - }, - "609": { - "op": "MLOAD" - }, - "610": { - "op": "PUSH1", - "value": "0x1" - }, - "612": { - "op": "PUSH1", - "value": "0x1" - }, - "614": { - "op": "PUSH1", - "value": "0xA0" - }, - "616": { - "op": "SHL" - }, - "617": { - "op": "SUB" - }, - "618": { - "op": "SWAP1" - }, - "619": { - "op": "DUP2" - }, - "620": { - "op": "AND" - }, - "621": { - "op": "DUP3" - }, - "622": { - "op": "MSTORE" - }, - "623": { - "op": "PUSH1", - "value": "0x20" - }, - "625": { - "op": "DUP1" - }, - "626": { - "op": "DUP5" - }, - "627": { - "op": "ADD" - }, - "628": { - "op": "MLOAD" - }, - "629": { - "op": "PUSH4", - "value": "0xFFFFFFFF" - }, - "634": { - "op": "SWAP1" - }, - "635": { - "op": "DUP2" - }, - "636": { - "op": "AND" - }, - "637": { - "op": "SWAP2" - }, - "638": { - "op": "DUP5" - }, - "639": { - "op": "ADD" - }, - "640": { - "op": "SWAP2" - }, - "641": { - "op": "SWAP1" - }, - "642": { - "op": "SWAP2" - }, - "643": { - "op": "MSTORE" - }, - "644": { - "op": "PUSH1", - "value": "0x40" - }, - "646": { - "op": "DUP1" - }, - "647": { - "op": "DUP6" - }, - "648": { - "op": "ADD" - }, - "649": { - "op": "MLOAD" - }, - "650": { - "op": "SWAP1" - }, - "651": { - "op": "SWAP2" - }, - "652": { - "op": "AND" - }, - "653": { - "op": "SWAP1" - }, - "654": { - "op": "DUP4" - }, - "655": { - "op": "ADD" - }, - "656": { - "op": "MSTORE" - }, - "657": { - "op": "PUSH1", - "value": "0x60" - }, - "659": { - "op": "DUP1" - }, - "660": { - "op": "DUP5" - }, - "661": { - "op": "ADD" - }, - "662": { - "op": "MLOAD" - }, - "663": { - "op": "PUSH2", - "value": "0xFFFF" - }, - "666": { - "op": "AND" - }, - "667": { - "op": "SWAP1" - }, - "668": { - "op": "DUP4" - }, - "669": { - "op": "ADD" - }, - "670": { - "op": "MSTORE" - }, - "671": { - "op": "PUSH1", - "value": "0x80" - }, - "673": { - "op": "SWAP3" - }, - "674": { - "op": "DUP4" - }, - "675": { - "op": "ADD" - }, - "676": { - "op": "MLOAD" - }, - "677": { - "op": "AND" - }, - "678": { - "op": "SWAP2" - }, - "679": { - "op": "DUP2" - }, - "680": { - "op": "ADD" - }, - "681": { - "op": "SWAP2" - }, - "682": { - "op": "SWAP1" - }, - "683": { - "op": "SWAP2" - }, - "684": { - "op": "MSTORE" - }, - "685": { - "op": "PUSH1", - "value": "0xA0" - }, - "687": { - "op": "ADD" - }, - "688": { - "op": "SWAP1" - }, - "689": { - "op": "JUMP" - }, - "690": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "JUMPDEST", - "path": "0" - }, - "691": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "CALLVALUE", - "path": "0" - }, - "692": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "DUP1", - "path": "0" - }, - "693": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "ISZERO", - "path": "0" - }, - "694": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "PUSH2", - "path": "0", - "value": "0x2BE" - }, - "697": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "JUMPI", - "path": "0" - }, - "698": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "PUSH1", - "path": "0", - "value": "0x0" - }, - "700": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "DUP1", - "path": "0" - }, - "701": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "REVERT", - "path": "0" - }, - "702": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "JUMPDEST", - "path": "0" - }, - "703": { - "op": "POP" - }, - "704": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "PUSH2", - "path": "0", - "value": "0x123" - }, - "707": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "PUSH2", - "path": "0", - "value": "0x2CD" - }, - "710": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "CALLDATASIZE", - "path": "0" - }, - "711": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "PUSH1", - "path": "0", - "value": "0x4" - }, - "713": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "PUSH2", - "path": "0", - "value": "0xEFD" - }, - "716": { - "fn": "AccessControlUpgradeable.grantRole", - "jump": "i", - "offset": [ - 4717, - 4862 - ], - "op": "JUMP", - "path": "0" - }, - "717": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "JUMPDEST", - "path": "0" - }, - "718": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "PUSH2", - "path": "0", - "value": "0x581" - }, - "721": { - "fn": "AccessControlUpgradeable.grantRole", - "jump": "i", - "offset": [ - 4717, - 4862 - ], - "op": "JUMP", - "path": "0" - }, - "722": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "JUMPDEST", - "path": "0" - }, - "723": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "CALLVALUE", - "path": "0" - }, - "724": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "DUP1", - "path": "0" - }, - "725": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "ISZERO", - "path": "0" - }, - "726": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "PUSH2", - "path": "0", - "value": "0x2DE" - }, - "729": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "JUMPI", - "path": "0" - }, - "730": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "PUSH1", - "path": "0", - "value": "0x0" - }, - "732": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "DUP1", - "path": "0" - }, - "733": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "REVERT", - "path": "0" - }, - "734": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "JUMPDEST", - "path": "0" - }, - "735": { - "op": "POP" - }, - "736": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "PUSH2", - "path": "0", - "value": "0x123" - }, - "739": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "PUSH2", - "path": "0", - "value": "0x2ED" - }, - "742": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "CALLDATASIZE", - "path": "0" - }, - "743": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "PUSH1", - "path": "0", - "value": "0x4" - }, - "745": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "PUSH2", - "path": "0", - "value": "0xEFD" - }, - "748": { - "fn": "AccessControlUpgradeable.renounceRole", - "jump": "i", - "offset": [ - 5734, - 5948 - ], - "op": "JUMP", - "path": "0" - }, - "749": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "JUMPDEST", - "path": "0" - }, - "750": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "PUSH2", - "path": "0", - "value": "0x5AC" - }, - "753": { - "fn": "AccessControlUpgradeable.renounceRole", - "jump": "i", - "offset": [ - 5734, - 5948 - ], - "op": "JUMP", - "path": "0" - }, - "754": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "JUMPDEST", - "path": "30" - }, - "755": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "CALLVALUE", - "path": "30" - }, - "756": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "DUP1", - "path": "30" - }, - "757": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "ISZERO", - "path": "30" - }, - "758": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "PUSH2", - "path": "30", - "value": "0x2FE" - }, - "761": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "JUMPI", - "path": "30" - }, - "762": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "764": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "DUP1", - "path": "30" - }, - "765": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "REVERT", - "path": "30" - }, - "766": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "JUMPDEST", - "path": "30" - }, - "767": { - "op": "POP" - }, - "768": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "PUSH2", - "path": "30", - "value": "0x123" - }, - "771": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "PUSH2", - "path": "30", - "value": "0x30D" - }, - "774": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "CALLDATASIZE", - "path": "30" - }, - "775": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "PUSH1", - "path": "30", - "value": "0x4" - }, - "777": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "PUSH2", - "path": "30", - "value": "0xEAC" - }, - "780": { - "fn": "SubscriptionManager.setFeeRate", - "jump": "i", - "offset": [ - 4266, - 4387 - ], - "op": "JUMP", - "path": "30" - }, - "781": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "JUMPDEST", - "path": "30" - }, - "782": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "PUSH2", - "path": "30", - "value": "0x62A" - }, - "785": { - "fn": "SubscriptionManager.setFeeRate", - "jump": "i", - "offset": [ - 4266, - 4387 - ], - "op": "JUMP", - "path": "30" - }, - "786": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 1964, - 2539 - ], - "op": "JUMPDEST", - "path": "30" - }, - "787": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 1964, - 2539 - ], - "op": "PUSH2", - "path": "30", - "value": "0x123" - }, - "790": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 1964, - 2539 - ], - "op": "PUSH2", - "path": "30", - "value": "0x320" - }, - "793": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 1964, - 2539 - ], - "op": "CALLDATASIZE", - "path": "30" - }, - "794": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 1964, - 2539 - ], - "op": "PUSH1", - "path": "30", - "value": "0x4" - }, - "796": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 1964, - 2539 - ], - "op": "PUSH2", - "path": "30", - "value": "0xF53" - }, - "799": { - "fn": "SubscriptionManager.createPolicy", - "jump": "i", - "offset": [ - 1964, - 2539 - ], - "op": "JUMP", - "path": "30" - }, - "800": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 1964, - 2539 - ], - "op": "JUMPDEST", - "path": "30" - }, - "801": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 1964, - 2539 - ], - "op": "PUSH2", - "path": "30", - "value": "0x65E" - }, - "804": { - "fn": "SubscriptionManager.createPolicy", - "jump": "i", - "offset": [ - 1964, - 2539 - ], - "op": "JUMP", - "path": "30" - }, - "805": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "JUMPDEST", - "path": "30" - }, - "806": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "CALLVALUE", - "path": "30" - }, - "807": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "DUP1", - "path": "30" - }, - "808": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "ISZERO", - "path": "30" - }, - "809": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "PUSH2", - "path": "30", - "value": "0x331" - }, - "812": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "JUMPI", - "path": "30" - }, - "813": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "815": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "DUP1", - "path": "30" - }, - "816": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "REVERT", - "path": "30" - }, - "817": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "JUMPDEST", - "path": "30" - }, - "818": { - "op": "POP" - }, - "819": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "PUSH2", - "path": "30", - "value": "0x18A" - }, - "822": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "PUSH2", - "path": "30", - "value": "0x340" - }, - "825": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "CALLDATASIZE", - "path": "30" - }, - "826": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "PUSH1", - "path": "30", - "value": "0x4" - }, - "828": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "PUSH2", - "path": "30", - "value": "0xFBA" - }, - "831": { - "fn": "SubscriptionManager.getPolicyCost", - "jump": "i", - "offset": [ - 1603, - 1958 - ], - "op": "JUMP", - "path": "30" - }, - "832": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "JUMPDEST", - "path": "30" - }, - "833": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "PUSH2", - "path": "30", - "value": "0x723" - }, - "836": { - "fn": "SubscriptionManager.getPolicyCost", - "jump": "i", - "offset": [ - 1603, - 1958 - ], - "op": "JUMP", - "path": "30" - }, - "837": { - "offset": [ - 310, - 397 - ], - "op": "JUMPDEST", - "path": "30" - }, - "838": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 310, - 397 - ], - "op": "CALLVALUE", - "path": "30" - }, - "839": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 310, - 397 - ], - "op": "DUP1", - "path": "30" - }, - "840": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 310, - 397 - ], - "op": "ISZERO", - "path": "30" - }, - "841": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 310, - 397 - ], - "op": "PUSH2", - "path": "30", - "value": "0x351" - }, - "844": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 310, - 397 - ], - "op": "JUMPI", - "path": "30" - }, - "845": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 310, - 397 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "847": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 310, - 397 - ], - "op": "DUP1", - "path": "30" - }, - "848": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 310, - 397 - ], - "op": "REVERT", - "path": "30" - }, - "849": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 310, - 397 - ], - "op": "JUMPDEST", - "path": "30" - }, - "850": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 310, - 397 - ], - "op": "POP", - "path": "30" - }, - "851": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 310, - 397 - ], - "op": "PUSH2", - "path": "30", - "value": "0x18A" - }, - "854": { - "offset": [ - 359, - 397 - ], - "op": "PUSH32", - "path": "30", - "value": "0x637CA263F44C0A7E4A3B057E26C82C5667C084AA950864A2916355C481F6A097" - }, - "887": { - "offset": [ - 310, - 397 - ], - "op": "DUP2", - "path": "30" - }, - "888": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 310, - 397 - ], - "op": "JUMP", - "path": "30" - }, - "889": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "JUMPDEST", - "path": "30" - }, - "890": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "CALLVALUE", - "path": "30" - }, - "891": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "DUP1", - "path": "30" - }, - "892": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "ISZERO", - "path": "30" - }, - "893": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "PUSH2", - "path": "30", - "value": "0x385" - }, - "896": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "JUMPI", - "path": "30" - }, - "897": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "899": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "DUP1", - "path": "30" - }, - "900": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "REVERT", - "path": "30" - }, - "901": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "JUMPDEST", - "path": "30" - }, - "902": { - "op": "POP" - }, - "903": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "PUSH2", - "path": "30", - "value": "0x145" - }, - "906": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "PUSH2", - "path": "30", - "value": "0x394" - }, - "909": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "CALLDATASIZE", - "path": "30" - }, - "910": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "PUSH1", - "path": "30", - "value": "0x4" - }, - "912": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "PUSH2", - "path": "30", - "value": "0xEE2" - }, - "915": { - "fn": "SubscriptionManager.isPolicyActive", - "jump": "i", - "offset": [ - 3953, - 4096 - ], - "op": "JUMP", - "path": "30" - }, - "916": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "JUMPDEST", - "path": "30" - }, - "917": { - "op": "PUSH1", - "value": "0x1" - }, - "919": { - "op": "PUSH1", - "value": "0x1" - }, - "921": { - "op": "PUSH1", - "value": "0x80" - }, - "923": { - "op": "SHL" - }, - "924": { - "op": "SUB" - }, - "925": { - "op": "NOT" - }, - "926": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4058 - ], - "op": "AND", - "path": "30", - "statement": 2 - }, - "927": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4016, - 4020 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "929": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4058 - ], - "op": "SWAP1", - "path": "30" - }, - "930": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4058 - ], - "op": "DUP2", - "path": "30" - }, - "931": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4058 - ], - "op": "MSTORE", - "path": "30" - }, - "932": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4047 - ], - "op": "PUSH1", - "path": "30", - "value": "0x98" - }, - "934": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4058 - ], - "op": "PUSH1", - "path": "30", - "value": "0x20" - }, - "936": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4058 - ], - "op": "MSTORE", - "path": "30" - }, - "937": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4058 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "939": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4058 - ], - "op": "SWAP1", - "path": "30" - }, - "940": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4058 - ], - "op": "KECCAK256", - "path": "30" - }, - "941": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4071 - ], - "op": "SLOAD", - "path": "30" - }, - "942": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4074, - 4089 - ], - "op": "TIMESTAMP", - "path": "30" - }, - "943": { - "op": "PUSH1", - "value": "0x1" - }, - "945": { - "op": "PUSH1", - "value": "0xC0" - }, - "947": { - "op": "SHL" - }, - "948": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4071 - ], - "op": "SWAP1", - "path": "30" - }, - "949": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4071 - ], - "op": "SWAP2", - "path": "30" - }, - "950": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4071 - ], - "op": "DIV", - "path": "30" - }, - "951": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4071 - ], - "op": "PUSH4", - "path": "30", - "value": "0xFFFFFFFF" - }, - "956": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4071 - ], - "op": "AND", - "path": "30" - }, - "957": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4089 - ], - "op": "GT", - "path": "30" - }, - "958": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 4038, - 4089 - ], - "op": "SWAP1", - "path": "30" - }, - "959": { - "fn": "SubscriptionManager.isPolicyActive", - "offset": [ - 3953, - 4096 - ], - "op": "JUMP", - "path": "30" - }, - "960": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "JUMPDEST", - "path": "0" - }, - "961": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "CALLVALUE", - "path": "0" - }, - "962": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "DUP1", - "path": "0" - }, - "963": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "ISZERO", - "path": "0" - }, - "964": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "PUSH2", - "path": "0", - "value": "0x3CC" - }, - "967": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "JUMPI", - "path": "0" - }, - "968": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "PUSH1", - "path": "0", - "value": "0x0" - }, - "970": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "DUP1", - "path": "0" - }, - "971": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "REVERT", - "path": "0" - }, - "972": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "JUMPDEST", - "path": "0" - }, - "973": { - "op": "POP" - }, - "974": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "PUSH2", - "path": "0", - "value": "0x145" - }, - "977": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "PUSH2", - "path": "0", - "value": "0x3DB" - }, - "980": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "CALLDATASIZE", - "path": "0" - }, - "981": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "PUSH1", - "path": "0", - "value": "0x4" - }, - "983": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "PUSH2", - "path": "0", - "value": "0xEFD" - }, - "986": { - "fn": "AccessControlUpgradeable.hasRole", - "jump": "i", - "offset": [ - 3217, - 3362 - ], - "op": "JUMP", - "path": "0" - }, - "987": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "JUMPDEST", - "path": "0" - }, - "988": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "PUSH2", - "path": "0", - "value": "0x7F3" - }, - "991": { - "fn": "AccessControlUpgradeable.hasRole", - "jump": "i", - "offset": [ - 3217, - 3362 - ], - "op": "JUMP", - "path": "0" - }, - "992": { - "offset": [ - 1212, - 1234 - ], - "op": "JUMPDEST", - "path": "30" - }, - "993": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "CALLVALUE", - "path": "30" - }, - "994": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "DUP1", - "path": "30" - }, - "995": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "ISZERO", - "path": "30" - }, - "996": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "PUSH2", - "path": "30", - "value": "0x3EC" - }, - "999": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "JUMPI", - "path": "30" - }, - "1000": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "1002": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "DUP1", - "path": "30" - }, - "1003": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "REVERT", - "path": "30" - }, - "1004": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1005": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "POP", - "path": "30" - }, - "1006": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "PUSH2", - "path": "30", - "value": "0x18A" - }, - "1009": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "PUSH1", - "path": "30", - "value": "0x97" - }, - "1011": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "SLOAD", - "path": "30" - }, - "1012": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "DUP2", - "path": "30" - }, - "1013": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 1212, - 1234 - ], - "op": "JUMP", - "path": "30" - }, - "1014": { - "offset": [ - 2324, - 2373 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1015": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 2324, - 2373 - ], - "op": "CALLVALUE", - "path": "0" - }, - "1016": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 2324, - 2373 - ], - "op": "DUP1", - "path": "0" - }, - "1017": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 2324, - 2373 - ], - "op": "ISZERO", - "path": "0" - }, - "1018": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 2324, - 2373 - ], - "op": "PUSH2", - "path": "0", - "value": "0x402" - }, - "1021": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 2324, - 2373 - ], - "op": "JUMPI", - "path": "0" - }, - "1022": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 2324, - 2373 - ], - "op": "PUSH1", - "path": "0", - "value": "0x0" - }, - "1024": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 2324, - 2373 - ], - "op": "DUP1", - "path": "0" - }, - "1025": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 2324, - 2373 - ], - "op": "REVERT", - "path": "0" - }, - "1026": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 2324, - 2373 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1027": { - "op": "POP" - }, - "1028": { - "offset": [ - 2324, - 2373 - ], - "op": "PUSH2", - "path": "0", - "value": "0x18A" - }, - "1031": { - "offset": [ - 2369, - 2373 - ], - "op": "PUSH1", - "path": "0", - "value": "0x0" - }, - "1033": { - "offset": [ - 2324, - 2373 - ], - "op": "DUP2", - "path": "0" - }, - "1034": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 2324, - 2373 - ], - "op": "JUMP", - "path": "0" - }, - "1035": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1036": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "CALLVALUE", - "path": "0" - }, - "1037": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "DUP1", - "path": "0" - }, - "1038": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "ISZERO", - "path": "0" - }, - "1039": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "PUSH2", - "path": "0", - "value": "0x417" - }, - "1042": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "JUMPI", - "path": "0" - }, - "1043": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "PUSH1", - "path": "0", - "value": "0x0" - }, - "1045": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "DUP1", - "path": "0" - }, - "1046": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "REVERT", - "path": "0" - }, - "1047": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1048": { - "op": "POP" - }, - "1049": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "PUSH2", - "path": "0", - "value": "0x123" - }, - "1052": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "PUSH2", - "path": "0", - "value": "0x426" - }, - "1055": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "CALLDATASIZE", - "path": "0" - }, - "1056": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "PUSH1", - "path": "0", - "value": "0x4" - }, - "1058": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "PUSH2", - "path": "0", - "value": "0xEFD" - }, - "1061": { - "fn": "AccessControlUpgradeable.revokeRole", - "jump": "i", - "offset": [ - 5096, - 5243 - ], - "op": "JUMP", - "path": "0" - }, - "1062": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1063": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "PUSH2", - "path": "0", - "value": "0x81E" - }, - "1066": { - "fn": "AccessControlUpgradeable.revokeRole", - "jump": "i", - "offset": [ - 5096, - 5243 - ], - "op": "JUMP", - "path": "0" - }, - "1067": { - "offset": [ - 403, - 513 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1068": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 403, - 513 - ], - "op": "CALLVALUE", - "path": "30" - }, - "1069": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 403, - 513 - ], - "op": "DUP1", - "path": "30" - }, - "1070": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 403, - 513 - ], - "op": "ISZERO", - "path": "30" - }, - "1071": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 403, - 513 - ], - "op": "PUSH2", - "path": "30", - "value": "0x437" - }, - "1074": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 403, - 513 - ], - "op": "JUMPI", - "path": "30" - }, - "1075": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 403, - 513 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "1077": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 403, - 513 - ], - "op": "DUP1", - "path": "30" - }, - "1078": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 403, - 513 - ], - "op": "REVERT", - "path": "30" - }, - "1079": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 403, - 513 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1080": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 403, - 513 - ], - "op": "POP", - "path": "30" - }, - "1081": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 403, - 513 - ], - "op": "PUSH2", - "path": "30", - "value": "0x18A" - }, - "1084": { - "offset": [ - 452, - 513 - ], - "op": "PUSH32", - "path": "30", - "value": "0xC1F0C13D12A4CA09AADA5725E24C49160E8F198A4CA0D2BD4DAFC9C5C12E6A35" - }, - "1117": { - "offset": [ - 403, - 513 - ], - "op": "DUP2", - "path": "30" - }, - "1118": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 403, - 513 - ], - "op": "JUMP", - "path": "30" - }, - "1119": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1120": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "CALLVALUE", - "path": "30" - }, - "1121": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "DUP1", - "path": "30" - }, - "1122": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "ISZERO", - "path": "30" - }, - "1123": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "PUSH2", - "path": "30", - "value": "0x46B" - }, - "1126": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "JUMPI", - "path": "30" - }, - "1127": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "1129": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "DUP1", - "path": "30" - }, - "1130": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "REVERT", - "path": "30" - }, - "1131": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1132": { - "op": "POP" - }, - "1133": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "PUSH2", - "path": "30", - "value": "0x123" - }, - "1136": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "PUSH2", - "path": "30", - "value": "0x47A" - }, - "1139": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "CALLDATASIZE", - "path": "30" - }, - "1140": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "PUSH1", - "path": "30", - "value": "0x4" - }, - "1142": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "PUSH2", - "path": "30", - "value": "0xEAC" - }, - "1145": { - "fn": "SubscriptionManager.initialize", - "jump": "i", - "offset": [ - 1356, - 1597 - ], - "op": "JUMP", - "path": "30" - }, - "1146": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1147": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "PUSH2", - "path": "30", - "value": "0x844" - }, - "1150": { - "fn": "SubscriptionManager.initialize", - "jump": "i", - "offset": [ - 1356, - 1597 - ], - "op": "JUMP", - "path": "30" - }, - "1151": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1152": { - "offset": [ - 452, - 513 - ], - "op": "PUSH32", - "path": "30", - "value": "0xC1F0C13D12A4CA09AADA5725E24C49160E8F198A4CA0D2BD4DAFC9C5C12E6A35" - }, - "1185": { - "offset": [ - 2802, - 2832 - ], - "op": "PUSH2", - "path": "0", - "value": "0x4AA" - }, - "1188": { - "offset": [ - 452, - 513 - ], - "op": "DUP2", - "path": "30" - }, - "1189": { - "fn": "ContextUpgradeable._msgSender", - "offset": [ - 929, - 939 - ], - "op": "CALLER", - "path": "4", - "statement": 3 - }, - "1190": { - "offset": [ - 2802, - 2812 - ], - "op": "PUSH2", - "path": "0", - "value": "0x965" - }, - "1193": { - "jump": "i", - "offset": [ - 2802, - 2832 - ], - "op": "JUMP", - "path": "0" - }, - "1194": { - "fn": "ContextUpgradeable._msgSender", - "offset": [ - 2802, - 2832 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1195": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "1197": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "MLOAD", - "path": "30" - }, - "1198": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4496, - 4517 - ], - "op": "SELFBALANCE", - "path": "30" - }, - "1199": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4496, - 4517 - ], - "op": "SWAP1", - "path": "30" - }, - "1200": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4478, - 4493 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "1202": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4478, - 4493 - ], - "op": "SWAP1", - "path": "30" - }, - "1203": { - "op": "PUSH1", - "value": "0x1" - }, - "1205": { - "op": "PUSH1", - "value": "0x1" - }, - "1207": { - "op": "PUSH1", - "value": "0xA0" - }, - "1209": { - "op": "SHL" - }, - "1210": { - "op": "SUB" - }, - "1211": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4557 - ], - "op": "DUP6", - "path": "30" - }, - "1212": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4557 - ], - "op": "AND", - "path": "30" - }, - "1213": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4557 - ], - "op": "SWAP1", - "path": "30" - }, - "1214": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4496, - 4517 - ], - "op": "DUP4", - "path": "30" - }, - "1215": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4496, - 4517 - ], - "op": "SWAP1", - "path": "30" - }, - "1216": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4478, - 4493 - ], - "op": "DUP4", - "path": "30" - }, - "1217": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "DUP2", - "path": "30" - }, - "1218": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4478, - 4493 - ], - "op": "DUP2", - "path": "30" - }, - "1219": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "DUP2", - "path": "30" - }, - "1220": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4496, - 4517 - ], - "op": "DUP6", - "path": "30" - }, - "1221": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4557 - ], - "op": "DUP8", - "path": "30" - }, - "1222": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "GAS", - "path": "30" - }, - "1223": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "CALL", - "path": "30" - }, - "1224": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "SWAP3", - "path": "30" - }, - "1225": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "POP", - "path": "30" - }, - "1226": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "POP", - "path": "30" - }, - "1227": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "POP", - "path": "30" - }, - "1228": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "RETURNDATASIZE", - "path": "30" - }, - "1229": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "DUP1", - "path": "30" - }, - "1230": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "1232": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "DUP2", - "path": "30" - }, - "1233": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "EQ", - "path": "30" - }, - "1234": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "PUSH2", - "path": "30", - "value": "0x4F7" - }, - "1237": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "JUMPI", - "path": "30" - }, - "1238": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "1240": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "MLOAD", - "path": "30" - }, - "1241": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "SWAP2", - "path": "30" - }, - "1242": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "POP", - "path": "30" - }, - "1243": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "PUSH1", - "path": "30", - "value": "0x1F" - }, - "1245": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "NOT", - "path": "30" - }, - "1246": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "PUSH1", - "path": "30", - "value": "0x3F" - }, - "1248": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "RETURNDATASIZE", - "path": "30" - }, - "1249": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "ADD", - "path": "30" - }, - "1250": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "AND", - "path": "30" - }, - "1251": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "DUP3", - "path": "30" - }, - "1252": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "ADD", - "path": "30" - }, - "1253": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "1255": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "MSTORE", - "path": "30" - }, - "1256": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "RETURNDATASIZE", - "path": "30" - }, - "1257": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "DUP3", - "path": "30" - }, - "1258": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "MSTORE", - "path": "30" - }, - "1259": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "RETURNDATASIZE", - "path": "30" - }, - "1260": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "1262": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "PUSH1", - "path": "30", - "value": "0x20" - }, - "1264": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "DUP5", - "path": "30" - }, - "1265": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "ADD", - "path": "30" - }, - "1266": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "RETURNDATACOPY", - "path": "30" - }, - "1267": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "PUSH2", - "path": "30", - "value": "0x4FC" - }, - "1270": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "JUMP", - "path": "30" - }, - "1271": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1272": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "PUSH1", - "path": "30", - "value": "0x60" - }, - "1274": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "SWAP2", - "path": "30" - }, - "1275": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "POP", - "path": "30" - }, - "1276": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1277": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4543, - 4577 - ], - "op": "POP", - "path": "30" - }, - "1278": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4527, - 4577 - ], - "op": "POP", - "path": "30" - }, - "1279": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4527, - 4577 - ], - "op": "SWAP1", - "path": "30" - }, - "1280": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4527, - 4577 - ], - "op": "POP", - "path": "30" - }, - "1281": { - "branch": 40, - "fn": "SubscriptionManager.sweep", - "offset": [ - 4595, - 4599 - ], - "op": "DUP1", - "path": "30", - "statement": 4 - }, - "1282": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "PUSH2", - "path": "30", - "value": "0x544" - }, - "1285": { - "branch": 40, - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "JUMPI", - "path": "30" - }, - "1286": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "1288": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "MLOAD", - "path": "30" - }, - "1289": { - "op": "PUSH3", - "value": "0x461BCD" - }, - "1293": { - "op": "PUSH1", - "value": "0xE5" - }, - "1295": { - "op": "SHL" - }, - "1296": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "DUP2", - "path": "30" - }, - "1297": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "MSTORE", - "path": "30" - }, - "1298": { - "op": "PUSH1", - "value": "0x20" - }, - "1300": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "PUSH1", - "path": "30", - "value": "0x4" - }, - "1302": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "DUP3", - "path": "30" - }, - "1303": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "ADD", - "path": "30" - }, - "1304": { - "op": "MSTORE" - }, - "1305": { - "op": "PUSH1", - "value": "0xF" - }, - "1307": { - "op": "PUSH1", - "value": "0x24" - }, - "1309": { - "op": "DUP3" - }, - "1310": { - "op": "ADD" - }, - "1311": { - "op": "MSTORE" - }, - "1312": { - "op": "PUSH15", - "value": "0x2330B4B632B2103A3930B739B332B9" - }, - "1328": { - "op": "PUSH1", - "value": "0x89" - }, - "1330": { - "op": "SHL" - }, - "1331": { - "op": "PUSH1", - "value": "0x44" - }, - "1333": { - "op": "DUP3" - }, - "1334": { - "op": "ADD" - }, - "1335": { - "op": "MSTORE" - }, - "1336": { - "op": "PUSH1", - "value": "0x64" - }, - "1338": { - "op": "ADD" - }, - "1339": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1340": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "1342": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "MLOAD", - "path": "30" - }, - "1343": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "DUP1", - "path": "30" - }, - "1344": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "SWAP2", - "path": "30" - }, - "1345": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "SUB", - "path": "30" - }, - "1346": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "SWAP1", - "path": "30" - }, - "1347": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "REVERT", - "optimizer_revert": true, - "path": "30" - }, - "1348": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4587, - 4619 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1349": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4468, - 4626 - ], - "op": "POP", - "path": "30" - }, - "1350": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4468, - 4626 - ], - "op": "POP", - "path": "30" - }, - "1351": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "POP", - "path": "30" - }, - "1352": { - "fn": "SubscriptionManager.sweep", - "offset": [ - 4393, - 4626 - ], - "op": "POP", - "path": "30" - }, - "1353": { - "fn": "SubscriptionManager.sweep", - "jump": "o", - "offset": [ - 4393, - 4626 - ], - "op": "JUMP", - "path": "30" - }, - "1354": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1355": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 3002, - 3006 - ], - "op": "PUSH1", - "path": "0", - "value": "0x0" - }, - "1357": { - "op": "PUSH1", - "value": "0x1" - }, - "1359": { - "op": "PUSH1", - "value": "0x1" - }, - "1361": { - "op": "PUSH1", - "value": "0xE0" - }, - "1363": { - "op": "SHL" - }, - "1364": { - "op": "SUB" - }, - "1365": { - "op": "NOT" - }, - "1366": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 3025, - 3083 - ], - "op": "DUP3", - "path": "0", - "statement": 5 - }, - "1367": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 3025, - 3083 - ], - "op": "AND", - "path": "0" - }, - "1368": { - "op": "PUSH4", - "value": "0x7965DB0B" - }, - "1373": { - "op": "PUSH1", - "value": "0xE0" - }, - "1375": { - "op": "SHL" - }, - "1376": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 3025, - 3083 - ], - "op": "EQ", - "path": "0" - }, - "1377": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 3025, - 3083 - ], - "op": "DUP1", - "path": "0" - }, - "1378": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 3025, - 3123 - ], - "op": "PUSH2", - "path": "0", - "value": "0x57B" - }, - "1381": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 3025, - 3123 - ], - "op": "JUMPI", - "path": "0" - }, - "1382": { - "op": "POP" - }, - "1383": { - "op": "PUSH4", - "value": "0x1FFC9A7" - }, - "1388": { - "op": "PUSH1", - "value": "0xE0" - }, - "1390": { - "op": "SHL" - }, - "1391": { - "op": "PUSH1", - "value": "0x1" - }, - "1393": { - "op": "PUSH1", - "value": "0x1" - }, - "1395": { - "op": "PUSH1", - "value": "0xE0" - }, - "1397": { - "op": "SHL" - }, - "1398": { - "op": "SUB" - }, - "1399": { - "op": "NOT" - }, - "1400": { - "fn": "ERC165Upgradeable.supportsInterface", - "offset": [ - 1168, - 1219 - ], - "op": "DUP4", - "path": "6", - "statement": 6 - }, - "1401": { - "fn": "ERC165Upgradeable.supportsInterface", - "offset": [ - 1168, - 1219 - ], - "op": "AND", - "path": "6" - }, - "1402": { - "fn": "ERC165Upgradeable.supportsInterface", - "offset": [ - 1168, - 1219 - ], - "op": "EQ", - "path": "6" - }, - "1403": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 3087, - 3123 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1404": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 3018, - 3123 - ], - "op": "SWAP3", - "path": "0" - }, - "1405": { - "fn": "AccessControlUpgradeable.supportsInterface", - "offset": [ - 2917, - 3130 - ], - "op": "SWAP2", - "path": "0" - }, - "1406": { - "op": "POP" - }, - "1407": { - "op": "POP" - }, - "1408": { - "fn": "AccessControlUpgradeable.supportsInterface", - "jump": "o", - "offset": [ - 2917, - 3130 - ], - "op": "JUMP", - "path": "0" - }, - "1409": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1410": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4412, - 4419 - ], - "op": "PUSH1", - "path": "0", - "value": "0x0" - }, - "1412": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "DUP3", - "path": "0" - }, - "1413": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "DUP2", - "path": "0" - }, - "1414": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "MSTORE", - "path": "0" - }, - "1415": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4444 - ], - "op": "PUSH1", - "path": "0", - "value": "0x65" - }, - "1417": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "PUSH1", - "path": "0", - "value": "0x20" - }, - "1419": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "MSTORE", - "path": "0" - }, - "1420": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "PUSH1", - "path": "0", - "value": "0x40" - }, - "1422": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "SWAP1", - "path": "0" - }, - "1423": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "KECCAK256", - "path": "0" - }, - "1424": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4460 - ], - "op": "PUSH1", - "path": "0", - "value": "0x1" - }, - "1426": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4460 - ], - "op": "ADD", - "path": "0" - }, - "1427": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4460 - ], - "op": "SLOAD", - "path": "0" - }, - "1428": { - "offset": [ - 2802, - 2832 - ], - "op": "PUSH2", - "path": "0", - "value": "0x59D" - }, - "1431": { - "offset": [ - 2813, - 2817 - ], - "op": "DUP2", - "path": "0" - }, - "1432": { - "fn": "ContextUpgradeable._msgSender", - "offset": [ - 929, - 939 - ], - "op": "CALLER", - "path": "4" - }, - "1433": { - "offset": [ - 2802, - 2812 - ], - "op": "PUSH2", - "path": "0", - "value": "0x965" - }, - "1436": { - "jump": "i", - "offset": [ - 2802, - 2832 - ], - "op": "JUMP", - "path": "0" - }, - "1437": { - "fn": "ContextUpgradeable._msgSender", - "offset": [ - 2802, - 2832 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1438": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4830, - 4855 - ], - "op": "PUSH2", - "path": "0", - "statement": 7, - "value": "0x5A7" - }, - "1441": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4841, - 4845 - ], - "op": "DUP4", - "path": "0" - }, - "1442": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4847, - 4854 - ], - "op": "DUP4", - "path": "0" - }, - "1443": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4830, - 4840 - ], - "op": "PUSH2", - "path": "0", - "value": "0x9C9" - }, - "1446": { - "fn": "AccessControlUpgradeable.grantRole", - "jump": "i", - "offset": [ - 4830, - 4855 - ], - "op": "JUMP", - "path": "0" - }, - "1447": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4830, - 4855 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1448": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "POP", - "path": "0" - }, - "1449": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "POP", - "path": "0" - }, - "1450": { - "fn": "AccessControlUpgradeable.grantRole", - "offset": [ - 4717, - 4862 - ], - "op": "POP", - "path": "0" - }, - "1451": { - "fn": "AccessControlUpgradeable.grantRole", - "jump": "o", - "offset": [ - 4717, - 4862 - ], - "op": "JUMP", - "path": "0" - }, - "1452": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1453": { - "op": "PUSH1", - "value": "0x1" - }, - "1455": { - "op": "PUSH1", - "value": "0x1" - }, - "1457": { - "op": "PUSH1", - "value": "0xA0" - }, - "1459": { - "op": "SHL" - }, - "1460": { - "op": "SUB" - }, - "1461": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5829, - 5852 - ], - "op": "DUP2", - "path": "0", - "statement": 8 - }, - "1462": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5829, - 5852 - ], - "op": "AND", - "path": "0" - }, - "1463": { - "fn": "ContextUpgradeable._msgSender", - "offset": [ - 929, - 939 - ], - "op": "CALLER", - "path": "4" - }, - "1464": { - "branch": 50, - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5829, - 5852 - ], - "op": "EQ", - "path": "0" - }, - "1465": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5821, - 5904 - ], - "op": "PUSH2", - "path": "0", - "value": "0x61C" - }, - "1468": { - "branch": 50, - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5821, - 5904 - ], - "op": "JUMPI", - "path": "0" - }, - "1469": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5821, - 5904 - ], - "op": "PUSH1", - "path": "0", - "value": "0x40" - }, - "1471": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5821, - 5904 - ], - "op": "MLOAD", - "path": "0" - }, - "1472": { - "op": "PUSH3", - "value": "0x461BCD" - }, - "1476": { - "op": "PUSH1", - "value": "0xE5" - }, - "1478": { - "op": "SHL" - }, - "1479": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5821, - 5904 - ], - "op": "DUP2", - "path": "0" - }, - "1480": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5821, - 5904 - ], - "op": "MSTORE", - "path": "0" - }, - "1481": { - "op": "PUSH1", - "value": "0x20" - }, - "1483": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5821, - 5904 - ], - "op": "PUSH1", - "path": "0", - "value": "0x4" - }, - "1485": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5821, - 5904 - ], - "op": "DUP3", - "path": "0" - }, - "1486": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5821, - 5904 - ], - "op": "ADD", - "path": "0" - }, - "1487": { - "op": "MSTORE" - }, - "1488": { - "op": "PUSH1", - "value": "0x2F" - }, - "1490": { - "op": "PUSH1", - "value": "0x24" - }, - "1492": { - "op": "DUP3" - }, - "1493": { - "op": "ADD" - }, - "1494": { - "op": "MSTORE" - }, - "1495": { - "op": "PUSH32", - "value": "0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365" - }, - "1528": { - "op": "PUSH1", - "value": "0x44" - }, - "1530": { - "op": "DUP3" - }, - "1531": { - "op": "ADD" - }, - "1532": { - "op": "MSTORE" - }, - "1533": { - "op": "PUSH15", - "value": "0x103937B632B9903337B91039B2B633" - }, - "1549": { - "op": "PUSH1", - "value": "0x89" - }, - "1551": { - "op": "SHL" - }, - "1552": { - "op": "PUSH1", - "value": "0x64" - }, - "1554": { - "op": "DUP3" - }, - "1555": { - "op": "ADD" - }, - "1556": { - "op": "MSTORE" - }, - "1557": { - "op": "PUSH1", - "value": "0x84" - }, - "1559": { - "op": "ADD" - }, - "1560": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5821, - 5904 - ], - "op": "PUSH2", - "path": "0", - "value": "0x53B" - }, - "1563": { - "op": "JUMP" - }, - "1564": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5821, - 5904 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1565": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5915, - 5941 - ], - "op": "PUSH2", - "path": "0", - "statement": 9, - "value": "0x626" - }, - "1568": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5927, - 5931 - ], - "op": "DUP3", - "path": "0" - }, - "1569": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5933, - 5940 - ], - "op": "DUP3", - "path": "0" - }, - "1570": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5915, - 5926 - ], - "op": "PUSH2", - "path": "0", - "value": "0xA4F" - }, - "1573": { - "fn": "AccessControlUpgradeable.renounceRole", - "jump": "i", - "offset": [ - 5915, - 5941 - ], - "op": "JUMP", - "path": "0" - }, - "1574": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5915, - 5941 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1575": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "POP", - "path": "0" - }, - "1576": { - "fn": "AccessControlUpgradeable.renounceRole", - "offset": [ - 5734, - 5948 - ], - "op": "POP", - "path": "0" - }, - "1577": { - "fn": "AccessControlUpgradeable.renounceRole", - "jump": "o", - "offset": [ - 5734, - 5948 - ], - "op": "JUMP", - "path": "0" - }, - "1578": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4266, - 4387 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1579": { - "offset": [ - 359, - 397 - ], - "op": "PUSH32", - "path": "30", - "value": "0x637CA263F44C0A7E4A3B057E26C82C5667C084AA950864A2916355C481F6A097" - }, - "1612": { - "offset": [ - 2802, - 2832 - ], - "op": "PUSH2", - "path": "0", - "value": "0x655" - }, - "1615": { - "offset": [ - 359, - 397 - ], - "op": "DUP2", - "path": "30" - }, - "1616": { - "fn": "ContextUpgradeable._msgSender", - "offset": [ - 929, - 939 - ], - "op": "CALLER", - "path": "4" - }, - "1617": { - "offset": [ - 2802, - 2812 - ], - "op": "PUSH2", - "path": "0", - "value": "0x965" - }, - "1620": { - "jump": "i", - "offset": [ - 2802, - 2832 - ], - "op": "JUMP", - "path": "0" - }, - "1621": { - "fn": "ContextUpgradeable._msgSender", - "offset": [ - 2802, - 2832 - ], - "op": "JUMPDEST", - "path": "0" - }, - "1622": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4353, - 4380 - ], - "op": "PUSH2", - "path": "30", - "statement": 10, - "value": "0x626" - }, - "1625": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4365, - 4379 - ], - "op": "DUP3", - "path": "30" - }, - "1626": { - "fn": "SubscriptionManager.setFeeRate", - "offset": [ - 4353, - 4364 - ], - "op": "PUSH2", - "path": "30", - "value": "0xAB6" - }, - "1629": { - "fn": "SubscriptionManager.setFeeRate", - "jump": "i", - "offset": [ - 4353, - 4380 - ], - "op": "JUMP", - "path": "30" - }, - "1630": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 1964, - 2539 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1631": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2211, - 2224 - ], - "op": "DUP1", - "path": "30", - "statement": 11 - }, - "1632": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2193, - 2224 - ], - "op": "PUSH4", - "path": "30", - "value": "0xFFFFFFFF" - }, - "1637": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2193, - 2224 - ], - "op": "AND", - "path": "30" - }, - "1638": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2193, - 2208 - ], - "op": "DUP3", - "path": "30" - }, - "1639": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2193, - 2224 - ], - "op": "PUSH4", - "path": "30", - "value": "0xFFFFFFFF" - }, - "1644": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2193, - 2224 - ], - "op": "AND", - "path": "30" - }, - "1645": { - "branch": 41, - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2193, - 2224 - ], - "op": "LT", - "path": "30" - }, - "1646": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2193, - 2259 - ], - "op": "DUP1", - "path": "30" - }, - "1647": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2193, - 2259 - ], - "op": "ISZERO", - "path": "30" - }, - "1648": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2193, - 2259 - ], - "op": "PUSH2", - "path": "30", - "value": "0x67E" - }, - "1651": { - "branch": 41, - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2193, - 2259 - ], - "op": "JUMPI", - "path": "30" - }, - "1652": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2193, - 2259 - ], - "op": "POP", - "path": "30" - }, - "1653": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2246, - 2259 - ], - "op": "DUP1", - "path": "30" - }, - "1654": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2228, - 2259 - ], - "op": "PUSH4", - "path": "30", - "value": "0xFFFFFFFF" - }, - "1659": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2228, - 2259 - ], - "op": "AND", - "path": "30" - }, - "1660": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2228, - 2243 - ], - "op": "TIMESTAMP", - "path": "30" - }, - "1661": { - "branch": 42, - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2228, - 2259 - ], - "op": "LT", - "path": "30" - }, - "1662": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2193, - 2259 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1663": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2172, - 2303 - ], - "op": "PUSH2", - "path": "30", - "value": "0x6BF" - }, - "1666": { - "branch": 42, - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2172, - 2303 - ], - "op": "JUMPI", - "path": "30" - }, - "1667": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2172, - 2303 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "1669": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2172, - 2303 - ], - "op": "MLOAD", - "path": "30" - }, - "1670": { - "op": "PUSH3", - "value": "0x461BCD" - }, - "1674": { - "op": "PUSH1", - "value": "0xE5" - }, - "1676": { - "op": "SHL" - }, - "1677": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2172, - 2303 - ], - "op": "DUP2", - "path": "30" - }, - "1678": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2172, - 2303 - ], - "op": "MSTORE", - "path": "30" - }, - "1679": { - "op": "PUSH1", - "value": "0x20" - }, - "1681": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2172, - 2303 - ], - "op": "PUSH1", - "path": "30", - "value": "0x4" - }, - "1683": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2172, - 2303 - ], - "op": "DUP3", - "path": "30" - }, - "1684": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2172, - 2303 - ], - "op": "ADD", - "path": "30" - }, - "1685": { - "op": "MSTORE" - }, - "1686": { - "op": "PUSH1", - "value": "0x12" - }, - "1688": { - "op": "PUSH1", - "value": "0x24" - }, - "1690": { - "op": "DUP3" - }, - "1691": { - "op": "ADD" - }, - "1692": { - "op": "MSTORE" - }, - "1693": { - "op": "PUSH18", - "value": "0x496E76616C69642074696D657374616D7073" - }, - "1712": { - "op": "PUSH1", - "value": "0x70" - }, - "1714": { - "op": "SHL" - }, - "1715": { - "op": "PUSH1", - "value": "0x44" - }, - "1717": { - "op": "DUP3" - }, - "1718": { - "op": "ADD" - }, - "1719": { - "op": "MSTORE" - }, - "1720": { - "op": "PUSH1", - "value": "0x64" - }, - "1722": { - "op": "ADD" - }, - "1723": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2172, - 2303 - ], - "op": "PUSH2", - "path": "30", - "value": "0x53B" - }, - "1726": { - "op": "JUMP" - }, - "1727": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2172, - 2303 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1728": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2347, - 2399 - ], - "op": "PUSH2", - "path": "30", - "statement": 12, - "value": "0x6CA" - }, - "1731": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2361, - 2366 - ], - "op": "DUP4", - "path": "30" - }, - "1732": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2368, - 2383 - ], - "op": "DUP4", - "path": "30" - }, - "1733": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2385, - 2398 - ], - "op": "DUP4", - "path": "30" - }, - "1734": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2347, - 2360 - ], - "op": "PUSH2", - "path": "30", - "value": "0x723" - }, - "1737": { - "fn": "SubscriptionManager.createPolicy", - "jump": "i", - "offset": [ - 2347, - 2399 - ], - "op": "JUMP", - "path": "30" - }, - "1738": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2347, - 2399 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1739": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2334, - 2343 - ], - "op": "CALLVALUE", - "path": "30" - }, - "1740": { - "branch": 43, - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2334, - 2399 - ], - "op": "EQ", - "path": "30" - }, - "1741": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2313, - 2444 - ], - "op": "PUSH2", - "path": "30", - "value": "0x70E" - }, - "1744": { - "branch": 43, - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2313, - 2444 - ], - "op": "JUMPI", - "path": "30" - }, - "1745": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2313, - 2444 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "1747": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2313, - 2444 - ], - "op": "MLOAD", - "path": "30" - }, - "1748": { - "op": "PUSH3", - "value": "0x461BCD" - }, - "1752": { - "op": "PUSH1", - "value": "0xE5" - }, - "1754": { - "op": "SHL" - }, - "1755": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2313, - 2444 - ], - "op": "DUP2", - "path": "30" - }, - "1756": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2313, - 2444 - ], - "op": "MSTORE", - "path": "30" - }, - "1757": { - "op": "PUSH1", - "value": "0x20" - }, - "1759": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2313, - 2444 - ], - "op": "PUSH1", - "path": "30", - "value": "0x4" - }, - "1761": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2313, - 2444 - ], - "op": "DUP3", - "path": "30" - }, - "1762": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2313, - 2444 - ], - "op": "ADD", - "path": "30" - }, - "1763": { - "op": "MSTORE" - }, - "1764": { - "op": "PUSH1", - "value": "0x13" - }, - "1766": { - "op": "PUSH1", - "value": "0x24" - }, - "1768": { - "op": "DUP3" - }, - "1769": { - "op": "ADD" - }, - "1770": { - "op": "MSTORE" - }, - "1771": { - "op": "PUSH19", - "value": "0x125B9D985B1A59081C1BDB1A58DE4818DBDCDD" - }, - "1791": { - "op": "PUSH1", - "value": "0x6A" - }, - "1793": { - "op": "SHL" - }, - "1794": { - "op": "PUSH1", - "value": "0x44" - }, - "1796": { - "op": "DUP3" - }, - "1797": { - "op": "ADD" - }, - "1798": { - "op": "MSTORE" - }, - "1799": { - "op": "PUSH1", - "value": "0x64" - }, - "1801": { - "op": "ADD" - }, - "1802": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2313, - 2444 - ], - "op": "PUSH2", - "path": "30", - "value": "0x53B" - }, - "1805": { - "op": "JUMP" - }, - "1806": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2313, - 2444 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1807": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2455, - 2532 - ], - "op": "PUSH2", - "path": "30", - "statement": 13, - "value": "0x71B" - }, - "1810": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2469, - 2478 - ], - "op": "DUP6", - "path": "30" - }, - "1811": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2480, - 2492 - ], - "op": "DUP6", - "path": "30" - }, - "1812": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2494, - 2499 - ], - "op": "DUP6", - "path": "30" - }, - "1813": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2501, - 2516 - ], - "op": "DUP6", - "path": "30" - }, - "1814": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2518, - 2531 - ], - "op": "DUP6", - "path": "30" - }, - "1815": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2455, - 2468 - ], - "op": "PUSH2", - "path": "30", - "value": "0xAFB" - }, - "1818": { - "fn": "SubscriptionManager.createPolicy", - "jump": "i", - "offset": [ - 2455, - 2532 - ], - "op": "JUMP", - "path": "30" - }, - "1819": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2455, - 2532 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1820": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 2455, - 2532 - ], - "op": "POP", - "path": "30" - }, - "1821": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 1964, - 2539 - ], - "op": "POP", - "path": "30" - }, - "1822": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 1964, - 2539 - ], - "op": "POP", - "path": "30" - }, - "1823": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 1964, - 2539 - ], - "op": "POP", - "path": "30" - }, - "1824": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 1964, - 2539 - ], - "op": "POP", - "path": "30" - }, - "1825": { - "fn": "SubscriptionManager.createPolicy", - "offset": [ - 1964, - 2539 - ], - "op": "POP", - "path": "30" - }, - "1826": { - "fn": "SubscriptionManager.createPolicy", - "jump": "o", - "offset": [ - 1964, - 2539 - ], - "op": "JUMP", - "path": "30" - }, - "1827": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1828": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1737, - 1744 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "1830": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1737, - 1744 - ], - "op": "DUP1", - "path": "30" - }, - "1831": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1773, - 1804 - ], - "op": "PUSH2", - "path": "30", - "value": "0x730" - }, - "1834": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1789, - 1804 - ], - "op": "DUP5", - "path": "30" - }, - "1835": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1773, - 1786 - ], - "op": "DUP5", - "path": "30" - }, - "1836": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1773, - 1804 - ], - "op": "PUSH2", - "path": "30", - "value": "0x1013" - }, - "1839": { - "fn": "SubscriptionManager.getPolicyCost", - "jump": "i", - "offset": [ - 1773, - 1804 - ], - "op": "JUMP", - "path": "30" - }, - "1840": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1773, - 1804 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1841": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1755, - 1804 - ], - "op": "SWAP1", - "path": "30" - }, - "1842": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1755, - 1804 - ], - "op": "POP", - "path": "30" - }, - "1843": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1833, - 1834 - ], - "op": "PUSH1", - "path": "30", - "statement": 14, - "value": "0x0" - }, - "1845": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1822, - 1830 - ], - "op": "DUP2", - "path": "30" - }, - "1846": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1822, - 1834 - ], - "op": "PUSH4", - "path": "30", - "value": "0xFFFFFFFF" - }, - "1851": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1822, - 1834 - ], - "op": "AND", - "path": "30" - }, - "1852": { - "branch": 44, - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1822, - 1834 - ], - "op": "GT", - "path": "30" - }, - "1853": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1814, - 1857 - ], - "op": "PUSH2", - "path": "30", - "value": "0x77D" - }, - "1856": { - "branch": 44, - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1814, - 1857 - ], - "op": "JUMPI", - "path": "30" - }, - "1857": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1814, - 1857 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "1859": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1814, - 1857 - ], - "op": "MLOAD", - "path": "30" - }, - "1860": { - "op": "PUSH3", - "value": "0x461BCD" - }, - "1864": { - "op": "PUSH1", - "value": "0xE5" - }, - "1866": { - "op": "SHL" - }, - "1867": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1814, - 1857 - ], - "op": "DUP2", - "path": "30" - }, - "1868": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1814, - 1857 - ], - "op": "MSTORE", - "path": "30" - }, - "1869": { - "op": "PUSH1", - "value": "0x20" - }, - "1871": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1814, - 1857 - ], - "op": "PUSH1", - "path": "30", - "value": "0x4" - }, - "1873": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1814, - 1857 - ], - "op": "DUP3", - "path": "30" - }, - "1874": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1814, - 1857 - ], - "op": "ADD", - "path": "30" - }, - "1875": { - "op": "MSTORE" - }, - "1876": { - "op": "PUSH1", - "value": "0x12" - }, - "1878": { - "op": "PUSH1", - "value": "0x24" - }, - "1880": { - "op": "DUP3" - }, - "1881": { - "op": "ADD" - }, - "1882": { - "op": "MSTORE" - }, - "1883": { - "op": "PUSH18", - "value": "0x496E76616C69642074696D657374616D7073" - }, - "1902": { - "op": "PUSH1", - "value": "0x70" - }, - "1904": { - "op": "SHL" - }, - "1905": { - "op": "PUSH1", - "value": "0x44" - }, - "1907": { - "op": "DUP3" - }, - "1908": { - "op": "ADD" - }, - "1909": { - "op": "MSTORE" - }, - "1910": { - "op": "PUSH1", - "value": "0x64" - }, - "1912": { - "op": "ADD" - }, - "1913": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1814, - 1857 - ], - "op": "PUSH2", - "path": "30", - "value": "0x53B" - }, - "1916": { - "op": "JUMP" - }, - "1917": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1814, - 1857 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1918": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1883, - 1884 - ], - "op": "PUSH1", - "path": "30", - "statement": 15, - "value": "0x0" - }, - "1920": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1875, - 1880 - ], - "op": "DUP6", - "path": "30" - }, - "1921": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1875, - 1884 - ], - "op": "PUSH2", - "path": "30", - "value": "0xFFFF" - }, - "1924": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1875, - 1884 - ], - "op": "AND", - "path": "30" - }, - "1925": { - "branch": 45, - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1875, - 1884 - ], - "op": "GT", - "path": "30" - }, - "1926": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1867, - 1908 - ], - "op": "PUSH2", - "path": "30", - "value": "0x7C7" - }, - "1929": { - "branch": 45, - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1867, - 1908 - ], - "op": "JUMPI", - "path": "30" - }, - "1930": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1867, - 1908 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "1932": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1867, - 1908 - ], - "op": "MLOAD", - "path": "30" - }, - "1933": { - "op": "PUSH3", - "value": "0x461BCD" - }, - "1937": { - "op": "PUSH1", - "value": "0xE5" - }, - "1939": { - "op": "SHL" - }, - "1940": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1867, - 1908 - ], - "op": "DUP2", - "path": "30" - }, - "1941": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1867, - 1908 - ], - "op": "MSTORE", - "path": "30" - }, - "1942": { - "op": "PUSH1", - "value": "0x20" - }, - "1944": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1867, - 1908 - ], - "op": "PUSH1", - "path": "30", - "value": "0x4" - }, - "1946": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1867, - 1908 - ], - "op": "DUP3", - "path": "30" - }, - "1947": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1867, - 1908 - ], - "op": "ADD", - "path": "30" - }, - "1948": { - "op": "MSTORE" - }, - "1949": { - "op": "PUSH1", - "value": "0x13" - }, - "1951": { - "op": "PUSH1", - "value": "0x24" - }, - "1953": { - "op": "DUP3" - }, - "1954": { - "op": "ADD" - }, - "1955": { - "op": "MSTORE" - }, - "1956": { - "op": "PUSH19", - "value": "0x496E76616C696420706F6C6963792073697A65" - }, - "1976": { - "op": "PUSH1", - "value": "0x68" - }, - "1978": { - "op": "SHL" - }, - "1979": { - "op": "PUSH1", - "value": "0x44" - }, - "1981": { - "op": "DUP3" - }, - "1982": { - "op": "ADD" - }, - "1983": { - "op": "MSTORE" - }, - "1984": { - "op": "PUSH1", - "value": "0x64" - }, - "1986": { - "op": "ADD" - }, - "1987": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1867, - 1908 - ], - "op": "PUSH2", - "path": "30", - "value": "0x53B" - }, - "1990": { - "op": "JUMP" - }, - "1991": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1867, - 1908 - ], - "op": "JUMPDEST", - "path": "30" - }, - "1992": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1943, - 1951 - ], - "op": "DUP1", - "path": "30", - "statement": 16 - }, - "1993": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1951 - ], - "op": "PUSH4", - "path": "30", - "value": "0xFFFFFFFF" - }, - "1998": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1951 - ], - "op": "AND", - "path": "30" - }, - "1999": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1935, - 1940 - ], - "op": "DUP6", - "path": "30" - }, - "2000": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1940 - ], - "op": "PUSH2", - "path": "30", - "value": "0xFFFF" - }, - "2003": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1940 - ], - "op": "AND", - "path": "30" - }, - "2004": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1932 - ], - "op": "PUSH1", - "path": "30", - "value": "0x97" - }, - "2006": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1932 - ], - "op": "SLOAD", - "path": "30" - }, - "2007": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1940 - ], - "op": "PUSH2", - "path": "30", - "value": "0x7E0" - }, - "2010": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1940 - ], - "op": "SWAP2", - "path": "30" - }, - "2011": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1940 - ], - "op": "SWAP1", - "path": "30" - }, - "2012": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1940 - ], - "op": "PUSH2", - "path": "30", - "value": "0x1038" - }, - "2015": { - "fn": "SubscriptionManager.getPolicyCost", - "jump": "i", - "offset": [ - 1925, - 1940 - ], - "op": "JUMP", - "path": "30" - }, - "2016": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1940 - ], - "op": "JUMPDEST", - "path": "30" - }, - "2017": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1951 - ], - "op": "PUSH2", - "path": "30", - "value": "0x7EA" - }, - "2020": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1951 - ], - "op": "SWAP2", - "path": "30" - }, - "2021": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1951 - ], - "op": "SWAP1", - "path": "30" - }, - "2022": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1951 - ], - "op": "PUSH2", - "path": "30", - "value": "0x1038" - }, - "2025": { - "fn": "SubscriptionManager.getPolicyCost", - "jump": "i", - "offset": [ - 1925, - 1951 - ], - "op": "JUMP", - "path": "30" - }, - "2026": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1925, - 1951 - ], - "op": "JUMPDEST", - "path": "30" - }, - "2027": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1918, - 1951 - ], - "op": "SWAP6", - "path": "30" - }, - "2028": { - "fn": "SubscriptionManager.getPolicyCost", - "offset": [ - 1603, - 1958 - ], - "op": "SWAP5", - "path": "30" - }, - "2029": { - "op": "POP" - }, - "2030": { - "op": "POP" - }, - "2031": { - "op": "POP" - }, - "2032": { - "op": "POP" - }, - "2033": { - "op": "POP" - }, - "2034": { - "fn": "SubscriptionManager.getPolicyCost", - "jump": "o", - "offset": [ - 1603, - 1958 - ], - "op": "JUMP", - "path": "30" - }, - "2035": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3217, - 3362 - ], - "op": "JUMPDEST", - "path": "0" - }, - "2036": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3303, - 3307 - ], - "op": "PUSH1", - "path": "0", - "value": "0x0" - }, - "2038": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3338 - ], - "op": "SWAP2", - "path": "0", - "statement": 17 - }, - "2039": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3338 - ], - "op": "DUP3", - "path": "0" - }, - "2040": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3338 - ], - "op": "MSTORE", - "path": "0" - }, - "2041": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3332 - ], - "op": "PUSH1", - "path": "0", - "value": "0x65" - }, - "2043": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3338 - ], - "op": "PUSH1", - "path": "0", - "value": "0x20" - }, - "2045": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3338 - ], - "op": "SWAP1", - "path": "0" - }, - "2046": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3338 - ], - "op": "DUP2", - "path": "0" - }, - "2047": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3338 - ], - "op": "MSTORE", - "path": "0" - }, - "2048": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3338 - ], - "op": "PUSH1", - "path": "0", - "value": "0x40" - }, - "2050": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3338 - ], - "op": "DUP1", - "path": "0" - }, - "2051": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3338 - ], - "op": "DUP5", - "path": "0" - }, - "2052": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3338 - ], - "op": "KECCAK256", - "path": "0" - }, - "2053": { - "op": "PUSH1", - "value": "0x1" - }, - "2055": { - "op": "PUSH1", - "value": "0x1" - }, - "2057": { - "op": "PUSH1", - "value": "0xA0" - }, - "2059": { - "op": "SHL" - }, - "2060": { - "op": "SUB" - }, - "2061": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "SWAP4", - "path": "0" - }, - "2062": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "SWAP1", - "path": "0" - }, - "2063": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "SWAP4", - "path": "0" - }, - "2064": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "AND", - "path": "0" - }, - "2065": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "DUP5", - "path": "0" - }, - "2066": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "MSTORE", - "path": "0" - }, - "2067": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "SWAP2", - "path": "0" - }, - "2068": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "SWAP1", - "path": "0" - }, - "2069": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "MSTORE", - "path": "0" - }, - "2070": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "SWAP1", - "path": "0" - }, - "2071": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "KECCAK256", - "path": "0" - }, - "2072": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "SLOAD", - "path": "0" - }, - "2073": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "PUSH1", - "path": "0", - "value": "0xFF" - }, - "2075": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "AND", - "path": "0" - }, - "2076": { - "fn": "AccessControlUpgradeable.hasRole", - "offset": [ - 3326, - 3355 - ], - "op": "SWAP1", - "path": "0" - }, - "2077": { - "fn": "AccessControlUpgradeable.hasRole", - "jump": "o", - "offset": [ - 3217, - 3362 - ], - "op": "JUMP", - "path": "0" - }, - "2078": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5096, - 5243 - ], - "op": "JUMPDEST", - "path": "0" - }, - "2079": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4412, - 4419 - ], - "op": "PUSH1", - "path": "0", - "value": "0x0" - }, - "2081": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "DUP3", - "path": "0" - }, - "2082": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "DUP2", - "path": "0" - }, - "2083": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "MSTORE", - "path": "0" - }, - "2084": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4444 - ], - "op": "PUSH1", - "path": "0", - "value": "0x65" - }, - "2086": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "PUSH1", - "path": "0", - "value": "0x20" - }, - "2088": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "MSTORE", - "path": "0" - }, - "2089": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "PUSH1", - "path": "0", - "value": "0x40" - }, - "2091": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "SWAP1", - "path": "0" - }, - "2092": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4450 - ], - "op": "KECCAK256", - "path": "0" - }, - "2093": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4460 - ], - "op": "PUSH1", - "path": "0", - "value": "0x1" - }, - "2095": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4460 - ], - "op": "ADD", - "path": "0" - }, - "2096": { - "fn": "AccessControlUpgradeable.getRoleAdmin", - "offset": [ - 4438, - 4460 - ], - "op": "SLOAD", - "path": "0" - }, - "2097": { - "offset": [ - 2802, - 2832 - ], - "op": "PUSH2", - "path": "0", - "value": "0x83A" - }, - "2100": { - "offset": [ - 2813, - 2817 - ], - "op": "DUP2", - "path": "0" - }, - "2101": { - "fn": "ContextUpgradeable._msgSender", - "offset": [ - 929, - 939 - ], - "op": "CALLER", - "path": "4" - }, - "2102": { - "offset": [ - 2802, - 2812 - ], - "op": "PUSH2", - "path": "0", - "value": "0x965" - }, - "2105": { - "jump": "i", - "offset": [ - 2802, - 2832 - ], - "op": "JUMP", - "path": "0" - }, - "2106": { - "fn": "ContextUpgradeable._msgSender", - "offset": [ - 2802, - 2832 - ], - "op": "JUMPDEST", - "path": "0" - }, - "2107": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5210, - 5236 - ], - "op": "PUSH2", - "path": "0", - "statement": 18, - "value": "0x5A7" - }, - "2110": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5222, - 5226 - ], - "op": "DUP4", - "path": "0" - }, - "2111": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5228, - 5235 - ], - "op": "DUP4", - "path": "0" - }, - "2112": { - "fn": "AccessControlUpgradeable.revokeRole", - "offset": [ - 5210, - 5221 - ], - "op": "PUSH2", - "path": "0", - "value": "0xA4F" - }, - "2115": { - "fn": "AccessControlUpgradeable.revokeRole", - "jump": "i", - "offset": [ - 5210, - 5236 - ], - "op": "JUMP", - "path": "0" - }, - "2116": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "JUMPDEST", - "path": "30" - }, - "2117": { - "offset": [ - 2369, - 2382 - ], - "op": "PUSH1", - "path": "2", - "value": "0x0" - }, - "2119": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 2369, - 2382 - ], - "op": "SLOAD", - "path": "2" - }, - "2120": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 2369, - 2382 - ], - "op": "PUSH2", - "path": "2", - "value": "0x100" - }, - "2123": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 2369, - 2382 - ], - "op": "SWAP1", - "path": "2" - }, - "2124": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 2369, - 2382 - ], - "op": "DIV", - "path": "2" - }, - "2125": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 2369, - 2382 - ], - "op": "PUSH1", - "path": "2", - "value": "0xFF" - }, - "2127": { - "branch": 54, - "fn": "SubscriptionManager.initialize", - "offset": [ - 2369, - 2382 - ], - "op": "AND", - "path": "2" - }, - "2128": { - "offset": [ - 2369, - 2417 - ], - "op": "PUSH2", - "path": "2", - "value": "0x85F" - }, - "2131": { - "branch": 54, - "fn": "SubscriptionManager.initialize", - "offset": [ - 2369, - 2417 - ], - "op": "JUMPI", - "path": "2" - }, - "2132": { - "offset": [ - 2405, - 2417 - ], - "op": "PUSH1", - "path": "2", - "value": "0x0" - }, - "2134": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 2405, - 2417 - ], - "op": "SLOAD", - "path": "2" - }, - "2135": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 2405, - 2417 - ], - "op": "PUSH1", - "path": "2", - "value": "0xFF" - }, - "2137": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 2405, - 2417 - ], - "op": "AND", - "path": "2" - }, - "2138": { - "offset": [ - 2404, - 2417 - ], - "op": "ISZERO", - "path": "2" - }, - "2139": { - "offset": [ - 2369, - 2417 - ], - "op": "PUSH2", - "path": "2", - "value": "0x863" - }, - "2142": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 2369, - 2417 - ], - "op": "JUMP", - "path": "2" - }, - "2143": { - "branch": 55, - "fn": "SubscriptionManager.initialize", - "offset": [ - 2369, - 2417 - ], - "op": "JUMPDEST", - "path": "2" - }, - "2144": { - "fn": "Initializable._isConstructor", - "offset": [ - 3147, - 3151 - ], - "op": "ADDRESS", - "path": "2", - "statement": 19 - }, - "2145": { - "op": "EXTCODESIZE" - }, - "2146": { - "op": "ISZERO" - }, - "2147": { - "offset": [ - 2385, - 2401 - ], - "op": "JUMPDEST", - "path": "2" - }, - "2148": { - "offset": [ - 2361, - 2468 - ], - "op": "PUSH2", - "path": "2", - "value": "0x8C6" - }, - "2151": { - "branch": 55, - "offset": [ - 2361, - 2468 - ], - "op": "JUMPI", - "path": "2" - }, - "2152": { - "fn": "Initializable._isConstructor", - "offset": [ - 2361, - 2468 - ], - "op": "PUSH1", - "path": "2", - "value": "0x40" - }, - "2154": { - "fn": "Initializable._isConstructor", - "offset": [ - 2361, - 2468 - ], - "op": "MLOAD", - "path": "2" - }, - "2155": { - "op": "PUSH3", - "value": "0x461BCD" - }, - "2159": { - "op": "PUSH1", - "value": "0xE5" - }, - "2161": { - "op": "SHL" - }, - "2162": { - "offset": [ - 2361, - 2468 - ], - "op": "DUP2", - "path": "2" - }, - "2163": { - "fn": "Initializable._isConstructor", - "offset": [ - 2361, - 2468 - ], - "op": "MSTORE", - "path": "2" - }, - "2164": { - "op": "PUSH1", - "value": "0x20" - }, - "2166": { - "offset": [ - 2361, - 2468 - ], - "op": "PUSH1", - "path": "2", - "value": "0x4" - }, - "2168": { - "fn": "Initializable._isConstructor", - "offset": [ - 2361, - 2468 - ], - "op": "DUP3", - "path": "2" - }, - "2169": { - "fn": "Initializable._isConstructor", - "offset": [ - 2361, - 2468 - ], - "op": "ADD", - "path": "2" - }, - "2170": { - "op": "MSTORE" - }, - "2171": { - "op": "PUSH1", - "value": "0x2E" - }, - "2173": { - "op": "PUSH1", - "value": "0x24" - }, - "2175": { - "op": "DUP3" - }, - "2176": { - "op": "ADD" - }, - "2177": { - "op": "MSTORE" - }, - "2178": { - "op": "PUSH32", - "value": "0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561" - }, - "2211": { - "op": "PUSH1", - "value": "0x44" - }, - "2213": { - "op": "DUP3" - }, - "2214": { - "op": "ADD" - }, - "2215": { - "op": "MSTORE" - }, - "2216": { - "op": "PUSH14", - "value": "0x191E481A5B9A5D1A585B1A5E9959" - }, - "2231": { - "op": "PUSH1", - "value": "0x92" - }, - "2233": { - "op": "SHL" - }, - "2234": { - "op": "PUSH1", - "value": "0x64" - }, - "2236": { - "op": "DUP3" - }, - "2237": { - "op": "ADD" - }, - "2238": { - "op": "MSTORE" - }, - "2239": { - "op": "PUSH1", - "value": "0x84" - }, - "2241": { - "op": "ADD" - }, - "2242": { - "offset": [ - 2361, - 2468 - ], - "op": "PUSH2", - "path": "2", - "value": "0x53B" - }, - "2245": { - "op": "JUMP" - }, - "2246": { - "offset": [ - 2361, - 2468 - ], - "op": "JUMPDEST", - "path": "2" - }, - "2247": { - "offset": [ - 2479, - 2498 - ], - "op": "PUSH1", - "path": "2", - "value": "0x0" - }, - "2249": { - "offset": [ - 2502, - 2515 - ], - "op": "SLOAD", - "path": "2" - }, - "2250": { - "fn": "Initializable._isConstructor", - "offset": [ - 2502, - 2515 - ], - "op": "PUSH2", - "path": "2", - "value": "0x100" - }, - "2253": { - "fn": "Initializable._isConstructor", - "offset": [ - 2502, - 2515 - ], - "op": "SWAP1", - "path": "2" - }, - "2254": { - "fn": "Initializable._isConstructor", - "offset": [ - 2502, - 2515 - ], - "op": "DIV", - "path": "2" - }, - "2255": { - "fn": "Initializable._isConstructor", - "offset": [ - 2502, - 2515 - ], - "op": "PUSH1", - "path": "2", - "value": "0xFF" - }, - "2257": { - "fn": "Initializable._isConstructor", - "offset": [ - 2502, - 2515 - ], - "op": "AND", - "path": "2" - }, - "2258": { - "offset": [ - 2501, - 2515 - ], - "op": "ISZERO", - "path": "2" - }, - "2259": { - "offset": [ - 2525, - 2623 - ], - "op": "DUP1", - "path": "2" - }, - "2260": { - "fn": "Initializable._isConstructor", - "offset": [ - 2525, - 2623 - ], - "op": "ISZERO", - "path": "2" - }, - "2261": { - "fn": "Initializable._isConstructor", - "offset": [ - 2525, - 2623 - ], - "op": "PUSH2", - "path": "2", - "value": "0x8E8" - }, - "2264": { - "fn": "Initializable._isConstructor", - "offset": [ - 2525, - 2623 - ], - "op": "JUMPI", - "path": "2" - }, - "2265": { - "offset": [ - 2559, - 2572 - ], - "op": "PUSH1", - "path": "2", - "value": "0x0" - }, - "2267": { - "offset": [ - 2559, - 2579 - ], - "op": "DUP1", - "path": "2" - }, - "2268": { - "fn": "Initializable._isConstructor", - "offset": [ - 2559, - 2579 - ], - "op": "SLOAD", - "path": "2" - }, - "2269": { - "op": "PUSH2", - "value": "0xFFFF" - }, - "2272": { - "op": "NOT" - }, - "2273": { - "offset": [ - 2593, - 2612 - ], - "op": "AND", - "path": "2" - }, - "2274": { - "fn": "Initializable._isConstructor", - "offset": [ - 2593, - 2612 - ], - "op": "PUSH2", - "path": "2", - "value": "0x101" - }, - "2277": { - "fn": "Initializable._isConstructor", - "offset": [ - 2593, - 2612 - ], - "op": "OR", - "path": "2" - }, - "2278": { - "fn": "Initializable._isConstructor", - "offset": [ - 2593, - 2612 - ], - "op": "SWAP1", - "path": "2" - }, - "2279": { - "fn": "Initializable._isConstructor", - "offset": [ - 2593, - 2612 - ], - "op": "SSTORE", - "path": "2" - }, - "2280": { - "offset": [ - 2525, - 2623 - ], - "op": "JUMPDEST", - "path": "2" - }, - "2281": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1423, - 1444 - ], - "op": "PUSH2", - "path": "30", - "statement": 20, - "value": "0x8F1" - }, - "2284": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1435, - 1443 - ], - "op": "DUP3", - "path": "30" - }, - "2285": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1423, - 1434 - ], - "op": "PUSH2", - "path": "30", - "value": "0xAB6" - }, - "2288": { - "fn": "SubscriptionManager.initialize", - "jump": "i", - "offset": [ - 1423, - 1444 - ], - "op": "JUMP", - "path": "30" - }, - "2289": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1423, - 1444 - ], - "op": "JUMPDEST", - "path": "30" - }, - "2290": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1454, - 1491 - ], - "op": "PUSH2", - "path": "30", - "statement": 21, - "value": "0x91B" - }, - "2293": { - "offset": [ - 359, - 397 - ], - "op": "PUSH32", - "path": "30", - "value": "0x637CA263F44C0A7E4A3B057E26C82C5667C084AA950864A2916355C481F6A097" - }, - "2326": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1480, - 1490 - ], - "op": "CALLER", - "path": "30" - }, - "2327": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1454, - 1464 - ], - "op": "PUSH2", - "path": "30", - "value": "0xCA0" - }, - "2330": { - "fn": "SubscriptionManager.initialize", - "jump": "i", - "offset": [ - 1454, - 1491 - ], - "op": "JUMP", - "path": "30" - }, - "2331": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1454, - 1491 - ], - "op": "JUMPDEST", - "path": "30" - }, - "2332": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1501, - 1538 - ], - "op": "PUSH2", - "path": "30", - "statement": 22, - "value": "0x945" - }, - "2335": { - "offset": [ - 452, - 513 - ], - "op": "PUSH32", - "path": "30", - "value": "0xC1F0C13D12A4CA09AADA5725E24C49160E8F198A4CA0D2BD4DAFC9C5C12E6A35" - }, - "2368": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1527, - 1537 - ], - "op": "CALLER", - "path": "30" - }, - "2369": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1501, - 1511 - ], - "op": "PUSH2", - "path": "30", - "value": "0xCA0" - }, - "2372": { - "fn": "SubscriptionManager.initialize", - "jump": "i", - "offset": [ - 1501, - 1538 - ], - "op": "JUMP", - "path": "30" - }, - "2373": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1501, - 1538 - ], - "op": "JUMPDEST", - "path": "30" - }, - "2374": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1548, - 1590 - ], - "op": "PUSH2", - "path": "30", - "statement": 23, - "value": "0x950" - }, - "2377": { - "offset": [ - 2369, - 2373 - ], - "op": "PUSH1", - "path": "0", - "value": "0x0" - }, - "2379": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1579, - 1589 - ], - "op": "CALLER", - "path": "30" - }, - "2380": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1548, - 1558 - ], - "op": "PUSH2", - "path": "30", - "value": "0xCA0" - }, - "2383": { - "fn": "SubscriptionManager.initialize", - "jump": "i", - "offset": [ - 1548, - 1590 - ], - "op": "JUMP", - "path": "30" - }, - "2384": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1548, - 1590 - ], - "op": "JUMPDEST", - "path": "30" - }, - "2385": { - "offset": [ - 2649, - 2663 - ], - "op": "DUP1", - "path": "2" - }, - "2386": { - "offset": [ - 2645, - 2711 - ], - "op": "ISZERO", - "path": "2" - }, - "2387": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 2645, - 2711 - ], - "op": "PUSH2", - "path": "2", - "value": "0x626" - }, - "2390": { - "offset": [ - 2645, - 2711 - ], - "op": "JUMPI", - "path": "2" - }, - "2391": { - "offset": [ - 2695, - 2700 - ], - "op": "PUSH1", - "path": "2", - "value": "0x0" - }, - "2393": { - "offset": [ - 2679, - 2700 - ], - "op": "DUP1", - "path": "2" - }, - "2394": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 2679, - 2700 - ], - "op": "SLOAD", - "path": "2" - }, - "2395": { - "op": "PUSH2", - "value": "0xFF00" - }, - "2398": { - "op": "NOT" - }, - "2399": { - "offset": [ - 2679, - 2700 - ], - "op": "AND", - "path": "2" - }, - "2400": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 2679, - 2700 - ], - "op": "SWAP1", - "path": "2" - }, - "2401": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 2679, - 2700 - ], - "op": "SSTORE", - "path": "2" - }, - "2402": { - "offset": [ - 2080, - 2717 - ], - "op": "POP", - "path": "2" - }, - "2403": { - "fn": "SubscriptionManager.initialize", - "offset": [ - 1356, - 1597 - ], - "op": "POP", - "path": "30" - }, - "2404": { - "fn": "SubscriptionManager.initialize", - "jump": "o", - "offset": [ - 1356, - 1597 - ], - "op": "JUMP", - "path": "30" - }, - "2405": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3643, - 4157 - ], - "op": "JUMPDEST", - "path": "0" - }, - "2406": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3731, - 3753 - ], - "op": "PUSH2", - "path": "0", - "value": "0x96F" - }, - "2409": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3739, - 3743 - ], - "op": "DUP3", - "path": "0" - }, - "2410": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3745, - 3752 - ], - "op": "DUP3", - "path": "0" - }, - "2411": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3731, - 3738 - ], - "op": "PUSH2", - "path": "0", - "value": "0x7F3" - }, - "2414": { - "fn": "AccessControlUpgradeable._checkRole", - "jump": "i", - "offset": [ - 3731, - 3753 - ], - "op": "JUMP", - "path": "0" - }, - "2415": { - "branch": 51, - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3731, - 3753 - ], - "op": "JUMPDEST", - "path": "0" - }, - "2416": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3726, - 4151 - ], - "op": "PUSH2", - "path": "0", - "value": "0x626" - }, - "2419": { - "branch": 51, - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3726, - 4151 - ], - "op": "JUMPI", - "path": "0" - }, - "2420": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3914, - 3966 - ], - "op": "PUSH2", - "path": "0", - "statement": 24, - "value": "0x987" - }, - "2423": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3953, - 3960 - ], - "op": "DUP2", - "path": "0" - }, - "2424": { - "op": "PUSH1", - "value": "0x1" - }, - "2426": { - "op": "PUSH1", - "value": "0x1" - }, - "2428": { - "op": "PUSH1", - "value": "0xA0" - }, - "2430": { - "op": "SHL" - }, - "2431": { - "op": "SUB" - }, - "2432": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3914, - 3966 - ], - "op": "AND", - "path": "0" - }, - "2433": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3963, - 3965 - ], - "op": "PUSH1", - "path": "0", - "value": "0x14" - }, - "2435": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3914, - 3944 - ], - "op": "PUSH2", - "path": "0", - "value": "0xCAA" - }, - "2438": { - "fn": "AccessControlUpgradeable._checkRole", - "jump": "i", - "offset": [ - 3914, - 3966 - ], - "op": "JUMP", - "path": "0" - }, - "2439": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3914, - 3966 - ], - "op": "JUMPDEST", - "path": "0" - }, - "2440": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 4037, - 4086 - ], - "op": "PUSH2", - "path": "0", - "value": "0x992" - }, - "2443": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 4076, - 4080 - ], - "op": "DUP4", - "path": "0" - }, - "2444": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 4083, - 4085 - ], - "op": "PUSH1", - "path": "0", - "value": "0x20" - }, - "2446": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 4037, - 4067 - ], - "op": "PUSH2", - "path": "0", - "value": "0xCAA" - }, - "2449": { - "fn": "AccessControlUpgradeable._checkRole", - "jump": "i", - "offset": [ - 4037, - 4086 - ], - "op": "JUMP", - "path": "0" - }, - "2450": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 4037, - 4086 - ], - "op": "JUMPDEST", - "path": "0" - }, - "2451": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "PUSH1", - "path": "0", - "value": "0x40" - }, - "2453": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "MLOAD", - "path": "0" - }, - "2454": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "PUSH1", - "path": "0", - "value": "0x20" - }, - "2456": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "ADD", - "path": "0" - }, - "2457": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "PUSH2", - "path": "0", - "value": "0x9A3" - }, - "2460": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "SWAP3", - "path": "0" - }, - "2461": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "SWAP2", - "path": "0" - }, - "2462": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "SWAP1", - "path": "0" - }, - "2463": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "PUSH2", - "path": "0", - "value": "0x1083" - }, - "2466": { - "fn": "AccessControlUpgradeable._checkRole", - "jump": "i", - "offset": [ - 3821, - 4108 - ], - "op": "JUMP", - "path": "0" - }, - "2467": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "JUMPDEST", - "path": "0" - }, - "2468": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "PUSH1", - "path": "0", - "value": "0x40" - }, - "2470": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "DUP1", - "path": "0" - }, - "2471": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "MLOAD", - "path": "0" - }, - "2472": { - "op": "PUSH1", - "value": "0x1F" - }, - "2474": { - "op": "NOT" - }, - "2475": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "DUP2", - "path": "0" - }, - "2476": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "DUP5", - "path": "0" - }, - "2477": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "SUB", - "path": "0" - }, - "2478": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "ADD", - "path": "0" - }, - "2479": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "DUP2", - "path": "0" - }, - "2480": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "MSTORE", - "path": "0" - }, - "2481": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "SWAP1", - "path": "0" - }, - "2482": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "DUP3", - "path": "0" - }, - "2483": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "SWAP1", - "path": "0" - }, - "2484": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3821, - 4108 - ], - "op": "MSTORE", - "path": "0" - }, - "2485": { - "op": "PUSH3", - "value": "0x461BCD" - }, - "2489": { - "op": "PUSH1", - "value": "0xE5" - }, - "2491": { - "op": "SHL" - }, - "2492": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3769, - 4140 - ], - "op": "DUP3", - "path": "0" - }, - "2493": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3769, - 4140 - ], - "op": "MSTORE", - "path": "0" - }, - "2494": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3769, - 4140 - ], - "op": "PUSH2", - "path": "0", - "value": "0x53B" - }, - "2497": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3769, - 4140 - ], - "op": "SWAP2", - "path": "0" - }, - "2498": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3769, - 4140 - ], - "op": "PUSH1", - "path": "0", - "value": "0x4" - }, - "2500": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3769, - 4140 - ], - "op": "ADD", - "path": "0" - }, - "2501": { - "fn": "AccessControlUpgradeable._checkRole", - "offset": [ - 3769, - 4140 - ], - "op": "PUSH2", - "path": "0", - "value": "0x10F8" - }, - "2504": { - "fn": "AccessControlUpgradeable._checkRole", - "jump": "i", - "offset": [ - 3769, - 4140 - ], - "op": "JUMP", - "path": "0" - }, - "2505": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7191, - 7424 - ], - "op": "JUMPDEST", - "path": "0" - }, - "2506": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7274, - 7296 - ], - "op": "PUSH2", - "path": "0", - "value": "0x9D3" - }, - "2509": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7282, - 7286 - ], - "op": "DUP3", - "path": "0" - }, - "2510": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7288, - 7295 - ], - "op": "DUP3", - "path": "0" - }, - "2511": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7274, - 7281 - ], - "op": "PUSH2", - "path": "0", - "value": "0x7F3" - }, - "2514": { - "fn": "AccessControlUpgradeable._grantRole", - "jump": "i", - "offset": [ - 7274, - 7296 - ], - "op": "JUMP", - "path": "0" - }, - "2515": { - "branch": 52, - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7274, - 7296 - ], - "op": "JUMPDEST", - "path": "0" - }, - "2516": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7269, - 7418 - ], - "op": "PUSH2", - "path": "0", - "value": "0x626" - }, - "2519": { - "branch": 52, - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7269, - 7418 - ], - "op": "JUMPI", - "path": "0" - }, - "2520": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7324 - ], - "op": "PUSH1", - "path": "0", - "statement": 25, - "value": "0x0" - }, - "2522": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7324 - ], - "op": "DUP3", - "path": "0" - }, - "2523": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7324 - ], - "op": "DUP2", - "path": "0" - }, - "2524": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7324 - ], - "op": "MSTORE", - "path": "0" - }, - "2525": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7318 - ], - "op": "PUSH1", - "path": "0", - "value": "0x65" - }, - "2527": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7324 - ], - "op": "PUSH1", - "path": "0", - "value": "0x20" - }, - "2529": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7324 - ], - "op": "SWAP1", - "path": "0" - }, - "2530": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7324 - ], - "op": "DUP2", - "path": "0" - }, - "2531": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7324 - ], - "op": "MSTORE", - "path": "0" - }, - "2532": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7324 - ], - "op": "PUSH1", - "path": "0", - "value": "0x40" - }, - "2534": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7324 - ], - "op": "DUP1", - "path": "0" - }, - "2535": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7324 - ], - "op": "DUP4", - "path": "0" - }, - "2536": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7324 - ], - "op": "KECCAK256", - "path": "0" - }, - "2537": { - "op": "PUSH1", - "value": "0x1" - }, - "2539": { - "op": "PUSH1", - "value": "0x1" - }, - "2541": { - "op": "PUSH1", - "value": "0xA0" - }, - "2543": { - "op": "SHL" - }, - "2544": { - "op": "SUB" - }, - "2545": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7341 - ], - "op": "DUP6", - "path": "0" - }, - "2546": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7341 - ], - "op": "AND", - "path": "0" - }, - "2547": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7341 - ], - "op": "DUP5", - "path": "0" - }, - "2548": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7341 - ], - "op": "MSTORE", - "path": "0" - }, - "2549": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7341 - ], - "op": "SWAP1", - "path": "0" - }, - "2550": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7341 - ], - "op": "SWAP2", - "path": "0" - }, - "2551": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7341 - ], - "op": "MSTORE", - "path": "0" - }, - "2552": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7341 - ], - "op": "SWAP1", - "path": "0" - }, - "2553": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7341 - ], - "op": "KECCAK256", - "path": "0" - }, - "2554": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7348 - ], - "op": "DUP1", - "path": "0" - }, - "2555": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7348 - ], - "op": "SLOAD", - "path": "0" - }, - "2556": { - "op": "PUSH1", - "value": "0xFF" - }, - "2558": { - "op": "NOT" - }, - "2559": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7348 - ], - "op": "AND", - "path": "0" - }, - "2560": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7344, - 7348 - ], - "op": "PUSH1", - "path": "0", - "value": "0x1" - }, - "2562": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7348 - ], - "op": "OR", - "path": "0" - }, - "2563": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7348 - ], - "op": "SWAP1", - "path": "0" - }, - "2564": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7312, - 7348 - ], - "op": "SSTORE", - "path": "0" - }, - "2565": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7394, - 7406 - ], - "op": "PUSH2", - "path": "0", - "statement": 26, - "value": "0xA0B" - }, - "2568": { - "fn": "ContextUpgradeable._msgSender", - "offset": [ - 929, - 939 - ], - "op": "CALLER", - "path": "4" - }, - "2569": { - "fn": "ContextUpgradeable._msgSender", - "offset": [ - 929, - 939 - ], - "op": "SWAP1", - "path": "4" - }, - "2570": { - "fn": "ContextUpgradeable._msgSender", - "offset": [ - 850, - 946 - ], - "op": "JUMP", - "path": "4" - }, - "2571": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7394, - 7406 - ], - "op": "JUMPDEST", - "path": "0" - }, - "2572": { - "op": "PUSH1", - "value": "0x1" - }, - "2574": { - "op": "PUSH1", - "value": "0x1" - }, - "2576": { - "op": "PUSH1", - "value": "0xA0" - }, - "2578": { - "op": "SHL" - }, - "2579": { - "op": "SUB" - }, - "2580": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7367, - 7407 - ], - "op": "AND", - "path": "0" - }, - "2581": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7385, - 7392 - ], - "op": "DUP2", - "path": "0" - }, - "2582": { - "op": "PUSH1", - "value": "0x1" - }, - "2584": { - "op": "PUSH1", - "value": "0x1" - }, - "2586": { - "op": "PUSH1", - "value": "0xA0" - }, - "2588": { - "op": "SHL" - }, - "2589": { - "op": "SUB" - }, - "2590": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7367, - 7407 - ], - "op": "AND", - "path": "0" - }, - "2591": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7379, - 7383 - ], - "op": "DUP4", - "path": "0" - }, - "2592": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7367, - 7407 - ], - "op": "PUSH32", - "path": "0", - "value": "0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D" - }, - "2625": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7367, - 7407 - ], - "op": "PUSH1", - "path": "0", - "value": "0x40" - }, - "2627": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7367, - 7407 - ], - "op": "MLOAD", - "path": "0" - }, - "2628": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7367, - 7407 - ], - "op": "PUSH1", - "path": "0", - "value": "0x40" - }, - "2630": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7367, - 7407 - ], - "op": "MLOAD", - "path": "0" - }, - "2631": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7367, - 7407 - ], - "op": "DUP1", - "path": "0" - }, - "2632": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7367, - 7407 - ], - "op": "SWAP2", - "path": "0" - }, - "2633": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7367, - 7407 - ], - "op": "SUB", - "path": "0" - }, - "2634": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7367, - 7407 - ], - "op": "SWAP1", - "path": "0" - }, - "2635": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7367, - 7407 - ], - "op": "LOG4", - "path": "0" - }, - "2636": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7191, - 7424 - ], - "op": "POP", - "path": "0" - }, - "2637": { - "fn": "AccessControlUpgradeable._grantRole", - "offset": [ - 7191, - 7424 - ], - "op": "POP", - "path": "0" - }, - "2638": { - "fn": "AccessControlUpgradeable._grantRole", - "jump": "o", - "offset": [ - 7191, - 7424 - ], - "op": "JUMP", - "path": "0" - }, - "2639": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7549, - 7783 - ], - "op": "JUMPDEST", - "path": "0" - }, - "2640": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7632, - 7654 - ], - "op": "PUSH2", - "path": "0", - "value": "0xA59" - }, - "2643": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7640, - 7644 - ], - "op": "DUP3", - "path": "0" - }, - "2644": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7646, - 7653 - ], - "op": "DUP3", - "path": "0" - }, - "2645": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7632, - 7639 - ], - "op": "PUSH2", - "path": "0", - "value": "0x7F3" - }, - "2648": { - "fn": "AccessControlUpgradeable._revokeRole", - "jump": "i", - "offset": [ - 7632, - 7654 - ], - "op": "JUMP", - "path": "0" - }, - "2649": { - "branch": 53, - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7632, - 7654 - ], - "op": "JUMPDEST", - "path": "0" - }, - "2650": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7628, - 7777 - ], - "op": "ISZERO", - "path": "0" - }, - "2651": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7628, - 7777 - ], - "op": "PUSH2", - "path": "0", - "value": "0x626" - }, - "2654": { - "branch": 53, - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7628, - 7777 - ], - "op": "JUMPI", - "path": "0" - }, - "2655": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7702, - 7707 - ], - "op": "PUSH1", - "path": "0", - "statement": 27, - "value": "0x0" - }, - "2657": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7682 - ], - "op": "DUP3", - "path": "0" - }, - "2658": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7682 - ], - "op": "DUP2", - "path": "0" - }, - "2659": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7682 - ], - "op": "MSTORE", - "path": "0" - }, - "2660": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7676 - ], - "op": "PUSH1", - "path": "0", - "value": "0x65" - }, - "2662": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7682 - ], - "op": "PUSH1", - "path": "0", - "value": "0x20" - }, - "2664": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7682 - ], - "op": "SWAP1", - "path": "0" - }, - "2665": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7682 - ], - "op": "DUP2", - "path": "0" - }, - "2666": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7682 - ], - "op": "MSTORE", - "path": "0" - }, - "2667": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7682 - ], - "op": "PUSH1", - "path": "0", - "value": "0x40" - }, - "2669": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7682 - ], - "op": "DUP1", - "path": "0" - }, - "2670": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7682 - ], - "op": "DUP4", - "path": "0" - }, - "2671": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7682 - ], - "op": "KECCAK256", - "path": "0" - }, - "2672": { - "op": "PUSH1", - "value": "0x1" - }, - "2674": { - "op": "PUSH1", - "value": "0x1" - }, - "2676": { - "op": "PUSH1", - "value": "0xA0" - }, - "2678": { - "op": "SHL" - }, - "2679": { - "op": "SUB" - }, - "2680": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7699 - ], - "op": "DUP6", - "path": "0" - }, - "2681": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7699 - ], - "op": "AND", - "path": "0" - }, - "2682": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7699 - ], - "op": "DUP1", - "path": "0" - }, - "2683": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7699 - ], - "op": "DUP6", - "path": "0" - }, - "2684": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7699 - ], - "op": "MSTORE", - "path": "0" - }, - "2685": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7699 - ], - "op": "SWAP3", - "path": "0" - }, - "2686": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7699 - ], - "op": "MSTORE", - "path": "0" - }, - "2687": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7699 - ], - "op": "DUP1", - "path": "0" - }, - "2688": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7699 - ], - "op": "DUP4", - "path": "0" - }, - "2689": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7699 - ], - "op": "KECCAK256", - "path": "0" - }, - "2690": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7707 - ], - "op": "DUP1", - "path": "0" - }, - "2691": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7707 - ], - "op": "SLOAD", - "path": "0" - }, - "2692": { - "op": "PUSH1", - "value": "0xFF" - }, - "2694": { - "op": "NOT" - }, - "2695": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7707 - ], - "op": "AND", - "path": "0" - }, - "2696": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7707 - ], - "op": "SWAP1", - "path": "0" - }, - "2697": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7707 - ], - "op": "SSTORE", - "path": "0" - }, - "2698": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7726, - 7766 - ], - "op": "MLOAD", - "path": "0", - "statement": 28 - }, - "2699": { - "fn": "ContextUpgradeable._msgSender", - "offset": [ - 929, - 939 - ], - "op": "CALLER", - "path": "4" - }, - "2700": { - "fn": "ContextUpgradeable._msgSender", - "offset": [ - 929, - 939 - ], - "op": "SWAP3", - "path": "4" - }, - "2701": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7682 - ], - "op": "DUP6", - "path": "0" - }, - "2702": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7670, - 7682 - ], - "op": "SWAP2", - "path": "0" - }, - "2703": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7726, - 7766 - ], - "op": "PUSH32", - "path": "0", - "value": "0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B" - }, - "2736": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7726, - 7766 - ], - "op": "SWAP2", - "path": "0" - }, - "2737": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7702, - 7707 - ], - "op": "SWAP1", - "path": "0" - }, - "2738": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7726, - 7766 - ], - "op": "LOG4", - "path": "0" - }, - "2739": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7549, - 7783 - ], - "op": "POP", - "path": "0" - }, - "2740": { - "fn": "AccessControlUpgradeable._revokeRole", - "offset": [ - 7549, - 7783 - ], - "op": "POP", - "path": "0" - }, - "2741": { - "fn": "AccessControlUpgradeable._revokeRole", - "jump": "o", - "offset": [ - 7549, - 7783 - ], - "op": "JUMP", - "path": "0" - }, - "2742": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4102, - 4260 - ], - "op": "JUMPDEST", - "path": "30" - }, - "2743": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4175, - 4182 - ], - "op": "PUSH1", - "path": "30", - "value": "0x97" - }, - "2745": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4175, - 4182 - ], - "op": "DUP1", - "path": "30" - }, - "2746": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4175, - 4182 - ], - "op": "SLOAD", - "path": "30" - }, - "2747": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4192, - 4208 - ], - "op": "SWAP1", - "path": "30", - "statement": 29 - }, - "2748": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4192, - 4208 - ], - "op": "DUP3", - "path": "30" - }, - "2749": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4192, - 4208 - ], - "op": "SWAP1", - "path": "30" - }, - "2750": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4192, - 4208 - ], - "op": "SSTORE", - "path": "30" - }, - "2751": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4223, - 4253 - ], - "op": "PUSH1", - "path": "30", - "statement": 30, - "value": "0x40" - }, - "2753": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4223, - 4253 - ], - "op": "DUP1", - "path": "30" - }, - "2754": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4223, - 4253 - ], - "op": "MLOAD", - "path": "30" - }, - "2755": { - "op": "DUP3" - }, - "2756": { - "op": "DUP2" - }, - "2757": { - "op": "MSTORE" - }, - "2758": { - "op": "PUSH1", - "value": "0x20" - }, - "2760": { - "op": "DUP2" - }, - "2761": { - "op": "ADD" - }, - "2762": { - "op": "DUP5" - }, - "2763": { - "op": "SWAP1" - }, - "2764": { - "op": "MSTORE" - }, - "2765": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4223, - 4253 - ], - "op": "PUSH32", - "path": "30", - "value": "0x14914DA2BF76024616FBE1859783FCD4DBDDCB179B1F3A854949FBF920DCB957" - }, - "2798": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4223, - 4253 - ], - "op": "SWAP2", - "path": "30" - }, - "2799": { - "op": "ADD" - }, - "2800": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4223, - 4253 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "2802": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4223, - 4253 - ], - "op": "MLOAD", - "path": "30" - }, - "2803": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4223, - 4253 - ], - "op": "DUP1", - "path": "30" - }, - "2804": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4223, - 4253 - ], - "op": "SWAP2", - "path": "30" - }, - "2805": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4223, - 4253 - ], - "op": "SUB", - "path": "30" - }, - "2806": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4223, - 4253 - ], - "op": "SWAP1", - "path": "30" - }, - "2807": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4223, - 4253 - ], - "op": "LOG1", - "path": "30" - }, - "2808": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4148, - 4260 - ], - "op": "POP", - "path": "30" - }, - "2809": { - "fn": "SubscriptionManager._setFeeRate", - "offset": [ - 4102, - 4260 - ], - "op": "POP", - "path": "30" - }, - "2810": { - "fn": "SubscriptionManager._setFeeRate", - "jump": "o", - "offset": [ - 4102, - 4260 - ], - "op": "JUMP", - "path": "30" - }, - "2811": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 2890, - 3825 - ], - "op": "JUMPDEST", - "path": "30" - }, - "2812": { - "op": "PUSH1", - "value": "0x1" - }, - "2814": { - "op": "PUSH1", - "value": "0x1" - }, - "2816": { - "op": "PUSH1", - "value": "0x80" - }, - "2818": { - "op": "SHL" - }, - "2819": { - "op": "SUB" - }, - "2820": { - "op": "NOT" - }, - "2821": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3132, - 3152 - ], - "op": "DUP6", - "path": "30", - "statement": 31 - }, - "2822": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3132, - 3152 - ], - "op": "AND", - "path": "30" - }, - "2823": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3086, - 3107 - ], - "op": "PUSH1", - "path": "30", - "value": "0x0" - }, - "2825": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3132, - 3152 - ], - "op": "SWAP1", - "path": "30" - }, - "2826": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3132, - 3152 - ], - "op": "DUP2", - "path": "30" - }, - "2827": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3132, - 3152 - ], - "op": "MSTORE", - "path": "30" - }, - "2828": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3132, - 3141 - ], - "op": "PUSH1", - "path": "30", - "value": "0x98" - }, - "2830": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3132, - 3152 - ], - "op": "PUSH1", - "path": "30", - "value": "0x20" - }, - "2832": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3132, - 3152 - ], - "op": "MSTORE", - "path": "30" - }, - "2833": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3132, - 3152 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "2835": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3132, - 3152 - ], - "op": "SWAP1", - "path": "30" - }, - "2836": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3132, - 3152 - ], - "op": "KECCAK256", - "path": "30" - }, - "2837": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3183, - 3202 - ], - "op": "DUP1", - "path": "30", - "statement": 32 - }, - "2838": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3183, - 3202 - ], - "op": "SLOAD", - "path": "30" - }, - "2839": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3205, - 3220 - ], - "op": "TIMESTAMP", - "path": "30" - }, - "2840": { - "op": "PUSH1", - "value": "0x1" - }, - "2842": { - "op": "PUSH1", - "value": "0xC0" - }, - "2844": { - "op": "SHL" - }, - "2845": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3183, - 3202 - ], - "op": "SWAP1", - "path": "30" - }, - "2846": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3183, - 3202 - ], - "op": "SWAP2", - "path": "30" - }, - "2847": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3183, - 3202 - ], - "op": "DIV", - "path": "30" - }, - "2848": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3183, - 3202 - ], - "op": "PUSH4", - "path": "30", - "value": "0xFFFFFFFF" - }, - "2853": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3183, - 3202 - ], - "op": "AND", - "path": "30" - }, - "2854": { - "branch": 46, - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3183, - 3220 - ], - "op": "LT", - "path": "30" - }, - "2855": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3162, - 3272 - ], - "op": "PUSH2", - "path": "30", - "value": "0xB72" - }, - "2858": { - "branch": 46, - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3162, - 3272 - ], - "op": "JUMPI", - "path": "30" - }, - "2859": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3162, - 3272 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "2861": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3162, - 3272 - ], - "op": "MLOAD", - "path": "30" - }, - "2862": { - "op": "PUSH3", - "value": "0x461BCD" - }, - "2866": { - "op": "PUSH1", - "value": "0xE5" - }, - "2868": { - "op": "SHL" - }, - "2869": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3162, - 3272 - ], - "op": "DUP2", - "path": "30" - }, - "2870": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3162, - 3272 - ], - "op": "MSTORE", - "path": "30" - }, - "2871": { - "op": "PUSH1", - "value": "0x20" - }, - "2873": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3162, - 3272 - ], - "op": "PUSH1", - "path": "30", - "value": "0x4" - }, - "2875": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3162, - 3272 - ], - "op": "DUP3", - "path": "30" - }, - "2876": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3162, - 3272 - ], - "op": "ADD", - "path": "30" - }, - "2877": { - "op": "MSTORE" - }, - "2878": { - "op": "PUSH1", - "value": "0x1A" - }, - "2880": { - "op": "PUSH1", - "value": "0x24" - }, - "2882": { - "op": "DUP3" - }, - "2883": { - "op": "ADD" - }, - "2884": { - "op": "MSTORE" - }, - "2885": { - "op": "PUSH32", - "value": "0x506F6C6963792069732063757272656E746C7920616374697665000000000000" - }, - "2918": { - "op": "PUSH1", - "value": "0x44" - }, - "2920": { - "op": "DUP3" - }, - "2921": { - "op": "ADD" - }, - "2922": { - "op": "MSTORE" - }, - "2923": { - "op": "PUSH1", - "value": "0x64" - }, - "2925": { - "op": "ADD" - }, - "2926": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3162, - 3272 - ], - "op": "PUSH2", - "path": "30", - "value": "0x53B" - }, - "2929": { - "op": "JUMP" - }, - "2930": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3162, - 3272 - ], - "op": "JUMPDEST", - "path": "30" - }, - "2931": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3283, - 3319 - ], - "op": "DUP1", - "path": "30", - "statement": 33 - }, - "2932": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3283, - 3319 - ], - "op": "SLOAD", - "path": "30" - }, - "2933": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "PUSH2", - "path": "30", - "statement": 34, - "value": "0xFFFF" - }, - "2936": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "DUP6", - "path": "30" - }, - "2937": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "AND", - "path": "30" - }, - "2938": { - "op": "PUSH1", - "value": "0x1" - }, - "2940": { - "op": "PUSH1", - "value": "0xE0" - }, - "2942": { - "op": "SHL" - }, - "2943": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "MUL", - "path": "30" - }, - "2944": { - "op": "PUSH2", - "value": "0xFFFF" - }, - "2947": { - "op": "PUSH1", - "value": "0xE0" - }, - "2949": { - "op": "SHL" - }, - "2950": { - "op": "NOT" - }, - "2951": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "PUSH4", - "path": "30", - "statement": 35, - "value": "0xFFFFFFFF" - }, - "2956": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3378, - 3413 - ], - "op": "DUP6", - "path": "30", - "statement": 36 - }, - "2957": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3378, - 3413 - ], - "op": "DUP2", - "path": "30" - }, - "2958": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3378, - 3413 - ], - "op": "AND", - "path": "30" - }, - "2959": { - "op": "PUSH1", - "value": "0x1" - }, - "2961": { - "op": "PUSH1", - "value": "0xC0" - }, - "2963": { - "op": "SHL" - }, - "2964": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3378, - 3413 - ], - "op": "MUL", - "path": "30" - }, - "2965": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "SWAP2", - "path": "30" - }, - "2966": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "SWAP1", - "path": "30" - }, - "2967": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "SWAP2", - "path": "30" - }, - "2968": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "AND", - "path": "30" - }, - "2969": { - "op": "PUSH6", - "value": "0xFFFFFFFFFFFF" - }, - "2976": { - "op": "PUSH1", - "value": "0xC0" - }, - "2978": { - "op": "SHL" - }, - "2979": { - "op": "NOT" - }, - "2980": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "SWAP2", - "path": "30" - }, - "2981": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "DUP8", - "path": "30" - }, - "2982": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "AND", - "path": "30" - }, - "2983": { - "op": "PUSH1", - "value": "0x1" - }, - "2985": { - "op": "PUSH1", - "value": "0xA0" - }, - "2987": { - "op": "SHL" - }, - "2988": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "MUL", - "path": "30" - }, - "2989": { - "op": "PUSH4", - "value": "0xFFFFFFFF" - }, - "2994": { - "op": "PUSH1", - "value": "0xA0" - }, - "2996": { - "op": "SHL" - }, - "2997": { - "op": "NOT" - }, - "2998": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3308, - 3318 - ], - "op": "CALLER", - "path": "30" - }, - "2999": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "SWAP1", - "path": "30" - }, - "3000": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "DUP2", - "path": "30" - }, - "3001": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "AND", - "path": "30" - }, - "3002": { - "op": "PUSH1", - "value": "0x1" - }, - "3004": { - "op": "PUSH1", - "value": "0x1" - }, - "3006": { - "op": "PUSH1", - "value": "0xC0" - }, - "3008": { - "op": "SHL" - }, - "3009": { - "op": "SUB" - }, - "3010": { - "op": "NOT" - }, - "3011": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "SWAP1", - "path": "30" - }, - "3012": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "SWAP7", - "path": "30" - }, - "3013": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "AND", - "path": "30" - }, - "3014": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "SWAP6", - "path": "30" - }, - "3015": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "SWAP1", - "path": "30" - }, - "3016": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "SWAP6", - "path": "30" - }, - "3017": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "OR", - "path": "30" - }, - "3018": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3329, - 3368 - ], - "op": "OR", - "path": "30" - }, - "3019": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "SWAP2", - "path": "30" - }, - "3020": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "SWAP1", - "path": "30" - }, - "3021": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "SWAP2", - "path": "30" - }, - "3022": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "AND", - "path": "30" - }, - "3023": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "OR", - "path": "30" - }, - "3024": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "OR", - "path": "30" - }, - "3025": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "DUP3", - "path": "30" - }, - "3026": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3423, - 3442 - ], - "op": "SSTORE", - "path": "30" - }, - "3027": { - "op": "PUSH1", - "value": "0x1" - }, - "3029": { - "op": "PUSH1", - "value": "0x1" - }, - "3031": { - "op": "PUSH1", - "value": "0xA0" - }, - "3033": { - "op": "SHL" - }, - "3034": { - "op": "SUB" - }, - "3035": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3457, - 3483 - ], - "op": "DUP7", - "path": "30" - }, - "3036": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3457, - 3483 - ], - "op": "AND", - "path": "30" - }, - "3037": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3457, - 3483 - ], - "op": "EQ", - "path": "30" - }, - "3038": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3457, - 3483 - ], - "op": "DUP1", - "path": "30" - }, - "3039": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3457, - 3483 - ], - "op": "ISZERO", - "path": "30" - }, - "3040": { - "branch": 47, - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3457, - 3483 - ], - "op": "SWAP1", - "path": "30" - }, - "3041": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3457, - 3513 - ], - "op": "PUSH2", - "path": "30", - "value": "0xBF2" - }, - "3044": { - "branch": 47, - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3457, - 3513 - ], - "op": "JUMPI", - "path": "30" - }, - "3045": { - "op": "POP" - }, - "3046": { - "op": "PUSH1", - "value": "0x1" - }, - "3048": { - "op": "PUSH1", - "value": "0x1" - }, - "3050": { - "op": "PUSH1", - "value": "0xA0" - }, - "3052": { - "op": "SHL" - }, - "3053": { - "op": "SUB" - }, - "3054": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3487, - 3513 - ], - "op": "DUP6", - "path": "30" - }, - "3055": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3487, - 3513 - ], - "op": "AND", - "path": "30" - }, - "3056": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3487, - 3513 - ], - "op": "ISZERO", - "path": "30" - }, - "3057": { - "branch": 48, - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3487, - 3513 - ], - "op": "ISZERO", - "path": "30" - }, - "3058": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3457, - 3513 - ], - "op": "JUMPDEST", - "path": "30" - }, - "3059": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3453, - 3567 - ], - "op": "ISZERO", - "path": "30" - }, - "3060": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3453, - 3567 - ], - "op": "PUSH2", - "path": "30", - "value": "0xC15" - }, - "3063": { - "branch": 48, - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3453, - 3567 - ], - "op": "JUMPI", - "path": "30" - }, - "3064": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3529, - 3541 - ], - "op": "PUSH1", - "path": "30", - "statement": 37, - "value": "0x1" - }, - "3066": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3529, - 3541 - ], - "op": "DUP2", - "path": "30" - }, - "3067": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3529, - 3541 - ], - "op": "ADD", - "path": "30" - }, - "3068": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3529, - 3556 - ], - "op": "DUP1", - "path": "30" - }, - "3069": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3529, - 3556 - ], - "op": "SLOAD", - "path": "30" - }, - "3070": { - "op": "PUSH1", - "value": "0x1" - }, - "3072": { - "op": "PUSH1", - "value": "0x1" - }, - "3074": { - "op": "PUSH1", - "value": "0xA0" - }, - "3076": { - "op": "SHL" - }, - "3077": { - "op": "SUB" - }, - "3078": { - "op": "NOT" - }, - "3079": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3529, - 3556 - ], - "op": "AND", - "path": "30" - }, - "3080": { - "op": "PUSH1", - "value": "0x1" - }, - "3082": { - "op": "PUSH1", - "value": "0x1" - }, - "3084": { - "op": "PUSH1", - "value": "0xA0" - }, - "3086": { - "op": "SHL" - }, - "3087": { - "op": "SUB" - }, - "3088": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3529, - 3556 - ], - "op": "DUP8", - "path": "30" - }, - "3089": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3529, - 3556 - ], - "op": "AND", - "path": "30" - }, - "3090": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3529, - 3556 - ], - "op": "OR", - "path": "30" - }, - "3091": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3529, - 3556 - ], - "op": "SWAP1", - "path": "30" - }, - "3092": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3529, - 3556 - ], - "op": "SSTORE", - "path": "30" - }, - "3093": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3453, - 3567 - ], - "op": "JUMPDEST", - "path": "30" - }, - "3094": { - "op": "PUSH1", - "value": "0x1" - }, - "3096": { - "op": "PUSH1", - "value": "0x1" - }, - "3098": { - "op": "PUSH1", - "value": "0xA0" - }, - "3100": { - "op": "SHL" - }, - "3101": { - "op": "SUB" - }, - "3102": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3656, - 3682 - ], - "op": "DUP6", - "path": "30", - "statement": 38 - }, - "3103": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3656, - 3682 - ], - "op": "AND", - "path": "30" - }, - "3104": { - "branch": 49, - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3656, - 3682 - ], - "op": "ISZERO", - "path": "30" - }, - "3105": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3656, - 3710 - ], - "op": "PUSH2", - "path": "30", - "value": "0xC2A" - }, - "3108": { - "branch": 49, - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3656, - 3710 - ], - "op": "JUMPI", - "path": "30" - }, - "3109": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3698, - 3710 - ], - "op": "DUP5", - "path": "30" - }, - "3110": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3656, - 3710 - ], - "op": "PUSH2", - "path": "30", - "value": "0xC2C" - }, - "3113": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3656, - 3710 - ], - "op": "JUMP", - "path": "30" - }, - "3114": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3656, - 3710 - ], - "op": "JUMPDEST", - "path": "30" - }, - "3115": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3685, - 3695 - ], - "op": "CALLER", - "path": "30" - }, - "3116": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3656, - 3710 - ], - "op": "JUMPDEST", - "path": "30" - }, - "3117": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "PUSH1", - "path": "30", - "value": "0x40" - }, - "3119": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "DUP1", - "path": "30" - }, - "3120": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "MLOAD", - "path": "30" - }, - "3121": { - "op": "PUSH2", - "value": "0xFFFF" - }, - "3124": { - "op": "DUP8" - }, - "3125": { - "op": "AND" - }, - "3126": { - "op": "DUP2" - }, - "3127": { - "op": "MSTORE" - }, - "3128": { - "op": "PUSH4", - "value": "0xFFFFFFFF" - }, - "3133": { - "op": "DUP7" - }, - "3134": { - "op": "DUP2" - }, - "3135": { - "op": "AND" - }, - "3136": { - "op": "PUSH1", - "value": "0x20" - }, - "3138": { - "op": "DUP4" - }, - "3139": { - "op": "ADD" - }, - "3140": { - "op": "MSTORE" - }, - "3141": { - "op": "DUP6" - }, - "3142": { - "op": "AND" - }, - "3143": { - "op": "DUP2" - }, - "3144": { - "op": "DUP4" - }, - "3145": { - "op": "ADD" - }, - "3146": { - "op": "MSTORE" - }, - "3147": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3799, - 3808 - ], - "op": "CALLVALUE", - "path": "30" - }, - "3148": { - "op": "PUSH1", - "value": "0x60" - }, - "3150": { - "op": "DUP3" - }, - "3151": { - "op": "ADD" - }, - "3152": { - "op": "MSTORE" - }, - "3153": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "SWAP1", - "path": "30" - }, - "3154": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "MLOAD", - "path": "30" - }, - "3155": { - "op": "PUSH1", - "value": "0x1" - }, - "3157": { - "op": "PUSH1", - "value": "0x1" - }, - "3159": { - "op": "PUSH1", - "value": "0xA0" - }, - "3161": { - "op": "SHL" - }, - "3162": { - "op": "SUB" - }, - "3163": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "SWAP3", - "path": "30" - }, - "3164": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "SWAP1", - "path": "30" - }, - "3165": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "SWAP3", - "path": "30" - }, - "3166": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "AND", - "path": "30" - }, - "3167": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "SWAP2", - "path": "30" - }, - "3168": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3632, - 3642 - ], - "op": "CALLER", - "path": "30" - }, - "3169": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3632, - 3642 - ], - "op": "SWAP2", - "path": "30" - }, - "3170": { - "op": "PUSH1", - "value": "0x1" - }, - "3172": { - "op": "PUSH1", - "value": "0x1" - }, - "3174": { - "op": "PUSH1", - "value": "0x80" - }, - "3176": { - "op": "SHL" - }, - "3177": { - "op": "SUB" - }, - "3178": { - "op": "NOT" - }, - "3179": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "DUP11", - "path": "30" - }, - "3180": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "AND", - "path": "30" - }, - "3181": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "SWAP2", - "path": "30" - }, - "3182": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "PUSH32", - "path": "30", - "value": "0x3E7E513DDAF550A2B9B8C400D5A2428F924D4AAE6D8DE14C1E2C42E8431FCA15" - }, - "3215": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "SWAP2", - "path": "30" - }, - "3216": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "DUP2", - "path": "30" - }, - "3217": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "SWAP1", - "path": "30" - }, - "3218": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "SUB", - "path": "30" - }, - "3219": { - "op": "PUSH1", - "value": "0x80" - }, - "3221": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "ADD", - "path": "30" - }, - "3222": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "SWAP1", - "path": "30" - }, - "3223": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 3582, - 3818 - ], - "op": "LOG4", - "path": "30" - }, - "3224": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 2890, - 3825 - ], - "op": "SWAP6", - "path": "30" - }, - "3225": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 2890, - 3825 - ], - "op": "SWAP5", - "path": "30" - }, - "3226": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 2890, - 3825 - ], - "op": "POP", - "path": "30" - }, - "3227": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 2890, - 3825 - ], - "op": "POP", - "path": "30" - }, - "3228": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 2890, - 3825 - ], - "op": "POP", - "path": "30" - }, - "3229": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 2890, - 3825 - ], - "op": "POP", - "path": "30" - }, - "3230": { - "fn": "SubscriptionManager._createPolicy", - "offset": [ - 2890, - 3825 - ], - "op": "POP", - "path": "30" - }, - "3231": { - "fn": "SubscriptionManager._createPolicy", - "jump": "o", - "offset": [ - 2890, - 3825 - ], - "op": "JUMP", - "path": "30" - }, - "3232": { - "fn": "AccessControlUpgradeable._setupRole", - "offset": [ - 6587, - 6697 - ], - "op": "JUMPDEST", - "path": "0" - }, - "3233": { - "fn": "AccessControlUpgradeable._setupRole", - "offset": [ - 6665, - 6690 - ], - "op": "PUSH2", - "path": "0", - "statement": 39, - "value": "0x626" - }, - "3236": { - "fn": "AccessControlUpgradeable._setupRole", - "offset": [ - 6676, - 6680 - ], - "op": "DUP3", - "path": "0" - }, - "3237": { - "fn": "AccessControlUpgradeable._setupRole", - "offset": [ - 6682, - 6689 - ], - "op": "DUP3", - "path": "0" - }, - "3238": { - "fn": "AccessControlUpgradeable._setupRole", - "offset": [ - 6665, - 6675 - ], - "op": "PUSH2", - "path": "0", - "value": "0x9C9" - }, - "3241": { - "fn": "AccessControlUpgradeable._setupRole", - "jump": "i", - "offset": [ - 6665, - 6690 - ], - "op": "JUMP", - "path": "0" - }, - "3242": { - "op": "JUMPDEST" - }, - "3243": { - "op": "PUSH1", - "value": "0x60" - }, - "3245": { - "op": "PUSH1", - "value": "0x0" - }, - "3247": { - "op": "PUSH2", - "value": "0xCB9" - }, - "3250": { - "op": "DUP4" - }, - "3251": { - "op": "PUSH1", - "value": "0x2" - }, - "3253": { - "op": "PUSH2", - "value": "0x1038" - }, - "3256": { - "jump": "i", - "op": "JUMP" - }, - "3257": { - "op": "JUMPDEST" - }, - "3258": { - "op": "PUSH2", - "value": "0xCC4" - }, - "3261": { - "op": "SWAP1" - }, - "3262": { - "op": "PUSH1", - "value": "0x2" - }, - "3264": { - "op": "PUSH2", - "value": "0x112B" - }, - "3267": { - "jump": "i", - "op": "JUMP" - }, - "3268": { - "op": "JUMPDEST" - }, - "3269": { - "op": "PUSH8", - "value": "0xFFFFFFFFFFFFFFFF" - }, - "3278": { - "op": "DUP2" - }, - "3279": { - "op": "GT" - }, - "3280": { - "op": "ISZERO" - }, - "3281": { - "op": "PUSH2", - "value": "0xCDC" - }, - "3284": { - "op": "JUMPI" - }, - "3285": { - "op": "PUSH2", - "value": "0xCDC" - }, - "3288": { - "op": "PUSH2", - "value": "0x1143" - }, - "3291": { - "jump": "i", - "op": "JUMP" - }, - "3292": { - "op": "JUMPDEST" - }, - "3293": { - "op": "PUSH1", - "value": "0x40" - }, - "3295": { - "op": "MLOAD" - }, - "3296": { - "op": "SWAP1" - }, - "3297": { - "op": "DUP1" - }, - "3298": { - "op": "DUP3" - }, - "3299": { - "op": "MSTORE" - }, - "3300": { - "op": "DUP1" - }, - "3301": { - "op": "PUSH1", - "value": "0x1F" - }, - "3303": { - "op": "ADD" - }, - "3304": { - "op": "PUSH1", - "value": "0x1F" - }, - "3306": { - "op": "NOT" - }, - "3307": { - "op": "AND" - }, - "3308": { - "op": "PUSH1", - "value": "0x20" - }, - "3310": { - "op": "ADD" - }, - "3311": { - "op": "DUP3" - }, - "3312": { - "op": "ADD" - }, - "3313": { - "op": "PUSH1", - "value": "0x40" - }, - "3315": { - "op": "MSTORE" - }, - "3316": { - "op": "DUP1" - }, - "3317": { - "op": "ISZERO" - }, - "3318": { - "op": "PUSH2", - "value": "0xD06" - }, - "3321": { - "op": "JUMPI" - }, - "3322": { - "op": "PUSH1", - "value": "0x20" - }, - "3324": { - "op": "DUP3" - }, - "3325": { - "op": "ADD" - }, - "3326": { - "op": "DUP2" - }, - "3327": { - "op": "DUP1" - }, - "3328": { - "op": "CALLDATASIZE" - }, - "3329": { - "op": "DUP4" - }, - "3330": { - "op": "CALLDATACOPY" - }, - "3331": { - "op": "ADD" - }, - "3332": { - "op": "SWAP1" - }, - "3333": { - "op": "POP" - }, - "3334": { - "op": "JUMPDEST" - }, - "3335": { - "op": "POP" - }, - "3336": { - "op": "SWAP1" - }, - "3337": { - "op": "POP" - }, - "3338": { - "op": "PUSH1", - "value": "0x3" - }, - "3340": { - "op": "PUSH1", - "value": "0xFC" - }, - "3342": { - "op": "SHL" - }, - "3343": { - "op": "DUP2" - }, - "3344": { - "op": "PUSH1", - "value": "0x0" - }, - "3346": { - "op": "DUP2" - }, - "3347": { - "op": "MLOAD" - }, - "3348": { - "op": "DUP2" - }, - "3349": { - "op": "LT" - }, - "3350": { - "op": "PUSH2", - "value": "0xD21" - }, - "3353": { - "op": "JUMPI" - }, - "3354": { - "op": "PUSH2", - "value": "0xD21" - }, - "3357": { - "op": "PUSH2", - "value": "0x1159" - }, - "3360": { - "jump": "i", - "op": "JUMP" - }, - "3361": { - "op": "JUMPDEST" - }, - "3362": { - "op": "PUSH1", - "value": "0x20" - }, - "3364": { - "op": "ADD" - }, - "3365": { - "op": "ADD" - }, - "3366": { - "op": "SWAP1" - }, - "3367": { - "op": "PUSH1", - "value": "0x1" - }, - "3369": { - "op": "PUSH1", - "value": "0x1" - }, - "3371": { - "op": "PUSH1", - "value": "0xF8" - }, - "3373": { - "op": "SHL" - }, - "3374": { - "op": "SUB" - }, - "3375": { - "op": "NOT" - }, - "3376": { - "op": "AND" - }, - "3377": { - "op": "SWAP1" - }, - "3378": { - "op": "DUP2" - }, - "3379": { - "op": "PUSH1", - "value": "0x0" - }, - "3381": { - "op": "BYTE" - }, - "3382": { - "op": "SWAP1" - }, - "3383": { - "op": "MSTORE8" - }, - "3384": { - "op": "POP" - }, - "3385": { - "op": "PUSH1", - "value": "0xF" - }, - "3387": { - "op": "PUSH1", - "value": "0xFB" - }, - "3389": { - "op": "SHL" - }, - "3390": { - "op": "DUP2" - }, - "3391": { - "op": "PUSH1", - "value": "0x1" - }, - "3393": { - "op": "DUP2" - }, - "3394": { - "op": "MLOAD" - }, - "3395": { - "op": "DUP2" - }, - "3396": { - "op": "LT" - }, - "3397": { - "op": "PUSH2", - "value": "0xD50" - }, - "3400": { - "op": "JUMPI" - }, - "3401": { - "op": "PUSH2", - "value": "0xD50" - }, - "3404": { - "op": "PUSH2", - "value": "0x1159" - }, - "3407": { - "jump": "i", - "op": "JUMP" - }, - "3408": { - "op": "JUMPDEST" - }, - "3409": { - "op": "PUSH1", - "value": "0x20" - }, - "3411": { - "op": "ADD" - }, - "3412": { - "op": "ADD" - }, - "3413": { - "op": "SWAP1" - }, - "3414": { - "op": "PUSH1", - "value": "0x1" - }, - "3416": { - "op": "PUSH1", - "value": "0x1" - }, - "3418": { - "op": "PUSH1", - "value": "0xF8" - }, - "3420": { - "op": "SHL" - }, - "3421": { - "op": "SUB" - }, - "3422": { - "op": "NOT" - }, - "3423": { - "op": "AND" - }, - "3424": { - "op": "SWAP1" - }, - "3425": { - "op": "DUP2" - }, - "3426": { - "op": "PUSH1", - "value": "0x0" - }, - "3428": { - "op": "BYTE" - }, - "3429": { - "op": "SWAP1" - }, - "3430": { - "op": "MSTORE8" - }, - "3431": { - "op": "POP" - }, - "3432": { - "op": "PUSH1", - "value": "0x0" - }, - "3434": { - "op": "PUSH2", - "value": "0xD74" - }, - "3437": { - "op": "DUP5" - }, - "3438": { - "op": "PUSH1", - "value": "0x2" - }, - "3440": { - "op": "PUSH2", - "value": "0x1038" - }, - "3443": { - "jump": "i", - "op": "JUMP" - }, - "3444": { - "op": "JUMPDEST" - }, - "3445": { - "op": "PUSH2", - "value": "0xD7F" - }, - "3448": { - "op": "SWAP1" - }, - "3449": { - "op": "PUSH1", - "value": "0x1" - }, - "3451": { - "op": "PUSH2", - "value": "0x112B" - }, - "3454": { - "jump": "i", - "op": "JUMP" - }, - "3455": { - "op": "JUMPDEST" - }, - "3456": { - "op": "SWAP1" - }, - "3457": { - "op": "POP" - }, - "3458": { - "op": "JUMPDEST" - }, - "3459": { - "op": "PUSH1", - "value": "0x1" - }, - "3461": { - "op": "DUP2" - }, - "3462": { - "op": "GT" - }, - "3463": { - "op": "ISZERO" - }, - "3464": { - "op": "PUSH2", - "value": "0xDF7" - }, - "3467": { - "op": "JUMPI" - }, - "3468": { - "op": "PUSH16", - "value": "0x181899199A1A9B1B9C1CB0B131B232B3" - }, - "3485": { - "op": "PUSH1", - "value": "0x81" - }, - "3487": { - "op": "SHL" - }, - "3488": { - "op": "DUP6" - }, - "3489": { - "op": "PUSH1", - "value": "0xF" - }, - "3491": { - "op": "AND" - }, - "3492": { - "op": "PUSH1", - "value": "0x10" - }, - "3494": { - "op": "DUP2" - }, - "3495": { - "op": "LT" - }, - "3496": { - "op": "PUSH2", - "value": "0xDB3" - }, - "3499": { - "op": "JUMPI" - }, - "3500": { - "op": "PUSH2", - "value": "0xDB3" - }, - "3503": { - "op": "PUSH2", - "value": "0x1159" - }, - "3506": { - "jump": "i", - "op": "JUMP" - }, - "3507": { - "op": "JUMPDEST" - }, - "3508": { - "op": "BYTE" - }, - "3509": { - "op": "PUSH1", - "value": "0xF8" - }, - "3511": { - "op": "SHL" - }, - "3512": { - "op": "DUP3" - }, - "3513": { - "op": "DUP3" - }, - "3514": { - "op": "DUP2" - }, - "3515": { - "op": "MLOAD" - }, - "3516": { - "op": "DUP2" - }, - "3517": { - "op": "LT" - }, - "3518": { - "op": "PUSH2", - "value": "0xDC9" - }, - "3521": { - "op": "JUMPI" - }, - "3522": { - "op": "PUSH2", - "value": "0xDC9" - }, - "3525": { - "op": "PUSH2", - "value": "0x1159" - }, - "3528": { - "jump": "i", - "op": "JUMP" - }, - "3529": { - "op": "JUMPDEST" - }, - "3530": { - "op": "PUSH1", - "value": "0x20" - }, - "3532": { - "op": "ADD" - }, - "3533": { - "op": "ADD" - }, - "3534": { - "op": "SWAP1" - }, - "3535": { - "op": "PUSH1", - "value": "0x1" - }, - "3537": { - "op": "PUSH1", - "value": "0x1" - }, - "3539": { - "op": "PUSH1", - "value": "0xF8" - }, - "3541": { - "op": "SHL" - }, - "3542": { - "op": "SUB" - }, - "3543": { - "op": "NOT" - }, - "3544": { - "op": "AND" - }, - "3545": { - "op": "SWAP1" - }, - "3546": { - "op": "DUP2" - }, - "3547": { - "op": "PUSH1", - "value": "0x0" - }, - "3549": { - "op": "BYTE" - }, - "3550": { - "op": "SWAP1" - }, - "3551": { - "op": "MSTORE8" - }, - "3552": { - "op": "POP" - }, - "3553": { - "op": "PUSH1", - "value": "0x4" - }, - "3555": { - "op": "SWAP5" - }, - "3556": { - "op": "SWAP1" - }, - "3557": { - "op": "SWAP5" - }, - "3558": { - "op": "SHR" - }, - "3559": { - "op": "SWAP4" - }, - "3560": { - "op": "PUSH2", - "value": "0xDF0" - }, - "3563": { - "op": "DUP2" - }, - "3564": { - "op": "PUSH2", - "value": "0x116F" - }, - "3567": { - "jump": "i", - "op": "JUMP" - }, - "3568": { - "op": "JUMPDEST" - }, - "3569": { - "op": "SWAP1" - }, - "3570": { - "op": "POP" - }, - "3571": { - "op": "PUSH2", - "value": "0xD82" - }, - "3574": { - "op": "JUMP" - }, - "3575": { - "op": "JUMPDEST" - }, - "3576": { - "op": "POP" - }, - "3577": { - "op": "DUP4" - }, - "3578": { - "op": "ISZERO" - }, - "3579": { - "op": "PUSH2", - "value": "0xE46" - }, - "3582": { - "op": "JUMPI" - }, - "3583": { - "op": "PUSH1", - "value": "0x40" - }, - "3585": { - "op": "MLOAD" - }, - "3586": { - "op": "PUSH3", - "value": "0x461BCD" - }, - "3590": { - "op": "PUSH1", - "value": "0xE5" - }, - "3592": { - "op": "SHL" - }, - "3593": { - "op": "DUP2" - }, - "3594": { - "op": "MSTORE" - }, - "3595": { - "op": "PUSH1", - "value": "0x20" - }, - "3597": { - "op": "PUSH1", - "value": "0x4" - }, - "3599": { - "op": "DUP3" - }, - "3600": { - "op": "ADD" - }, - "3601": { - "op": "DUP2" - }, - "3602": { - "op": "SWAP1" - }, - "3603": { - "op": "MSTORE" - }, - "3604": { - "op": "PUSH1", - "value": "0x24" - }, - "3606": { - "op": "DUP3" - }, - "3607": { - "op": "ADD" - }, - "3608": { - "op": "MSTORE" - }, - "3609": { - "op": "PUSH32", - "value": "0x537472696E67733A20686578206C656E67746820696E73756666696369656E74" - }, - "3642": { - "op": "PUSH1", - "value": "0x44" - }, - "3644": { - "op": "DUP3" - }, - "3645": { - "op": "ADD" - }, - "3646": { - "op": "MSTORE" - }, - "3647": { - "op": "PUSH1", - "value": "0x64" - }, - "3649": { - "op": "ADD" - }, - "3650": { - "op": "PUSH2", - "value": "0x53B" - }, - "3653": { - "op": "JUMP" - }, - "3654": { - "op": "JUMPDEST" - }, - "3655": { - "op": "SWAP4" - }, - "3656": { - "op": "SWAP3" - }, - "3657": { - "op": "POP" - }, - "3658": { - "op": "POP" - }, - "3659": { - "op": "POP" - }, - "3660": { - "jump": "o", - "op": "JUMP" - }, - "3661": { - "op": "JUMPDEST" - }, - "3662": { - "op": "PUSH1", - "value": "0x1" - }, - "3664": { - "op": "PUSH1", - "value": "0x1" - }, - "3666": { - "op": "PUSH1", - "value": "0xA0" - }, - "3668": { - "op": "SHL" - }, - "3669": { - "op": "SUB" - }, - "3670": { - "op": "DUP2" - }, - "3671": { - "op": "AND" - }, - "3672": { - "op": "DUP2" - }, - "3673": { - "op": "EQ" - }, - "3674": { - "op": "PUSH2", - "value": "0xE62" - }, - "3677": { - "op": "JUMPI" - }, - "3678": { - "op": "PUSH1", - "value": "0x0" - }, - "3680": { - "op": "DUP1" - }, - "3681": { - "op": "REVERT" - }, - "3682": { - "op": "JUMPDEST" - }, - "3683": { - "op": "POP" - }, - "3684": { - "jump": "o", - "op": "JUMP" - }, - "3685": { - "op": "JUMPDEST" - }, - "3686": { - "op": "PUSH1", - "value": "0x0" - }, - "3688": { - "op": "PUSH1", - "value": "0x20" - }, - "3690": { - "op": "DUP3" - }, - "3691": { - "op": "DUP5" - }, - "3692": { - "op": "SUB" - }, - "3693": { - "op": "SLT" - }, - "3694": { - "op": "ISZERO" - }, - "3695": { - "op": "PUSH2", - "value": "0xE77" - }, - "3698": { - "op": "JUMPI" - }, - "3699": { - "op": "PUSH1", - "value": "0x0" - }, - "3701": { - "op": "DUP1" - }, - "3702": { - "op": "REVERT" - }, - "3703": { - "op": "JUMPDEST" - }, - "3704": { - "op": "DUP2" - }, - "3705": { - "op": "CALLDATALOAD" - }, - "3706": { - "op": "PUSH2", - "value": "0xE46" - }, - "3709": { - "op": "DUP2" - }, - "3710": { - "op": "PUSH2", - "value": "0xE4D" - }, - "3713": { - "jump": "i", - "op": "JUMP" - }, - "3714": { - "op": "JUMPDEST" - }, - "3715": { - "op": "PUSH1", - "value": "0x0" - }, - "3717": { - "op": "PUSH1", - "value": "0x20" - }, - "3719": { - "op": "DUP3" - }, - "3720": { - "op": "DUP5" - }, - "3721": { - "op": "SUB" - }, - "3722": { - "op": "SLT" - }, - "3723": { - "op": "ISZERO" - }, - "3724": { - "op": "PUSH2", - "value": "0xE94" - }, - "3727": { - "op": "JUMPI" - }, - "3728": { - "op": "PUSH1", - "value": "0x0" - }, - "3730": { - "op": "DUP1" - }, - "3731": { - "op": "REVERT" - }, - "3732": { - "op": "JUMPDEST" - }, - "3733": { - "op": "DUP2" - }, - "3734": { - "op": "CALLDATALOAD" - }, - "3735": { - "op": "PUSH1", - "value": "0x1" - }, - "3737": { - "op": "PUSH1", - "value": "0x1" - }, - "3739": { - "op": "PUSH1", - "value": "0xE0" - }, - "3741": { - "op": "SHL" - }, - "3742": { - "op": "SUB" - }, - "3743": { - "op": "NOT" - }, - "3744": { - "op": "DUP2" - }, - "3745": { - "op": "AND" - }, - "3746": { - "op": "DUP2" - }, - "3747": { - "op": "EQ" - }, - "3748": { - "op": "PUSH2", - "value": "0xE46" - }, - "3751": { - "op": "JUMPI" - }, - "3752": { - "op": "PUSH1", - "value": "0x0" - }, - "3754": { - "op": "DUP1" - }, - "3755": { - "op": "REVERT" - }, - "3756": { - "op": "JUMPDEST" - }, - "3757": { - "op": "PUSH1", - "value": "0x0" - }, - "3759": { - "op": "PUSH1", - "value": "0x20" - }, - "3761": { - "op": "DUP3" - }, - "3762": { - "op": "DUP5" - }, - "3763": { - "op": "SUB" - }, - "3764": { - "op": "SLT" - }, - "3765": { - "op": "ISZERO" - }, - "3766": { - "op": "PUSH2", - "value": "0xEBE" - }, - "3769": { - "op": "JUMPI" - }, - "3770": { - "op": "PUSH1", - "value": "0x0" - }, - "3772": { - "op": "DUP1" - }, - "3773": { - "op": "REVERT" - }, - "3774": { - "op": "JUMPDEST" - }, - "3775": { - "op": "POP" - }, - "3776": { - "op": "CALLDATALOAD" - }, - "3777": { - "op": "SWAP2" - }, - "3778": { - "op": "SWAP1" - }, - "3779": { - "op": "POP" - }, - "3780": { - "jump": "o", - "op": "JUMP" - }, - "3781": { - "op": "JUMPDEST" - }, - "3782": { - "op": "DUP1" - }, - "3783": { - "op": "CALLDATALOAD" - }, - "3784": { - "op": "PUSH1", - "value": "0x1" - }, - "3786": { - "op": "PUSH1", - "value": "0x1" - }, - "3788": { - "op": "PUSH1", - "value": "0x80" - }, - "3790": { - "op": "SHL" - }, - "3791": { - "op": "SUB" - }, - "3792": { - "op": "NOT" - }, - "3793": { - "op": "DUP2" - }, - "3794": { - "op": "AND" - }, - "3795": { - "op": "DUP2" - }, - "3796": { - "op": "EQ" - }, - "3797": { - "op": "PUSH2", - "value": "0xEDD" - }, - "3800": { - "op": "JUMPI" - }, - "3801": { - "op": "PUSH1", - "value": "0x0" - }, - "3803": { - "op": "DUP1" - }, - "3804": { - "op": "REVERT" - }, - "3805": { - "op": "JUMPDEST" - }, - "3806": { - "op": "SWAP2" - }, - "3807": { - "op": "SWAP1" - }, - "3808": { - "op": "POP" - }, - "3809": { - "jump": "o", - "op": "JUMP" - }, - "3810": { - "op": "JUMPDEST" - }, - "3811": { - "op": "PUSH1", - "value": "0x0" - }, - "3813": { - "op": "PUSH1", - "value": "0x20" - }, - "3815": { - "op": "DUP3" - }, - "3816": { - "op": "DUP5" - }, - "3817": { - "op": "SUB" - }, - "3818": { - "op": "SLT" - }, - "3819": { - "op": "ISZERO" - }, - "3820": { - "op": "PUSH2", - "value": "0xEF4" - }, - "3823": { - "op": "JUMPI" - }, - "3824": { - "op": "PUSH1", - "value": "0x0" - }, - "3826": { - "op": "DUP1" - }, - "3827": { - "op": "REVERT" - }, - "3828": { - "op": "JUMPDEST" - }, - "3829": { - "op": "PUSH2", - "value": "0xE46" - }, - "3832": { - "op": "DUP3" - }, - "3833": { - "op": "PUSH2", - "value": "0xEC5" - }, - "3836": { - "jump": "i", - "op": "JUMP" - }, - "3837": { - "op": "JUMPDEST" - }, - "3838": { - "op": "PUSH1", - "value": "0x0" - }, - "3840": { - "op": "DUP1" - }, - "3841": { - "op": "PUSH1", - "value": "0x40" - }, - "3843": { - "op": "DUP4" - }, - "3844": { - "op": "DUP6" - }, - "3845": { - "op": "SUB" - }, - "3846": { - "op": "SLT" - }, - "3847": { - "op": "ISZERO" - }, - "3848": { - "op": "PUSH2", - "value": "0xF10" - }, - "3851": { - "op": "JUMPI" - }, - "3852": { - "op": "PUSH1", - "value": "0x0" - }, - "3854": { - "op": "DUP1" - }, - "3855": { - "op": "REVERT" - }, - "3856": { - "op": "JUMPDEST" - }, - "3857": { - "op": "DUP3" - }, - "3858": { - "op": "CALLDATALOAD" - }, - "3859": { - "op": "SWAP2" - }, - "3860": { - "op": "POP" - }, - "3861": { - "op": "PUSH1", - "value": "0x20" - }, - "3863": { - "op": "DUP4" - }, - "3864": { - "op": "ADD" - }, - "3865": { - "op": "CALLDATALOAD" - }, - "3866": { - "op": "PUSH2", - "value": "0xF22" - }, - "3869": { - "op": "DUP2" - }, - "3870": { - "op": "PUSH2", - "value": "0xE4D" - }, - "3873": { - "jump": "i", - "op": "JUMP" - }, - "3874": { - "op": "JUMPDEST" - }, - "3875": { - "op": "DUP1" - }, - "3876": { - "op": "SWAP2" - }, - "3877": { - "op": "POP" - }, - "3878": { - "op": "POP" - }, - "3879": { - "op": "SWAP3" - }, - "3880": { - "op": "POP" - }, - "3881": { - "op": "SWAP3" - }, - "3882": { - "op": "SWAP1" - }, - "3883": { - "op": "POP" - }, - "3884": { - "jump": "o", - "op": "JUMP" - }, - "3885": { - "op": "JUMPDEST" - }, - "3886": { - "op": "DUP1" - }, - "3887": { - "op": "CALLDATALOAD" - }, - "3888": { - "op": "PUSH2", - "value": "0xFFFF" - }, - "3891": { - "op": "DUP2" - }, - "3892": { - "op": "AND" - }, - "3893": { - "op": "DUP2" - }, - "3894": { - "op": "EQ" - }, - "3895": { - "op": "PUSH2", - "value": "0xEDD" - }, - "3898": { - "op": "JUMPI" - }, - "3899": { - "op": "PUSH1", - "value": "0x0" - }, - "3901": { - "op": "DUP1" - }, - "3902": { - "op": "REVERT" - }, - "3903": { - "op": "JUMPDEST" - }, - "3904": { - "op": "DUP1" - }, - "3905": { - "op": "CALLDATALOAD" - }, - "3906": { - "op": "PUSH4", - "value": "0xFFFFFFFF" - }, - "3911": { - "op": "DUP2" - }, - "3912": { - "op": "AND" - }, - "3913": { - "op": "DUP2" - }, - "3914": { - "op": "EQ" - }, - "3915": { - "op": "PUSH2", - "value": "0xEDD" - }, - "3918": { - "op": "JUMPI" - }, - "3919": { - "op": "PUSH1", - "value": "0x0" - }, - "3921": { - "op": "DUP1" - }, - "3922": { - "op": "REVERT" - }, - "3923": { - "op": "JUMPDEST" - }, - "3924": { - "op": "PUSH1", - "value": "0x0" - }, - "3926": { - "op": "DUP1" - }, - "3927": { - "op": "PUSH1", - "value": "0x0" - }, - "3929": { - "op": "DUP1" - }, - "3930": { - "op": "PUSH1", - "value": "0x0" - }, - "3932": { - "op": "PUSH1", - "value": "0xA0" - }, - "3934": { - "op": "DUP7" - }, - "3935": { - "op": "DUP9" - }, - "3936": { - "op": "SUB" - }, - "3937": { - "op": "SLT" - }, - "3938": { - "op": "ISZERO" - }, - "3939": { - "op": "PUSH2", - "value": "0xF6B" - }, - "3942": { - "op": "JUMPI" - }, - "3943": { - "op": "PUSH1", - "value": "0x0" - }, - "3945": { - "op": "DUP1" - }, - "3946": { - "op": "REVERT" - }, - "3947": { - "op": "JUMPDEST" - }, - "3948": { - "op": "PUSH2", - "value": "0xF74" - }, - "3951": { - "op": "DUP7" - }, - "3952": { - "op": "PUSH2", - "value": "0xEC5" - }, - "3955": { - "jump": "i", - "op": "JUMP" - }, - "3956": { - "op": "JUMPDEST" - }, - "3957": { - "op": "SWAP5" - }, - "3958": { - "op": "POP" - }, - "3959": { - "op": "PUSH1", - "value": "0x20" - }, - "3961": { - "op": "DUP7" - }, - "3962": { - "op": "ADD" - }, - "3963": { - "op": "CALLDATALOAD" - }, - "3964": { - "op": "PUSH2", - "value": "0xF84" - }, - "3967": { - "op": "DUP2" - }, - "3968": { - "op": "PUSH2", - "value": "0xE4D" - }, - "3971": { - "jump": "i", - "op": "JUMP" - }, - "3972": { - "op": "JUMPDEST" - }, - "3973": { - "op": "SWAP4" - }, - "3974": { - "op": "POP" - }, - "3975": { - "op": "PUSH2", - "value": "0xF92" - }, - "3978": { - "op": "PUSH1", - "value": "0x40" - }, - "3980": { - "op": "DUP8" - }, - "3981": { - "op": "ADD" - }, - "3982": { - "op": "PUSH2", - "value": "0xF2D" - }, - "3985": { - "jump": "i", - "op": "JUMP" - }, - "3986": { - "op": "JUMPDEST" - }, - "3987": { - "op": "SWAP3" - }, - "3988": { - "op": "POP" - }, - "3989": { - "op": "PUSH2", - "value": "0xFA0" - }, - "3992": { - "op": "PUSH1", - "value": "0x60" - }, - "3994": { - "op": "DUP8" - }, - "3995": { - "op": "ADD" - }, - "3996": { - "op": "PUSH2", - "value": "0xF3F" - }, - "3999": { - "jump": "i", - "op": "JUMP" - }, - "4000": { - "op": "JUMPDEST" - }, - "4001": { - "op": "SWAP2" - }, - "4002": { - "op": "POP" - }, - "4003": { - "op": "PUSH2", - "value": "0xFAE" - }, - "4006": { - "op": "PUSH1", - "value": "0x80" - }, - "4008": { - "op": "DUP8" - }, - "4009": { - "op": "ADD" - }, - "4010": { - "op": "PUSH2", - "value": "0xF3F" - }, - "4013": { - "jump": "i", - "op": "JUMP" - }, - "4014": { - "op": "JUMPDEST" - }, - "4015": { - "op": "SWAP1" - }, - "4016": { - "op": "POP" - }, - "4017": { - "op": "SWAP3" - }, - "4018": { - "op": "SWAP6" - }, - "4019": { - "op": "POP" - }, - "4020": { - "op": "SWAP3" - }, - "4021": { - "op": "SWAP6" - }, - "4022": { - "op": "SWAP1" - }, - "4023": { - "op": "SWAP4" - }, - "4024": { - "op": "POP" - }, - "4025": { - "jump": "o", - "op": "JUMP" - }, - "4026": { - "op": "JUMPDEST" - }, - "4027": { - "op": "PUSH1", - "value": "0x0" - }, - "4029": { - "op": "DUP1" - }, - "4030": { - "op": "PUSH1", - "value": "0x0" - }, - "4032": { - "op": "PUSH1", - "value": "0x60" - }, - "4034": { - "op": "DUP5" - }, - "4035": { - "op": "DUP7" - }, - "4036": { - "op": "SUB" - }, - "4037": { - "op": "SLT" - }, - "4038": { - "op": "ISZERO" - }, - "4039": { - "op": "PUSH2", - "value": "0xFCF" - }, - "4042": { - "op": "JUMPI" - }, - "4043": { - "op": "PUSH1", - "value": "0x0" - }, - "4045": { - "op": "DUP1" - }, - "4046": { - "op": "REVERT" - }, - "4047": { - "op": "JUMPDEST" - }, - "4048": { - "op": "PUSH2", - "value": "0xFD8" - }, - "4051": { - "op": "DUP5" - }, - "4052": { - "op": "PUSH2", - "value": "0xF2D" - }, - "4055": { - "jump": "i", - "op": "JUMP" - }, - "4056": { - "op": "JUMPDEST" - }, - "4057": { - "op": "SWAP3" - }, - "4058": { - "op": "POP" - }, - "4059": { - "op": "PUSH2", - "value": "0xFE6" - }, - "4062": { - "op": "PUSH1", - "value": "0x20" - }, - "4064": { - "op": "DUP6" - }, - "4065": { - "op": "ADD" - }, - "4066": { - "op": "PUSH2", - "value": "0xF3F" - }, - "4069": { - "jump": "i", - "op": "JUMP" - }, - "4070": { - "op": "JUMPDEST" - }, - "4071": { - "op": "SWAP2" - }, - "4072": { - "op": "POP" - }, - "4073": { - "op": "PUSH2", - "value": "0xFF4" - }, - "4076": { - "op": "PUSH1", - "value": "0x40" - }, - "4078": { - "op": "DUP6" - }, - "4079": { - "op": "ADD" - }, - "4080": { - "op": "PUSH2", - "value": "0xF3F" - }, - "4083": { - "jump": "i", - "op": "JUMP" - }, - "4084": { - "op": "JUMPDEST" - }, - "4085": { - "op": "SWAP1" - }, - "4086": { - "op": "POP" - }, - "4087": { - "op": "SWAP3" - }, - "4088": { - "op": "POP" - }, - "4089": { - "op": "SWAP3" - }, - "4090": { - "op": "POP" - }, - "4091": { - "op": "SWAP3" - }, - "4092": { - "jump": "o", - "op": "JUMP" - }, - "4093": { - "op": "JUMPDEST" - }, - "4094": { - "op": "PUSH4", - "value": "0x4E487B71" - }, - "4099": { - "op": "PUSH1", - "value": "0xE0" - }, - "4101": { - "op": "SHL" - }, - "4102": { - "op": "PUSH1", - "value": "0x0" - }, - "4104": { - "op": "MSTORE" - }, - "4105": { - "op": "PUSH1", - "value": "0x11" - }, - "4107": { - "op": "PUSH1", - "value": "0x4" - }, - "4109": { - "op": "MSTORE" - }, - "4110": { - "op": "PUSH1", - "value": "0x24" - }, - "4112": { - "op": "PUSH1", - "value": "0x0" - }, - "4114": { - "op": "REVERT" - }, - "4115": { - "op": "JUMPDEST" - }, - "4116": { - "op": "PUSH1", - "value": "0x0" - }, - "4118": { - "op": "PUSH4", - "value": "0xFFFFFFFF" - }, - "4123": { - "op": "DUP4" - }, - "4124": { - "op": "DUP2" - }, - "4125": { - "op": "AND" - }, - "4126": { - "op": "SWAP1" - }, - "4127": { - "op": "DUP4" - }, - "4128": { - "op": "AND" - }, - "4129": { - "op": "DUP2" - }, - "4130": { - "op": "DUP2" - }, - "4131": { - "op": "LT" - }, - "4132": { - "op": "ISZERO" - }, - "4133": { - "op": "PUSH2", - "value": "0x1030" - }, - "4136": { - "op": "JUMPI" - }, - "4137": { - "op": "PUSH2", - "value": "0x1030" - }, - "4140": { - "op": "PUSH2", - "value": "0xFFD" - }, - "4143": { - "jump": "i", - "op": "JUMP" - }, - "4144": { - "op": "JUMPDEST" - }, - "4145": { - "op": "SUB" - }, - "4146": { - "op": "SWAP4" - }, - "4147": { - "op": "SWAP3" - }, - "4148": { - "op": "POP" - }, - "4149": { - "op": "POP" - }, - "4150": { - "op": "POP" - }, - "4151": { - "jump": "o", - "op": "JUMP" - }, - "4152": { - "op": "JUMPDEST" - }, - "4153": { - "op": "PUSH1", - "value": "0x0" - }, - "4155": { - "op": "DUP2" - }, - "4156": { - "op": "PUSH1", - "value": "0x0" - }, - "4158": { - "op": "NOT" - }, - "4159": { - "op": "DIV" - }, - "4160": { - "op": "DUP4" - }, - "4161": { - "op": "GT" - }, - "4162": { - "op": "DUP3" - }, - "4163": { - "op": "ISZERO" - }, - "4164": { - "op": "ISZERO" - }, - "4165": { - "op": "AND" - }, - "4166": { - "op": "ISZERO" - }, - "4167": { - "op": "PUSH2", - "value": "0x1052" - }, - "4170": { - "op": "JUMPI" - }, - "4171": { - "op": "PUSH2", - "value": "0x1052" - }, - "4174": { - "op": "PUSH2", - "value": "0xFFD" - }, - "4177": { - "jump": "i", - "op": "JUMP" - }, - "4178": { - "op": "JUMPDEST" - }, - "4179": { - "op": "POP" - }, - "4180": { - "op": "MUL" - }, - "4181": { - "op": "SWAP1" - }, - "4182": { - "jump": "o", - "op": "JUMP" - }, - "4183": { - "op": "JUMPDEST" - }, - "4184": { - "op": "PUSH1", - "value": "0x0" - }, - "4186": { - "op": "JUMPDEST" - }, - "4187": { - "op": "DUP4" - }, - "4188": { - "op": "DUP2" - }, - "4189": { - "op": "LT" - }, - "4190": { - "op": "ISZERO" - }, - "4191": { - "op": "PUSH2", - "value": "0x1072" - }, - "4194": { - "op": "JUMPI" - }, - "4195": { - "op": "DUP2" - }, - "4196": { - "op": "DUP2" - }, - "4197": { - "op": "ADD" - }, - "4198": { - "op": "MLOAD" - }, - "4199": { - "op": "DUP4" - }, - "4200": { - "op": "DUP3" - }, - "4201": { - "op": "ADD" - }, - "4202": { - "op": "MSTORE" - }, - "4203": { - "op": "PUSH1", - "value": "0x20" - }, - "4205": { - "op": "ADD" - }, - "4206": { - "op": "PUSH2", - "value": "0x105A" - }, - "4209": { - "op": "JUMP" - }, - "4210": { - "op": "JUMPDEST" - }, - "4211": { - "op": "DUP4" - }, - "4212": { - "op": "DUP2" - }, - "4213": { - "op": "GT" - }, - "4214": { - "op": "ISZERO" - }, - "4215": { - "op": "PUSH2", - "value": "0x544" - }, - "4218": { - "op": "JUMPI" - }, - "4219": { - "op": "POP" - }, - "4220": { - "op": "POP" - }, - "4221": { - "op": "PUSH1", - "value": "0x0" - }, - "4223": { - "op": "SWAP2" - }, - "4224": { - "op": "ADD" - }, - "4225": { - "op": "MSTORE" - }, - "4226": { - "jump": "o", - "op": "JUMP" - }, - "4227": { - "op": "JUMPDEST" - }, - "4228": { - "op": "PUSH32", - "value": "0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000" - }, - "4261": { - "op": "DUP2" - }, - "4262": { - "op": "MSTORE" - }, - "4263": { - "op": "PUSH1", - "value": "0x0" - }, - "4265": { - "op": "DUP4" - }, - "4266": { - "op": "MLOAD" - }, - "4267": { - "op": "PUSH2", - "value": "0x10BB" - }, - "4270": { - "op": "DUP2" - }, - "4271": { - "op": "PUSH1", - "value": "0x17" - }, - "4273": { - "op": "DUP6" - }, - "4274": { - "op": "ADD" - }, - "4275": { - "op": "PUSH1", - "value": "0x20" - }, - "4277": { - "op": "DUP9" - }, - "4278": { - "op": "ADD" - }, - "4279": { - "op": "PUSH2", - "value": "0x1057" - }, - "4282": { - "jump": "i", - "op": "JUMP" - }, - "4283": { - "op": "JUMPDEST" - }, - "4284": { - "op": "PUSH17", - "value": "0x1034B99036B4B9B9B4B733903937B6329" - }, - "4302": { - "op": "PUSH1", - "value": "0x7D" - }, - "4304": { - "op": "SHL" - }, - "4305": { - "op": "PUSH1", - "value": "0x17" - }, - "4307": { - "op": "SWAP2" - }, - "4308": { - "op": "DUP5" - }, - "4309": { - "op": "ADD" - }, - "4310": { - "op": "SWAP2" - }, - "4311": { - "op": "DUP3" - }, - "4312": { - "op": "ADD" - }, - "4313": { - "op": "MSTORE" - }, - "4314": { - "op": "DUP4" - }, - "4315": { - "op": "MLOAD" - }, - "4316": { - "op": "PUSH2", - "value": "0x10EC" - }, - "4319": { - "op": "DUP2" - }, - "4320": { - "op": "PUSH1", - "value": "0x28" - }, - "4322": { - "op": "DUP5" - }, - "4323": { - "op": "ADD" - }, - "4324": { - "op": "PUSH1", - "value": "0x20" - }, - "4326": { - "op": "DUP9" - }, - "4327": { - "op": "ADD" - }, - "4328": { - "op": "PUSH2", - "value": "0x1057" - }, - "4331": { - "jump": "i", - "op": "JUMP" - }, - "4332": { - "op": "JUMPDEST" - }, - "4333": { - "op": "ADD" - }, - "4334": { - "op": "PUSH1", - "value": "0x28" - }, - "4336": { - "op": "ADD" - }, - "4337": { - "op": "SWAP5" - }, - "4338": { - "op": "SWAP4" - }, - "4339": { - "op": "POP" - }, - "4340": { - "op": "POP" - }, - "4341": { - "op": "POP" - }, - "4342": { - "op": "POP" - }, - "4343": { - "jump": "o", - "op": "JUMP" - }, - "4344": { - "op": "JUMPDEST" - }, - "4345": { - "op": "PUSH1", - "value": "0x20" - }, - "4347": { - "op": "DUP2" - }, - "4348": { - "op": "MSTORE" - }, - "4349": { - "op": "PUSH1", - "value": "0x0" - }, - "4351": { - "op": "DUP3" - }, - "4352": { - "op": "MLOAD" - }, - "4353": { - "op": "DUP1" - }, - "4354": { - "op": "PUSH1", - "value": "0x20" - }, - "4356": { - "op": "DUP5" - }, - "4357": { - "op": "ADD" - }, - "4358": { - "op": "MSTORE" - }, - "4359": { - "op": "PUSH2", - "value": "0x1117" - }, - "4362": { - "op": "DUP2" - }, - "4363": { - "op": "PUSH1", - "value": "0x40" - }, - "4365": { - "op": "DUP6" - }, - "4366": { - "op": "ADD" - }, - "4367": { - "op": "PUSH1", - "value": "0x20" - }, - "4369": { - "op": "DUP8" - }, - "4370": { - "op": "ADD" - }, - "4371": { - "op": "PUSH2", - "value": "0x1057" - }, - "4374": { - "jump": "i", - "op": "JUMP" - }, - "4375": { - "op": "JUMPDEST" - }, - "4376": { - "op": "PUSH1", - "value": "0x1F" - }, - "4378": { - "op": "ADD" - }, - "4379": { - "op": "PUSH1", - "value": "0x1F" - }, - "4381": { - "op": "NOT" - }, - "4382": { - "op": "AND" - }, - "4383": { - "op": "SWAP2" - }, - "4384": { - "op": "SWAP1" - }, - "4385": { - "op": "SWAP2" - }, - "4386": { - "op": "ADD" - }, - "4387": { - "op": "PUSH1", - "value": "0x40" - }, - "4389": { - "op": "ADD" - }, - "4390": { - "op": "SWAP3" - }, - "4391": { - "op": "SWAP2" - }, - "4392": { - "op": "POP" - }, - "4393": { - "op": "POP" - }, - "4394": { - "jump": "o", - "op": "JUMP" - }, - "4395": { - "op": "JUMPDEST" - }, - "4396": { - "op": "PUSH1", - "value": "0x0" - }, - "4398": { - "op": "DUP3" - }, - "4399": { - "op": "NOT" - }, - "4400": { - "op": "DUP3" - }, - "4401": { - "op": "GT" - }, - "4402": { - "op": "ISZERO" - }, - "4403": { - "op": "PUSH2", - "value": "0x113E" - }, - "4406": { - "op": "JUMPI" - }, - "4407": { - "op": "PUSH2", - "value": "0x113E" - }, - "4410": { - "op": "PUSH2", - "value": "0xFFD" - }, - "4413": { - "jump": "i", - "op": "JUMP" - }, - "4414": { - "op": "JUMPDEST" - }, - "4415": { - "op": "POP" - }, - "4416": { - "op": "ADD" - }, - "4417": { - "op": "SWAP1" - }, - "4418": { - "jump": "o", - "op": "JUMP" - }, - "4419": { - "op": "JUMPDEST" - }, - "4420": { - "op": "PUSH4", - "value": "0x4E487B71" - }, - "4425": { - "op": "PUSH1", - "value": "0xE0" - }, - "4427": { - "op": "SHL" - }, - "4428": { - "op": "PUSH1", - "value": "0x0" - }, - "4430": { - "op": "MSTORE" - }, - "4431": { - "op": "PUSH1", - "value": "0x41" - }, - "4433": { - "op": "PUSH1", - "value": "0x4" - }, - "4435": { - "op": "MSTORE" - }, - "4436": { - "op": "PUSH1", - "value": "0x24" - }, - "4438": { - "op": "PUSH1", - "value": "0x0" - }, - "4440": { - "op": "REVERT" - }, - "4441": { - "op": "JUMPDEST" - }, - "4442": { - "op": "PUSH4", - "value": "0x4E487B71" - }, - "4447": { - "op": "PUSH1", - "value": "0xE0" - }, - "4449": { - "op": "SHL" - }, - "4450": { - "op": "PUSH1", - "value": "0x0" - }, - "4452": { - "op": "MSTORE" - }, - "4453": { - "op": "PUSH1", - "value": "0x32" - }, - "4455": { - "op": "PUSH1", - "value": "0x4" - }, - "4457": { - "op": "MSTORE" - }, - "4458": { - "op": "PUSH1", - "value": "0x24" - }, - "4460": { - "op": "PUSH1", - "value": "0x0" - }, - "4462": { - "op": "REVERT" - }, - "4463": { - "op": "JUMPDEST" - }, - "4464": { - "op": "PUSH1", - "value": "0x0" - }, - "4466": { - "op": "DUP2" - }, - "4467": { - "op": "PUSH2", - "value": "0x117E" - }, - "4470": { - "op": "JUMPI" - }, - "4471": { - "op": "PUSH2", - "value": "0x117E" - }, - "4474": { - "op": "PUSH2", - "value": "0xFFD" - }, - "4477": { - "jump": "i", - "op": "JUMP" - }, - "4478": { - "op": "JUMPDEST" - }, - "4479": { - "op": "POP" - }, - "4480": { - "op": "PUSH1", - "value": "0x0" - }, - "4482": { - "op": "NOT" - }, - "4483": { - "op": "ADD" - }, - "4484": { - "op": "SWAP1" - }, - "4485": { - "jump": "o", - "op": "JUMP" - } - }, - "sha1": "2a31e7bd47b6887f42b383ae84b4842a5b089e0a", - "source": "// SPDX-License-Identifier: AGPL-3.0-or-later\n\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin-upgradeable/contracts/access/AccessControlUpgradeable.sol\";\nimport \"@openzeppelin-upgradeable/contracts/proxy/utils/Initializable.sol\";\n\ncontract SubscriptionManager is Initializable, AccessControlUpgradeable {\n\n bytes32 public constant SET_RATE_ROLE = \n keccak256(\"Power to set the fee rate\");\n bytes32 public constant WITHDRAW_ROLE = \n keccak256(\"Power to withdraw funds from SubscriptionManager\");\n\n // The layout of policy struct is optimized, so sponsor, timestamps and size\n // fit in a single 256-word.\n struct Policy {\n address payable sponsor;\n uint32 startTimestamp;\n uint32 endTimestamp;\n uint16 size; // also known as `N`\n // There's still 2 bytes available here\n address owner;\n }\n\n event PolicyCreated(\n bytes16 indexed policyId,\n address indexed sponsor,\n address indexed owner,\n uint16 size,\n uint32 startTimestamp,\n uint32 endTimestamp,\n uint256 cost\n );\n\n event FeeRateUpdated(uint256 oldFeeRate, uint256 newFeeRate);\n\n // Per-second, per-node service fee rate\n uint256 public feeRate;\n\n // Mapping that stores policy structs, keyed by policy ID\n mapping (bytes16 => Policy) internal _policies;\n\n function initialize(uint256 _feeRate) public initializer {\n _setFeeRate(_feeRate);\n _setupRole(SET_RATE_ROLE, msg.sender);\n _setupRole(WITHDRAW_ROLE, msg.sender);\n _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);\n }\n\n function getPolicyCost(\n uint16 _size,\n uint32 _startTimestamp,\n uint32 _endTimestamp\n ) public view returns (uint256){\n uint32 duration = _endTimestamp - _startTimestamp;\n require(duration > 0, \"Invalid timestamps\");\n require(_size > 0, \"Invalid policy size\");\n return feeRate * _size * duration;\n }\n\n function createPolicy(\n bytes16 _policyId,\n address _policyOwner,\n uint16 _size,\n uint32 _startTimestamp,\n uint32 _endTimestamp\n )\n external payable\n {\n require(\n _startTimestamp < _endTimestamp && block.timestamp < _endTimestamp,\n \"Invalid timestamps\"\n );\n require(\n msg.value == getPolicyCost(_size, _startTimestamp, _endTimestamp),\n \"Invalid policy cost\"\n );\n\n _createPolicy(_policyId, _policyOwner, _size, _startTimestamp, _endTimestamp);\n }\n\n /**\n * @notice Create policy\n * @param _policyId Policy id\n * @param _policyOwner Policy owner. Zero address means sender is owner\n * @param _size Number of nodes involved in the policy\n * @param _startTimestamp Start timestamp of the policy in seconds\n * @param _endTimestamp End timestamp of the policy in seconds\n */\n function _createPolicy(\n bytes16 _policyId,\n address _policyOwner,\n uint16 _size,\n uint32 _startTimestamp,\n uint32 _endTimestamp\n )\n internal returns (Policy storage policy)\n {\n policy = _policies[_policyId];\n require(\n policy.endTimestamp < block.timestamp,\n \"Policy is currently active\"\n );\n\n policy.sponsor = payable(msg.sender);\n policy.startTimestamp = _startTimestamp;\n policy.endTimestamp = _endTimestamp;\n policy.size = _size;\n\n if (_policyOwner != msg.sender && _policyOwner != address(0)) {\n policy.owner = _policyOwner;\n }\n\n emit PolicyCreated(\n _policyId,\n msg.sender,\n _policyOwner == address(0) ? msg.sender : _policyOwner,\n _size,\n _startTimestamp,\n _endTimestamp,\n msg.value\n );\n }\n\n function getPolicy(bytes16 _policyID) public view returns(Policy memory){\n return _policies[_policyID];\n }\n\n function isPolicyActive(bytes16 _policyID) public view returns(bool){\n return _policies[_policyID].endTimestamp > block.timestamp;\n }\n\n function _setFeeRate(uint256 newFee) internal {\n uint256 oldFee = feeRate;\n feeRate = newFee;\n emit FeeRateUpdated(oldFee, newFee);\n }\n\n function setFeeRate(uint256 _ratePerSecond) onlyRole(SET_RATE_ROLE) external {\n _setFeeRate(_ratePerSecond);\n }\n\n function sweep(address payable recipient) onlyRole(WITHDRAW_ROLE) external {\n uint256 balance = address(this).balance;\n (bool sent, ) = recipient.call{value: balance}(\"\");\n require(sent, \"Failed transfer\");\n }\n\n}\n", - "sourceMap": "231:4398:30:-:0;;;;;;;;;;;;;;;;;;;", - "sourcePath": "contracts/matic/SubscriptionManager.sol", - "type": "contract" -} \ No newline at end of file diff --git a/packages/shared/package.json b/packages/shared/package.json index 9d5610b64..b915c00d4 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -35,12 +35,13 @@ "lint": "eslint --ext .ts src", "lint:fix": "pnpm lint --fix", "package-check": "package-check", - "typechain": "typechain --out-dir=./src/contracts/ethers-typechain --target=ethers-v5 \"abis/**/*.json\"", + "typechain": "ts-node scripts/typechain.ts", "typedoc": "typedoc" }, "dependencies": { "@ethersproject/abi": "^5.7.0", "@ethersproject/providers": "^5.7.2", + "@nucypher/nucypher-contracts": "^0.5.0", "@nucypher/nucypher-core": "0.13.0-alpha.1", "axios": "^1.5.0", "deep-equal": "^2.2.1", @@ -51,6 +52,7 @@ "@typechain/ethers-v5": "^11.1.1", "@types/deep-equal": "^1.0.1", "@types/qs": "^6.9.7", + "@types/tmp": "^0.2.4", "cz-conventional-changelog": "^3.0.1", "standard-version": "^9.0.0", "typechain": "^8.3.1" diff --git a/packages/shared/scripts/typechain.ts b/packages/shared/scripts/typechain.ts new file mode 100644 index 000000000..a413f7ba4 --- /dev/null +++ b/packages/shared/scripts/typechain.ts @@ -0,0 +1,92 @@ +import * as lynxRegistryJson from '@nucypher/nucypher-contracts/deployment/artifacts/lynx.json'; +import * as mainnetRegistryJson from '@nucypher/nucypher-contracts/deployment/artifacts/mainnet.json'; +import * as fs from 'fs'; +import * as path from 'path'; +import * as tmp from 'tmp'; +import { glob, runTypeChain } from 'typechain'; + +type Abi = unknown; + +type DeployedContract = { + address: string; + abi: Abi; +}; + +type Contract = { + name: string; + abi: Abi; +}; + +type ContractRegistry = { + [chainId: string]: Record; +}; + +const lynxRegistry: ContractRegistry = lynxRegistryJson; +const mainnetRegistry: ContractRegistry = mainnetRegistryJson; + +const parseContractRegistry = (registry: ContractRegistry): Contract[] => + Object.keys(registry) + .map((chainId) => { + const networkRegistry = registry[chainId]; + return Object.keys(networkRegistry).map((contractName) => { + const contract = networkRegistry[contractName]; + return { name: contractName, abi: contract.abi }; + }); + }) + .flat(); + +console.log(`Parsing contract registries`); +const lynxContracts = parseContractRegistry(lynxRegistry); +const mainnetContracts = parseContractRegistry(mainnetRegistry); +console.log(`Found ${lynxContracts.length} contracts on Lynx`); +console.log(`Found ${mainnetContracts.length} contracts on Mainnet`); +const allContracts = [...lynxContracts, ...mainnetContracts]; + +const SELECTED_CONTRACT_NAMES = [ + 'Coordinator', + 'GlobalAllowList', + 'SubscriptionManager', +]; +const selectedContracts = allContracts.filter(({ name }) => + SELECTED_CONTRACT_NAMES.includes(name), +); +console.log( + `Selected contracts: ${selectedContracts.map(({ name }) => name).join(', ')}`, +); + +// Creating a temporary directory to store the ABIs +const tmpDir = tmp.dirSync({ unsafeCleanup: true }); +console.log(`Created temporary directory ${tmpDir.name}`); + +// Writing the ABIs to the temporary directory +const writeAbi = ({ name, abi }: Contract) => { + const abiPath = path.join(tmpDir.name, `${name}.json`); + if (!abi) { + console.log(`Skipping ${name} because it has no ABI`); + return; + } + fs.writeFileSync(abiPath, JSON.stringify(abi)); + console.log(`Wrote ABI for ${name} to ${abiPath}`); +}; + +selectedContracts.forEach(writeAbi); + +const cwd = process.cwd(); +const abiFilesGlob = glob(cwd, [`${tmpDir.name}/*.json`]); + +// Running typechain +async function main() { + const cwd = process.cwd(); + + const result = await runTypeChain({ + cwd, + filesToProcess: abiFilesGlob, + allFiles: abiFilesGlob, + outDir: `./src/contracts/ethers-typechain`, + target: 'ethers-v5', + }); + + console.log(`typechain: Generated ${result.filesGenerated} files`); +} + +main().catch(console.error); diff --git a/packages/shared/src/contracts/ethers-typechain/factories/GlobalAllowList__factory.ts b/packages/shared/src/contracts/ethers-typechain/factories/GlobalAllowList__factory.ts index f46e18fa6..a000dd0fb 100644 --- a/packages/shared/src/contracts/ethers-typechain/factories/GlobalAllowList__factory.ts +++ b/packages/shared/src/contracts/ethers-typechain/factories/GlobalAllowList__factory.ts @@ -11,524 +11,524 @@ import type { const _abi = [ { + type: "constructor", + stateMutability: "nonpayable", inputs: [ { - internalType: "contract Coordinator", name: "_coordinator", type: "address", + internalType: "contract Coordinator", }, { - internalType: "address", name: "_admin", type: "address", + internalType: "address", }, ], - stateMutability: "nonpayable", - type: "constructor", }, { - anonymous: false, - inputs: [], - name: "DefaultAdminDelayChangeCanceled", type: "event", + name: "DefaultAdminDelayChangeCanceled", + inputs: [], + anonymous: false, }, { - anonymous: false, + type: "event", + name: "DefaultAdminDelayChangeScheduled", inputs: [ { - indexed: false, - internalType: "uint48", name: "newDelay", type: "uint48", + internalType: "uint48", + indexed: false, }, { - indexed: false, - internalType: "uint48", name: "effectSchedule", type: "uint48", + internalType: "uint48", + indexed: false, }, ], - name: "DefaultAdminDelayChangeScheduled", - type: "event", + anonymous: false, }, { - anonymous: false, - inputs: [], - name: "DefaultAdminTransferCanceled", type: "event", + name: "DefaultAdminTransferCanceled", + inputs: [], + anonymous: false, }, { - anonymous: false, + type: "event", + name: "DefaultAdminTransferScheduled", inputs: [ { - indexed: true, - internalType: "address", name: "newAdmin", type: "address", + internalType: "address", + indexed: true, }, { - indexed: false, - internalType: "uint48", name: "acceptSchedule", type: "uint48", + internalType: "uint48", + indexed: false, }, ], - name: "DefaultAdminTransferScheduled", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "RoleAdminChanged", inputs: [ { - indexed: true, - internalType: "bytes32", name: "role", type: "bytes32", + internalType: "bytes32", + indexed: true, }, { - indexed: true, - internalType: "bytes32", name: "previousAdminRole", type: "bytes32", + internalType: "bytes32", + indexed: true, }, { - indexed: true, - internalType: "bytes32", name: "newAdminRole", type: "bytes32", + internalType: "bytes32", + indexed: true, }, ], - name: "RoleAdminChanged", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "RoleGranted", inputs: [ { - indexed: true, - internalType: "bytes32", name: "role", type: "bytes32", + internalType: "bytes32", + indexed: true, }, { - indexed: true, - internalType: "address", name: "account", type: "address", + internalType: "address", + indexed: true, }, { - indexed: true, - internalType: "address", name: "sender", type: "address", + internalType: "address", + indexed: true, }, ], - name: "RoleGranted", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "RoleRevoked", inputs: [ { - indexed: true, - internalType: "bytes32", name: "role", type: "bytes32", + internalType: "bytes32", + indexed: true, }, { - indexed: true, - internalType: "address", name: "account", type: "address", + internalType: "address", + indexed: true, }, { - indexed: true, - internalType: "address", name: "sender", type: "address", + internalType: "address", + indexed: true, }, ], - name: "RoleRevoked", - type: "event", + anonymous: false, }, { - inputs: [], + type: "function", name: "DEFAULT_ADMIN_ROLE", + stateMutability: "view", + inputs: [], outputs: [ { - internalType: "bytes32", name: "", type: "bytes32", + internalType: "bytes32", }, ], - stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "acceptDefaultAdminTransfer", - outputs: [], stateMutability: "nonpayable", - type: "function", + inputs: [], + outputs: [], }, { + type: "function", + name: "authorize", + stateMutability: "nonpayable", inputs: [ { - internalType: "uint32", name: "ritualId", type: "uint32", + internalType: "uint32", }, { - internalType: "address[]", name: "addresses", type: "address[]", + internalType: "address[]", }, ], - name: "authorize", outputs: [], - stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "beginDefaultAdminTransfer", + stateMutability: "nonpayable", inputs: [ { - internalType: "address", name: "newAdmin", type: "address", + internalType: "address", }, ], - name: "beginDefaultAdminTransfer", outputs: [], - stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "cancelDefaultAdminTransfer", - outputs: [], stateMutability: "nonpayable", - type: "function", + inputs: [], + outputs: [], }, { + type: "function", + name: "changeDefaultAdminDelay", + stateMutability: "nonpayable", inputs: [ { - internalType: "uint48", name: "newDelay", type: "uint48", + internalType: "uint48", }, ], - name: "changeDefaultAdminDelay", outputs: [], - stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "coordinator", + stateMutability: "view", + inputs: [], outputs: [ { - internalType: "contract Coordinator", name: "", type: "address", + internalType: "contract Coordinator", }, ], - stateMutability: "view", - type: "function", }, { + type: "function", + name: "deauthorize", + stateMutability: "nonpayable", inputs: [ { - internalType: "uint32", name: "ritualId", type: "uint32", + internalType: "uint32", }, { - internalType: "address[]", name: "addresses", type: "address[]", + internalType: "address[]", }, ], - name: "deauthorize", outputs: [], - stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "defaultAdmin", + stateMutability: "view", + inputs: [], outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], - stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "defaultAdminDelay", + stateMutability: "view", + inputs: [], outputs: [ { - internalType: "uint48", name: "", type: "uint48", + internalType: "uint48", }, ], - stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "defaultAdminDelayIncreaseWait", + stateMutability: "view", + inputs: [], outputs: [ { - internalType: "uint48", name: "", type: "uint48", + internalType: "uint48", }, ], - stateMutability: "view", - type: "function", }, { + type: "function", + name: "getRoleAdmin", + stateMutability: "view", inputs: [ { - internalType: "bytes32", name: "role", type: "bytes32", + internalType: "bytes32", }, ], - name: "getRoleAdmin", outputs: [ { - internalType: "bytes32", name: "", type: "bytes32", + internalType: "bytes32", }, ], - stateMutability: "view", - type: "function", }, { + type: "function", + name: "grantRole", + stateMutability: "nonpayable", inputs: [ { - internalType: "bytes32", name: "role", type: "bytes32", + internalType: "bytes32", }, { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "grantRole", outputs: [], - stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "hasRole", + stateMutability: "view", inputs: [ { - internalType: "bytes32", name: "role", type: "bytes32", + internalType: "bytes32", }, { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "hasRole", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], - stateMutability: "view", - type: "function", }, { + type: "function", + name: "isAddressAuthorized", + stateMutability: "view", inputs: [ { - internalType: "uint32", name: "ritualId", type: "uint32", + internalType: "uint32", }, { - internalType: "address", name: "encryptor", type: "address", + internalType: "address", }, ], - name: "isAddressAuthorized", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], - stateMutability: "view", - type: "function", }, { + type: "function", + name: "isAuthorized", + stateMutability: "view", inputs: [ { - internalType: "uint32", name: "ritualId", type: "uint32", + internalType: "uint32", }, { - internalType: "bytes", name: "evidence", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "ciphertextHeader", type: "bytes", + internalType: "bytes", }, ], - name: "isAuthorized", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], - stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "owner", + stateMutability: "view", + inputs: [], outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], - stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "pendingDefaultAdmin", + stateMutability: "view", + inputs: [], outputs: [ { - internalType: "address", name: "newAdmin", type: "address", + internalType: "address", }, { - internalType: "uint48", name: "schedule", type: "uint48", + internalType: "uint48", }, ], - stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "pendingDefaultAdminDelay", + stateMutability: "view", + inputs: [], outputs: [ { - internalType: "uint48", name: "newDelay", type: "uint48", + internalType: "uint48", }, { - internalType: "uint48", name: "schedule", type: "uint48", + internalType: "uint48", }, ], - stateMutability: "view", - type: "function", }, { + type: "function", + name: "renounceRole", + stateMutability: "nonpayable", inputs: [ { - internalType: "bytes32", name: "role", type: "bytes32", + internalType: "bytes32", }, { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "renounceRole", outputs: [], - stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "revokeRole", + stateMutability: "nonpayable", inputs: [ { - internalType: "bytes32", name: "role", type: "bytes32", + internalType: "bytes32", }, { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "revokeRole", outputs: [], - stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "rollbackDefaultAdminDelay", - outputs: [], stateMutability: "nonpayable", - type: "function", + inputs: [], + outputs: [], }, { + type: "function", + name: "setCoordinator", + stateMutability: "nonpayable", inputs: [ { - internalType: "contract Coordinator", name: "_coordinator", type: "address", + internalType: "contract Coordinator", }, ], - name: "setCoordinator", outputs: [], - stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "supportsInterface", + stateMutability: "view", inputs: [ { - internalType: "bytes4", name: "interfaceId", type: "bytes4", + internalType: "bytes4", }, ], - name: "supportsInterface", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], - stateMutability: "view", - type: "function", }, ] as const; diff --git a/packages/shared/src/contracts/ethers-typechain/factories/SubscriptionManager__factory.ts b/packages/shared/src/contracts/ethers-typechain/factories/SubscriptionManager__factory.ts index dc2688862..3c18dd173 100644 --- a/packages/shared/src/contracts/ethers-typechain/factories/SubscriptionManager__factory.ts +++ b/packages/shared/src/contracts/ethers-typechain/factories/SubscriptionManager__factory.ts @@ -1,8 +1,9 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; + +import { Contract, Signer, utils } from "ethers"; +import type { Provider } from "@ethersproject/providers"; import type { SubscriptionManager, SubscriptionManagerInterface, @@ -488,44 +489,7 @@ const _abi = [ }, ] as const; -const _bytecode = - "0x608060405234801561001057600080fd5b506111bc806100206000396000f3fe6080604052600436106100fe5760003560e01c806358db2a7211610095578063978bbdb911610064578063978bbdb9146103e0578063a217fddf146103f6578063d547741f1461040b578063e02023a11461042b578063fe4b84df1461045f57600080fd5b806358db2a721461032557806358f70858146103455780637ef3c6d51461037957806391d14854146103c057600080fd5b80632f2ff15d116100d15780632f2ff15d146102b257806336568abe146102d257806345596e2e146102f25780634f0040411461031257600080fd5b806301681a621461010357806301ffc9a714610125578063248a9ca31461015a5780632c81516114610198575b600080fd5b34801561010f57600080fd5b5061012361011e366004610e65565b61047f565b005b34801561013157600080fd5b50610145610140366004610e82565b61054a565b60405190151581526020015b60405180910390f35b34801561016657600080fd5b5061018a610175366004610eac565b60009081526065602052604090206001015490565b604051908152602001610151565b3480156101a457600080fd5b506102576101b3366004610ee2565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506001600160801b031916600090815260986020908152604091829020825160a08101845281546001600160a01b038082168352600160a01b820463ffffffff90811695840195909552600160c01b820490941694820194909452600160e01b90930461ffff1660608401526001015416608082015290565b604051610151919081516001600160a01b03908116825260208084015163ffffffff908116918401919091526040808501519091169083015260608084015161ffff1690830152608092830151169181019190915260a00190565b3480156102be57600080fd5b506101236102cd366004610efd565b610581565b3480156102de57600080fd5b506101236102ed366004610efd565b6105ac565b3480156102fe57600080fd5b5061012361030d366004610eac565b61062a565b610123610320366004610f53565b61065e565b34801561033157600080fd5b5061018a610340366004610fba565b610723565b34801561035157600080fd5b5061018a7f637ca263f44c0a7e4a3b057e26c82c5667c084aa950864a2916355c481f6a09781565b34801561038557600080fd5b50610145610394366004610ee2565b6001600160801b03191660009081526098602052604090205442600160c01b90910463ffffffff161190565b3480156103cc57600080fd5b506101456103db366004610efd565b6107f3565b3480156103ec57600080fd5b5061018a60975481565b34801561040257600080fd5b5061018a600081565b34801561041757600080fd5b50610123610426366004610efd565b61081e565b34801561043757600080fd5b5061018a7fc1f0c13d12a4ca09aada5725e24c49160e8f198a4ca0d2bd4dafc9c5c12e6a3581565b34801561046b57600080fd5b5061012361047a366004610eac565b610844565b7fc1f0c13d12a4ca09aada5725e24c49160e8f198a4ca0d2bd4dafc9c5c12e6a356104aa8133610965565b60405147906000906001600160a01b0385169083908381818185875af1925050503d80600081146104f7576040519150601f19603f3d011682016040523d82523d6000602084013e6104fc565b606091505b50509050806105445760405162461bcd60e51b815260206004820152600f60248201526e2330b4b632b2103a3930b739b332b960891b60448201526064015b60405180910390fd5b50505050565b60006001600160e01b03198216637965db0b60e01b148061057b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008281526065602052604090206001015461059d8133610965565b6105a783836109c9565b505050565b6001600160a01b038116331461061c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161053b565b6106268282610a4f565b5050565b7f637ca263f44c0a7e4a3b057e26c82c5667c084aa950864a2916355c481f6a0976106558133610965565b61062682610ab6565b8063ffffffff168263ffffffff1610801561067e57508063ffffffff1642105b6106bf5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642074696d657374616d707360701b604482015260640161053b565b6106ca838383610723565b341461070e5760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081c1bdb1a58de4818dbdcdd606a1b604482015260640161053b565b61071b8585858585610afb565b505050505050565b6000806107308484611013565b905060008163ffffffff161161077d5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642074696d657374616d707360701b604482015260640161053b565b60008561ffff16116107c75760405162461bcd60e51b8152602060048201526013602482015272496e76616c696420706f6c6963792073697a6560681b604482015260640161053b565b8063ffffffff168561ffff166097546107e09190611038565b6107ea9190611038565b95945050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008281526065602052604090206001015461083a8133610965565b6105a78383610a4f565b600054610100900460ff1661085f5760005460ff1615610863565b303b155b6108c65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161053b565b600054610100900460ff161580156108e8576000805461ffff19166101011790555b6108f182610ab6565b61091b7f637ca263f44c0a7e4a3b057e26c82c5667c084aa950864a2916355c481f6a09733610ca0565b6109457fc1f0c13d12a4ca09aada5725e24c49160e8f198a4ca0d2bd4dafc9c5c12e6a3533610ca0565b610950600033610ca0565b8015610626576000805461ff00191690555050565b61096f82826107f3565b61062657610987816001600160a01b03166014610caa565b610992836020610caa565b6040516020016109a3929190611083565b60408051601f198184030181529082905262461bcd60e51b825261053b916004016110f8565b6109d382826107f3565b6106265760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610a0b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610a5982826107f3565b156106265760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b609780549082905560408051828152602081018490527f14914da2bf76024616fbe1859783fcd4dbddcb179b1f3a854949fbf920dcb957910160405180910390a15050565b6001600160801b031985166000908152609860205260409020805442600160c01b90910463ffffffff1610610b725760405162461bcd60e51b815260206004820152601a60248201527f506f6c6963792069732063757272656e746c7920616374697665000000000000604482015260640161053b565b805461ffff8516600160e01b0261ffff60e01b1963ffffffff858116600160c01b029190911665ffffffffffff60c01b19918716600160a01b0263ffffffff60a01b19339081166001600160c01b0319909616959095171791909116171782556001600160a01b03861614801590610bf257506001600160a01b03851615155b15610c15576001810180546001600160a01b0319166001600160a01b0387161790555b6001600160a01b03851615610c2a5784610c2c565b335b6040805161ffff8716815263ffffffff868116602083015285168183015234606082015290516001600160a01b03929092169133916001600160801b03198a16917f3e7e513ddaf550a2b9b8c400d5a2428f924d4aae6d8de14c1e2c42e8431fca159181900360800190a495945050505050565b61062682826109c9565b60606000610cb9836002611038565b610cc490600261112b565b67ffffffffffffffff811115610cdc57610cdc611143565b6040519080825280601f01601f191660200182016040528015610d06576020820181803683370190505b509050600360fc1b81600081518110610d2157610d21611159565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610d5057610d50611159565b60200101906001600160f81b031916908160001a9053506000610d74846002611038565b610d7f90600161112b565b90505b6001811115610df7576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610db357610db3611159565b1a60f81b828281518110610dc957610dc9611159565b60200101906001600160f81b031916908160001a90535060049490941c93610df08161116f565b9050610d82565b508315610e465760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161053b565b9392505050565b6001600160a01b0381168114610e6257600080fd5b50565b600060208284031215610e7757600080fd5b8135610e4681610e4d565b600060208284031215610e9457600080fd5b81356001600160e01b031981168114610e4657600080fd5b600060208284031215610ebe57600080fd5b5035919050565b80356001600160801b031981168114610edd57600080fd5b919050565b600060208284031215610ef457600080fd5b610e4682610ec5565b60008060408385031215610f1057600080fd5b823591506020830135610f2281610e4d565b809150509250929050565b803561ffff81168114610edd57600080fd5b803563ffffffff81168114610edd57600080fd5b600080600080600060a08688031215610f6b57600080fd5b610f7486610ec5565b94506020860135610f8481610e4d565b9350610f9260408701610f2d565b9250610fa060608701610f3f565b9150610fae60808701610f3f565b90509295509295909350565b600080600060608486031215610fcf57600080fd5b610fd884610f2d565b9250610fe660208501610f3f565b9150610ff460408501610f3f565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8381169083168181101561103057611030610ffd565b039392505050565b600081600019048311821515161561105257611052610ffd565b500290565b60005b8381101561107257818101518382015260200161105a565b838111156105445750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516110bb816017850160208801611057565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516110ec816028840160208801611057565b01602801949350505050565b6020815260008251806020840152611117816040850160208701611057565b601f01601f19169190910160400192915050565b6000821982111561113e5761113e610ffd565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60008161117e5761117e610ffd565b50600019019056fea26469706673582212207579dc0a825776e3c879b178544a69dd8110090a91fe12ab18231504b8be3ae964736f6c634300080c0033"; - -type SubscriptionManagerConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: SubscriptionManagerConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class SubscriptionManager__factory extends ContractFactory { - constructor(...args: SubscriptionManagerConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: string } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: string } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): SubscriptionManager { - return super.attach(address) as SubscriptionManager; - } - override connect(signer: Signer): SubscriptionManager__factory { - return super.connect(signer) as SubscriptionManager__factory; - } - - static readonly bytecode = _bytecode; +export class SubscriptionManager__factory { static readonly abi = _abi; static createInterface(): SubscriptionManagerInterface { return new utils.Interface(_abi) as SubscriptionManagerInterface; diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json index 8d2d7c3d7..8336571c0 100644 --- a/packages/shared/tsconfig.json +++ b/packages/shared/tsconfig.json @@ -4,5 +4,6 @@ "compilerOptions": { "esModuleInterop": true, "skipLibCheck": true, + "resolveJsonModule": true } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4c2caa734..c0d21e84f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -472,6 +472,9 @@ importers: '@ethersproject/providers': specifier: ^5.7.2 version: 5.7.2 + '@nucypher/nucypher-contracts': + specifier: ^0.5.0 + version: 0.5.0 '@nucypher/nucypher-core': specifier: 0.13.0-alpha.1 version: 0.13.0-alpha.1 @@ -497,6 +500,9 @@ importers: '@types/qs': specifier: ^6.9.7 version: 6.9.8 + '@types/tmp': + specifier: ^0.2.4 + version: 0.2.4 cz-conventional-changelog: specifier: ^3.0.1 version: 3.3.0 @@ -3358,6 +3364,10 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 + /@nucypher/nucypher-contracts@0.5.0: + resolution: {integrity: sha512-X5RCvcl/LRkCH2jmRViM9orD4/OmX+RLo3M9Sl9PWtegMBNW4NI376c3ybS6EHmAWQ7b7E09rJ27LWz8YFhXjQ==} + dev: false + /@nucypher/nucypher-core@0.13.0-alpha.1: resolution: {integrity: sha512-uKu/YLTZ6mqkQ2kaQMJs/USUiw9EYFtaZU6FaD8zAN8XKLpHYuYD13BDfU7idR1nZIKjL/E5xIoVJFV3Dx0x2w==} dev: false @@ -3952,6 +3962,10 @@ packages: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true + /@types/tmp@0.2.4: + resolution: {integrity: sha512-Vq3rwM+2KgiLacq68EjTJD9cuJ/ne5pXntWn8B8Rxj25SLkGAhCgooCZ1lhcIcV5OFveJ+s5Cqpi+XKfFM/xZA==} + dev: true + /@types/trusted-types@2.0.4: resolution: {integrity: sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==} dev: true From e68eb8b4d5bcdfbedbb8c8eb45697fba69e3f0b1 Mon Sep 17 00:00:00 2001 From: LunarBytes Date: Wed, 11 Oct 2023 19:07:09 +0200 Subject: [PATCH 3/8] Update packages/shared/package.json --- packages/shared/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/shared/package.json b/packages/shared/package.json index b915c00d4..535d8cc5a 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -41,7 +41,7 @@ "dependencies": { "@ethersproject/abi": "^5.7.0", "@ethersproject/providers": "^5.7.2", - "@nucypher/nucypher-contracts": "^0.5.0", + "@nucypher/nucypher-contracts": "^0.6.0", "@nucypher/nucypher-core": "0.13.0-alpha.1", "axios": "^1.5.0", "deep-equal": "^2.2.1", From 948193b6682ed83281802bf9ea3e9e445e6edbc7 Mon Sep 17 00:00:00 2001 From: Piotr Roslaniec Date: Mon, 16 Oct 2023 11:56:01 +0200 Subject: [PATCH 4/8] chore: update lockfile --- pnpm-lock.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c0d21e84f..95df3acd5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -473,8 +473,8 @@ importers: specifier: ^5.7.2 version: 5.7.2 '@nucypher/nucypher-contracts': - specifier: ^0.5.0 - version: 0.5.0 + specifier: ^0.6.0 + version: 0.6.0 '@nucypher/nucypher-core': specifier: 0.13.0-alpha.1 version: 0.13.0-alpha.1 @@ -3364,8 +3364,8 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - /@nucypher/nucypher-contracts@0.5.0: - resolution: {integrity: sha512-X5RCvcl/LRkCH2jmRViM9orD4/OmX+RLo3M9Sl9PWtegMBNW4NI376c3ybS6EHmAWQ7b7E09rJ27LWz8YFhXjQ==} + /@nucypher/nucypher-contracts@0.6.0: + resolution: {integrity: sha512-fPnyULgCivPH/3YhvNMPtMsV25Nr7MqTkzwB2NCNNt8JgEv0gfn4i3rGtGj7R/0AJtk1h2YKvOz2qmRqHOxfmg==} dev: false /@nucypher/nucypher-core@0.13.0-alpha.1: From 80ccc72e02d657df8c2b25652bffde4df35d87f5 Mon Sep 17 00:00:00 2001 From: Piotr Roslaniec Date: Tue, 17 Oct 2023 12:14:13 +0200 Subject: [PATCH 5/8] feature: expose domain in user facing apis --- examples/README.md | 4 +- examples/pre/nextjs/src/app/page.tsx | 15 +- examples/pre/nodejs/src/index.ts | 9 +- examples/pre/react/src/App.tsx | 5 +- examples/pre/webpack-5/README.md | 3 +- examples/pre/webpack-5/src/index.ts | 4 +- examples/taco/nextjs/src/app/page.tsx | 38 +- examples/taco/nodejs/src/index.ts | 12 +- examples/taco/react/README.md | 5 +- examples/taco/react/src/App.tsx | 36 +- examples/taco/webpack-5/src/index.html | 3 +- examples/taco/webpack-5/src/index.ts | 12 +- packages/pre/src/characters/alice.ts | 5 +- packages/pre/src/policy.ts | 10 +- .../pre/test/acceptance/alice-grants.test.ts | 3 +- .../pre/test/acceptance/delay-enact.test.ts | 4 +- packages/shared/.eslintrc.js | 4 +- packages/shared/package.json | 2 +- packages/shared/scripts/typechain.ts | 52 +- .../src/contracts/agents/coordinator.ts | 32 +- .../src/contracts/agents/global-allow-list.ts | 25 +- .../contracts/agents/subscription-manager.ts | 25 +- .../contracts/ethers-typechain/Coordinator.ts | 1176 +++++++------- .../ethers-typechain/GlobalAllowList.ts | 534 +++---- .../ethers-typechain/SubscriptionManager.ts | 384 ++--- .../src/contracts/ethers-typechain/common.ts | 10 +- .../factories/Coordinator__factory.ts | 1374 ++++++++--------- .../factories/GlobalAllowList__factory.ts | 496 +++--- .../factories/SubscriptionManager__factory.ts | 466 +++--- .../ethers-typechain/factories/index.ts | 6 +- .../src/contracts/ethers-typechain/index.ts | 14 +- packages/shared/src/contracts/registry.ts | 80 +- packages/shared/tsconfig.build.json | 2 +- packages/shared/tsconfig.cjs.json | 2 +- packages/taco/src/dkg.ts | 15 +- packages/taco/src/index.ts | 2 +- packages/taco/src/taco.ts | 14 +- packages/taco/src/tdec.ts | 5 + packages/taco/test/taco.test.ts | 4 +- pnpm-lock.yaml | 8 +- 40 files changed, 2507 insertions(+), 2393 deletions(-) diff --git a/examples/README.md b/examples/README.md index 424eaeb32..328785eda 100644 --- a/examples/README.md +++ b/examples/README.md @@ -3,5 +3,5 @@ This directory contains a set of examples showing how to integrate `@nucypher/*` into your application. -Refer to `./taco` for examples of how to use the `@nucypher/taco` package. -Refer to `./pre` for examples of how to use the `@nucypher/pre` package. +Refer to `./taco` for examples of how to use the `@nucypher/taco` package. Refer +to `./pre` for examples of how to use the `@nucypher/pre` package. diff --git a/examples/pre/nextjs/src/app/page.tsx b/examples/pre/nextjs/src/app/page.tsx index 5e612d6b6..670e03b81 100644 --- a/examples/pre/nextjs/src/app/page.tsx +++ b/examples/pre/nextjs/src/app/page.tsx @@ -9,8 +9,8 @@ import { SecretKey, toHexString, } from '@nucypher/pre'; -import {ethers} from 'ethers'; -import {useEffect, useState} from 'react'; +import { ethers } from 'ethers'; +import { useEffect, useState } from 'react'; // eslint-disable-next-line @typescript-eslint/no-explicit-any declare const window: any; @@ -35,12 +35,12 @@ function App() { } const provider = new ethers.providers.Web3Provider(window.ethereum, 'any'); - const {chainId} = await provider.getNetwork(); + const { chainId } = await provider.getNetwork(); if (chainId !== 80001) { // Switch to Matic Mumbai testnet await window.ethereum.request({ method: 'wallet_switchEthereumChain', - params: [{chainId: '0x13881'}], + params: [{ chainId: '0x13881' }], }); } @@ -68,8 +68,8 @@ function App() { }; const makeRemoteBob = (bob: Bob) => { - const {decryptingKey, verifyingKey} = bob; - return {decryptingKey, verifyingKey}; + const { decryptingKey, verifyingKey } = bob; + return { decryptingKey, verifyingKey }; }; const makeCharacters = () => { @@ -107,7 +107,8 @@ function App() { const policy = await alice.grant( provider, provider.getSigner(), - getPorterUri(domains.TESTNET), + domains.DEV, + getPorterUri(domains.DEV), policyParams, ); diff --git a/examples/pre/nodejs/src/index.ts b/examples/pre/nodejs/src/index.ts index 931567605..4d1477286 100644 --- a/examples/pre/nodejs/src/index.ts +++ b/examples/pre/nodejs/src/index.ts @@ -59,11 +59,16 @@ const runExample = async () => { startDate: new Date(), endDate: new Date(Date.now() + 1000 * 60 * 60 * 24 * 30), // In 30 days, }; - const porterUri = getPorterUri(domains.TESTNET); const alice = makeAlice(); console.log('Creating policy...'); - const policy = await alice.grant(provider, signer, porterUri, policyParams); + const policy = await alice.grant( + provider, + signer, + domains.DEV, + getPorterUri(domains.DEV), + policyParams, + ); console.log('Policy created:'); console.log({ policy }); diff --git a/examples/pre/react/src/App.tsx b/examples/pre/react/src/App.tsx index 54d9ea5a3..d1c581fe5 100644 --- a/examples/pre/react/src/App.tsx +++ b/examples/pre/react/src/App.tsx @@ -6,7 +6,7 @@ import { getPorterUri, initialize, SecretKey, - toHexString + toHexString, } from '@nucypher/pre'; import { ethers } from 'ethers'; import { useEffect, useState } from 'react'; @@ -98,7 +98,8 @@ function App() { const policy = await alice.grant( provider, provider.getSigner(), - getPorterUri(domains.TESTNET), + domains.DEV, + getPorterUri(domains.DEV), policyParams, ); diff --git a/examples/pre/webpack-5/README.md b/examples/pre/webpack-5/README.md index 8e5b61600..cfcaa7be2 100644 --- a/examples/pre/webpack-5/README.md +++ b/examples/pre/webpack-5/README.md @@ -9,4 +9,5 @@ pnpm install pnpm start ``` -Go to [localhost:8080](http://localhost:8080/) in your browser and look in the JS console. +Go to [localhost:8080](http://localhost:8080/) in your browser and look in the +JS console. diff --git a/examples/pre/webpack-5/src/index.ts b/examples/pre/webpack-5/src/index.ts index fe05e1f4b..1ba98ba42 100644 --- a/examples/pre/webpack-5/src/index.ts +++ b/examples/pre/webpack-5/src/index.ts @@ -65,13 +65,13 @@ const runExample = async () => { startDate, endDate, }; - const porterUri = getPorterUri(domains.TESTNET); const alice = makeAlice(); const policy = await alice.grant( provider, provider.getSigner(), - porterUri, + domains.DEV, + getPorterUri(domains.DEV), policyParams, ); diff --git a/examples/taco/nextjs/src/app/page.tsx b/examples/taco/nextjs/src/app/page.tsx index adc7e6393..b2f350926 100644 --- a/examples/taco/nextjs/src/app/page.tsx +++ b/examples/taco/nextjs/src/app/page.tsx @@ -6,10 +6,10 @@ import { encrypt, fromBytes, getPorterUri, - initialize + initialize, } from '@nucypher/taco'; -import {ethers} from 'ethers'; -import {useEffect, useState} from 'react'; +import { ethers } from 'ethers'; +import { useEffect, useState } from 'react'; // eslint-disable-next-line @typescript-eslint/no-explicit-any declare const window: any; @@ -21,7 +21,9 @@ function App() { const [provider, setProvider] = useState< ethers.providers.Web3Provider | undefined >(); - const [decryptedMessage, setDecryptedMessage] = useState(""); + const [decryptedMessage, setDecryptedMessage] = useState( + '', + ); const initNucypher = async () => { await initialize(); @@ -34,12 +36,12 @@ function App() { } const provider = new ethers.providers.Web3Provider(window.ethereum, 'any'); - const {chainId} = await provider.getNetwork(); + const { chainId } = await provider.getNetwork(); if (chainId !== 80001) { // Switch to Matic Mumbai testnet await window.ethereum.request({ method: 'wallet_switchEthereumChain', - params: [{chainId: '0x13881'}], + params: [{ chainId: '0x13881' }], }); } @@ -67,12 +69,12 @@ function App() { await provider.send('eth_requestAccounts', []); const signer = provider.getSigner(); - const {chainId} = await provider.getNetwork(); + const { chainId } = await provider.getNetwork(); if (chainId !== 80001) { // Switch to Matic Mumbai testnet await window.ethereum!.request!({ method: 'wallet_switchEthereumChain', - params: [{chainId: '0x13881'}], + params: [{ chainId: '0x13881' }], }); } @@ -88,11 +90,23 @@ function App() { }, }); const ritualId = 2; // Replace with your own ritual ID - const messageKit = await encrypt(provider, message, hasPositiveBalance, ritualId, signer); + const messageKit = await encrypt( + provider, + domains.DEV, + message, + hasPositiveBalance, + ritualId, + signer, + ); console.log('Decrypting message...'); - const porterUri = getPorterUri(domains.DEV); - const decryptedMessage = await decrypt(provider, messageKit,porterUri,signer); + const decryptedMessage = await decrypt( + provider, + domains.DEV, + messageKit, + getPorterUri(domains.DEV), + signer, + ); setDecryptedMessage(fromBytes(decryptedMessage)); }; @@ -100,7 +114,7 @@ function App() { return (

Secret message: {message}

- {(decryptedMessage &&

Decrypted message: {decryptedMessage}

)} + {decryptedMessage &&

Decrypted message: {decryptedMessage}

}
); diff --git a/examples/taco/nodejs/src/index.ts b/examples/taco/nodejs/src/index.ts index 339fc7cb9..bfd71fc76 100644 --- a/examples/taco/nodejs/src/index.ts +++ b/examples/taco/nodejs/src/index.ts @@ -1,11 +1,11 @@ import { conditions, decrypt, + domains, encrypt, fromBytes, getPorterUri, initialize, - domains, toBytes, } from '@nucypher/taco'; import * as dotenv from 'dotenv'; @@ -51,6 +51,7 @@ const runExample = async () => { const ritualId = 1; // Replace with your own ritual ID const messageKit = await encrypt( provider, + domains.DEV, message, hasPositiveBalance, ritualId, @@ -58,8 +59,13 @@ const runExample = async () => { ); console.log('Decrypting message...'); - const porterUri = getPorterUri(domains.DEV); - const decryptedBytes = await decrypt(provider, messageKit, porterUri, signer); + const decryptedBytes = await decrypt( + provider, + domains.DEV, + messageKit, + getPorterUri(domains.DEV), + signer, + ); const decryptedMessageString = fromBytes(decryptedBytes); console.log('Decrypted message:', decryptedMessageString); console.assert( diff --git a/examples/taco/react/README.md b/examples/taco/react/README.md index 5c1ef1c92..feb4ee5a4 100644 --- a/examples/taco/react/README.md +++ b/examples/taco/react/README.md @@ -2,8 +2,9 @@ Shows how to integrate `@nucypher/taco` into a React application. -In order to load WASM dependencies of `@nucypher/taco`, we override the `react-scripts` configuration with `craco`. For -more details, see the `craco.config.js` file. +In order to load WASM dependencies of `@nucypher/taco`, we override the +`react-scripts` configuration with `craco`. For more details, see the +`craco.config.js` file. ## Usage diff --git a/examples/taco/react/src/App.tsx b/examples/taco/react/src/App.tsx index ad77f772a..821f1c589 100644 --- a/examples/taco/react/src/App.tsx +++ b/examples/taco/react/src/App.tsx @@ -7,8 +7,8 @@ import { getPorterUri, initialize, } from '@nucypher/taco'; -import {ethers} from 'ethers'; -import {useEffect, useState} from 'react'; +import { ethers } from 'ethers'; +import { useEffect, useState } from 'react'; // eslint-disable-next-line @typescript-eslint/no-explicit-any declare const window: any; @@ -20,7 +20,9 @@ function App() { const [provider, setProvider] = useState< ethers.providers.Web3Provider | undefined >(); - const [decryptedMessage, setDecryptedMessage] = useState(""); + const [decryptedMessage, setDecryptedMessage] = useState( + '', + ); const initNucypher = async () => { await initialize(); @@ -33,12 +35,12 @@ function App() { } const provider = new ethers.providers.Web3Provider(window.ethereum, 'any'); - const {chainId} = await provider.getNetwork(); + const { chainId } = await provider.getNetwork(); if (chainId !== 80001) { // Switch to Matic Mumbai testnet await window.ethereum.request({ method: 'wallet_switchEthereumChain', - params: [{chainId: '0x13881'}], + params: [{ chainId: '0x13881' }], }); } @@ -66,12 +68,12 @@ function App() { await provider.send('eth_requestAccounts', []); const signer = provider.getSigner(); - const {chainId} = await provider.getNetwork(); + const { chainId } = await provider.getNetwork(); if (chainId !== 80001) { // Switch to Matic Mumbai testnet await window.ethereum!.request!({ method: 'wallet_switchEthereumChain', - params: [{chainId: '0x13881'}], + params: [{ chainId: '0x13881' }], }); } @@ -87,11 +89,23 @@ function App() { }, }); const ritualId = 2; // Replace with your own ritual ID - const messageKit = await encrypt(provider, message, hasPositiveBalance, ritualId, signer); + const messageKit = await encrypt( + provider, + domains.DEV, + message, + hasPositiveBalance, + ritualId, + signer, + ); console.log('Decrypting message...'); - const porterUri = getPorterUri(domains.DEV); - const decryptedMessage = await decrypt(provider, messageKit, porterUri, signer); + const decryptedMessage = await decrypt( + provider, + domains.DEV, + messageKit, + getPorterUri(domains.DEV), + signer, + ); setDecryptedMessage(fromBytes(decryptedMessage)); }; @@ -99,7 +113,7 @@ function App() { return (

Secret message: {message}

- {(decryptedMessage &&

Decrypted message: {decryptedMessage}

)} + {decryptedMessage &&

Decrypted message: {decryptedMessage}

}
); diff --git a/examples/taco/webpack-5/src/index.html b/examples/taco/webpack-5/src/index.html index 6e9349b3e..d6c74d500 100644 --- a/examples/taco/webpack-5/src/index.html +++ b/examples/taco/webpack-5/src/index.html @@ -6,7 +6,8 @@ -