diff --git a/.gitignore b/.gitignore index 3650387..51bd547 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules *debug.log .vercel +packages/contracts-forge/.env.local diff --git a/packages/app/codegen.yml b/packages/app/codegen.yml index ec69e4a..5e1fdb9 100644 --- a/packages/app/codegen.yml +++ b/packages/app/codegen.yml @@ -1,4 +1,4 @@ -schema: https://api.thegraph.com/subgraphs/name/relational-os/prompty +schema: https://api.thegraph.com/subgraphs/name/relational-os/promptyinstances documents: 'src/**/*.{ts,tsx,graphql}' generates: ./src/codegen/subgraph.ts: diff --git a/packages/app/public/assets/control-addMember.svg b/packages/app/public/assets/control-addMember.svg new file mode 100644 index 0000000..5c3aa84 --- /dev/null +++ b/packages/app/public/assets/control-addMember.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/app/public/assets/control-deleteMember.svg b/packages/app/public/assets/control-deleteMember.svg new file mode 100644 index 0000000..4b8b861 --- /dev/null +++ b/packages/app/public/assets/control-deleteMember.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/app/public/assets/control-enterNewMember-Invalid.svg b/packages/app/public/assets/control-enterNewMember-Invalid.svg new file mode 100644 index 0000000..8bfa8a7 --- /dev/null +++ b/packages/app/public/assets/control-enterNewMember-Invalid.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/app/public/assets/img-enterNewMember-Valid.svg b/packages/app/public/assets/img-enterNewMember-Valid.svg new file mode 100644 index 0000000..f22aa74 --- /dev/null +++ b/packages/app/public/assets/img-enterNewMember-Valid.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/app/public/assets/img-group-buzzard.png b/packages/app/public/assets/img-group-buzzard.png new file mode 100644 index 0000000..3f5d6d2 Binary files /dev/null and b/packages/app/public/assets/img-group-buzzard.png differ diff --git a/packages/app/public/assets/img-groupStatus-global.svg b/packages/app/public/assets/img-groupStatus-global.svg new file mode 100644 index 0000000..6f70e24 --- /dev/null +++ b/packages/app/public/assets/img-groupStatus-global.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/app/public/assets/img-groupStatus-private.svg b/packages/app/public/assets/img-groupStatus-private.svg new file mode 100644 index 0000000..0ebf155 --- /dev/null +++ b/packages/app/public/assets/img-groupStatus-private.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/app/src/codegen/subgraph.ts b/packages/app/src/codegen/subgraph.ts index 2b050bc..3b6d5f6 100644 --- a/packages/app/src/codegen/subgraph.ts +++ b/packages/app/src/codegen/subgraph.ts @@ -38,6 +38,7 @@ export type Prompt = { readonly __typename?: 'Prompt'; readonly endTime: Scalars['BigInt']; readonly id: Scalars['ID']; + readonly instance: PromptyInstance; readonly maxChars: Scalars['Int']; readonly minChars: Scalars['Int']; readonly responseCount: Scalars['Int']; @@ -75,6 +76,27 @@ export type Prompt_Filter = { readonly id_lte?: InputMaybe; readonly id_not?: InputMaybe; readonly id_not_in?: InputMaybe>; + readonly instance?: InputMaybe; + readonly instance_?: InputMaybe; + readonly instance_contains?: InputMaybe; + readonly instance_contains_nocase?: InputMaybe; + readonly instance_ends_with?: InputMaybe; + readonly instance_ends_with_nocase?: InputMaybe; + readonly instance_gt?: InputMaybe; + readonly instance_gte?: InputMaybe; + readonly instance_in?: InputMaybe>; + readonly instance_lt?: InputMaybe; + readonly instance_lte?: InputMaybe; + readonly instance_not?: InputMaybe; + readonly instance_not_contains?: InputMaybe; + readonly instance_not_contains_nocase?: InputMaybe; + readonly instance_not_ends_with?: InputMaybe; + readonly instance_not_ends_with_nocase?: InputMaybe; + readonly instance_not_in?: InputMaybe>; + readonly instance_not_starts_with?: InputMaybe; + readonly instance_not_starts_with_nocase?: InputMaybe; + readonly instance_starts_with?: InputMaybe; + readonly instance_starts_with_nocase?: InputMaybe; readonly maxChars?: InputMaybe; readonly maxChars_gt?: InputMaybe; readonly maxChars_gte?: InputMaybe; @@ -154,6 +176,7 @@ export type Prompt_Filter = { export enum Prompt_OrderBy { EndTime = 'endTime', Id = 'id', + Instance = 'instance', MaxChars = 'maxChars', MinChars = 'minChars', ResponseCount = 'responseCount', @@ -163,12 +186,116 @@ export enum Prompt_OrderBy { Who = 'who' } +export type PromptyInstance = { + readonly __typename?: 'PromptyInstance'; + readonly allowedResponders?: Maybe>; + readonly description: Scalars['String']; + readonly id: Scalars['ID']; + readonly name: Scalars['String']; + readonly prompts: ReadonlyArray; + readonly visible: Scalars['Boolean']; +}; + + +export type PromptyInstanceAllowedRespondersArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type PromptyInstancePromptsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type PromptyInstance_Filter = { + /** Filter for the block changed event. */ + readonly _change_block?: InputMaybe; + readonly allowedResponders?: InputMaybe>; + readonly allowedResponders_?: InputMaybe; + readonly allowedResponders_contains?: InputMaybe>; + readonly allowedResponders_contains_nocase?: InputMaybe>; + readonly allowedResponders_not?: InputMaybe>; + readonly allowedResponders_not_contains?: InputMaybe>; + readonly allowedResponders_not_contains_nocase?: InputMaybe>; + readonly description?: InputMaybe; + readonly description_contains?: InputMaybe; + readonly description_contains_nocase?: InputMaybe; + readonly description_ends_with?: InputMaybe; + readonly description_ends_with_nocase?: InputMaybe; + readonly description_gt?: InputMaybe; + readonly description_gte?: InputMaybe; + readonly description_in?: InputMaybe>; + readonly description_lt?: InputMaybe; + readonly description_lte?: InputMaybe; + readonly description_not?: InputMaybe; + readonly description_not_contains?: InputMaybe; + readonly description_not_contains_nocase?: InputMaybe; + readonly description_not_ends_with?: InputMaybe; + readonly description_not_ends_with_nocase?: InputMaybe; + readonly description_not_in?: InputMaybe>; + readonly description_not_starts_with?: InputMaybe; + readonly description_not_starts_with_nocase?: InputMaybe; + readonly description_starts_with?: InputMaybe; + readonly description_starts_with_nocase?: InputMaybe; + readonly id?: InputMaybe; + readonly id_gt?: InputMaybe; + readonly id_gte?: InputMaybe; + readonly id_in?: InputMaybe>; + readonly id_lt?: InputMaybe; + readonly id_lte?: InputMaybe; + readonly id_not?: InputMaybe; + readonly id_not_in?: InputMaybe>; + readonly name?: InputMaybe; + readonly name_contains?: InputMaybe; + readonly name_contains_nocase?: InputMaybe; + readonly name_ends_with?: InputMaybe; + readonly name_ends_with_nocase?: InputMaybe; + readonly name_gt?: InputMaybe; + readonly name_gte?: InputMaybe; + readonly name_in?: InputMaybe>; + readonly name_lt?: InputMaybe; + readonly name_lte?: InputMaybe; + readonly name_not?: InputMaybe; + readonly name_not_contains?: InputMaybe; + readonly name_not_contains_nocase?: InputMaybe; + readonly name_not_ends_with?: InputMaybe; + readonly name_not_ends_with_nocase?: InputMaybe; + readonly name_not_in?: InputMaybe>; + readonly name_not_starts_with?: InputMaybe; + readonly name_not_starts_with_nocase?: InputMaybe; + readonly name_starts_with?: InputMaybe; + readonly name_starts_with_nocase?: InputMaybe; + readonly prompts_?: InputMaybe; + readonly visible?: InputMaybe; + readonly visible_in?: InputMaybe>; + readonly visible_not?: InputMaybe; + readonly visible_not_in?: InputMaybe>; +}; + +export enum PromptyInstance_OrderBy { + AllowedResponders = 'allowedResponders', + Description = 'description', + Id = 'id', + Name = 'name', + Prompts = 'prompts', + Visible = 'visible' +} + export type Query = { readonly __typename?: 'Query'; /** Access to subgraph metadata */ readonly _meta?: Maybe<_Meta_>; readonly prompt?: Maybe; readonly prompts: ReadonlyArray; + readonly promptyInstance?: Maybe; + readonly promptyInstances: ReadonlyArray; readonly response?: Maybe; readonly responses: ReadonlyArray; readonly wallet?: Maybe; @@ -199,6 +326,24 @@ export type QueryPromptsArgs = { }; +export type QueryPromptyInstanceArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPromptyInstancesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + export type QueryResponseArgs = { block?: InputMaybe; id: Scalars['ID']; @@ -340,6 +485,8 @@ export type Subscription = { readonly _meta?: Maybe<_Meta_>; readonly prompt?: Maybe; readonly prompts: ReadonlyArray; + readonly promptyInstance?: Maybe; + readonly promptyInstances: ReadonlyArray; readonly response?: Maybe; readonly responses: ReadonlyArray; readonly wallet?: Maybe; @@ -370,6 +517,24 @@ export type SubscriptionPromptsArgs = { }; +export type SubscriptionPromptyInstanceArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPromptyInstancesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + export type SubscriptionResponseArgs = { block?: InputMaybe; id: Scalars['ID']; @@ -488,12 +653,14 @@ export type AuthorQueryVariables = Exact<{ }>; -export type AuthorQuery = { readonly __typename?: 'Query', readonly wallet?: { readonly __typename?: 'Wallet', readonly id: string, readonly prompts: ReadonlyArray<{ readonly __typename?: 'Prompt', readonly id: string, readonly text: string, readonly startTime: any, readonly endTime: any, readonly minChars: number, readonly maxChars: number, readonly responseCount: number, readonly who: { readonly __typename?: 'Wallet', readonly id: string } }>, readonly responses: ReadonlyArray<{ readonly __typename?: 'Response', readonly id: string, readonly text: string, readonly created: any, readonly prompt: { readonly __typename?: 'Prompt', readonly id: string, readonly text: string, readonly who: { readonly __typename?: 'Wallet', readonly id: string } } }> } | null }; +export type AuthorQuery = { readonly __typename?: 'Query', readonly wallet?: { readonly __typename?: 'Wallet', readonly id: string, readonly prompts: ReadonlyArray<{ readonly __typename?: 'Prompt', readonly id: string, readonly text: string, readonly startTime: any, readonly endTime: any, readonly minChars: number, readonly maxChars: number, readonly responseCount: number, readonly instance: { readonly __typename?: 'PromptyInstance', readonly id: string }, readonly who: { readonly __typename?: 'Wallet', readonly id: string } }>, readonly responses: ReadonlyArray<{ readonly __typename?: 'Response', readonly id: string, readonly text: string, readonly created: any, readonly prompt: { readonly __typename?: 'Prompt', readonly id: string, readonly text: string, readonly who: { readonly __typename?: 'Wallet', readonly id: string }, readonly instance: { readonly __typename?: 'PromptyInstance', readonly id: string } } }> } | null }; -export type LatestPromptsQueryVariables = Exact<{ [key: string]: never; }>; +export type LatestPromptsFromGroupQueryVariables = Exact<{ + id: Scalars['ID']; +}>; -export type LatestPromptsQuery = { readonly __typename?: 'Query', readonly prompts: ReadonlyArray<{ readonly __typename?: 'Prompt', readonly id: string, readonly text: string, readonly startTime: any, readonly endTime: any, readonly minChars: number, readonly maxChars: number, readonly responseCount: number, readonly who: { readonly __typename?: 'Wallet', readonly id: string } }> }; +export type LatestPromptsFromGroupQuery = { readonly __typename?: 'Query', readonly promptyInstances: ReadonlyArray<{ readonly __typename?: 'PromptyInstance', readonly id: string, readonly name: string, readonly prompts: ReadonlyArray<{ readonly __typename?: 'Prompt', readonly id: string, readonly text: string, readonly startTime: any, readonly endTime: any, readonly minChars: number, readonly maxChars: number, readonly responseCount: number, readonly who: { readonly __typename?: 'Wallet', readonly id: string }, readonly instance: { readonly __typename?: 'PromptyInstance', readonly id: string } }> }> }; export type PromptIdQueryVariables = Exact<{ id: Scalars['ID']; @@ -502,6 +669,18 @@ export type PromptIdQueryVariables = Exact<{ export type PromptIdQuery = { readonly __typename?: 'Query', readonly prompt?: { readonly __typename?: 'Prompt', readonly id: string, readonly text: string, readonly startTime: any, readonly endTime: any, readonly minChars: number, readonly maxChars: number, readonly responseCount: number, readonly who: { readonly __typename?: 'Wallet', readonly id: string }, readonly responses: ReadonlyArray<{ readonly __typename?: 'Response', readonly id: string, readonly text: string, readonly who: { readonly __typename?: 'Wallet', readonly id: string } }> } | null }; +export type PromptyInstanceByIdQueryVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type PromptyInstanceByIdQuery = { readonly __typename?: 'Query', readonly promptyInstances: ReadonlyArray<{ readonly __typename?: 'PromptyInstance', readonly id: string, readonly name: string, readonly description: string, readonly visible: boolean, readonly allowedResponders?: ReadonlyArray<{ readonly __typename?: 'Wallet', readonly id: string }> | null }> }; + +export type PublicPromptyInstancesQueryVariables = Exact<{ [key: string]: never; }>; + + +export type PublicPromptyInstancesQuery = { readonly __typename?: 'Query', readonly promptyInstances: ReadonlyArray<{ readonly __typename?: 'PromptyInstance', readonly id: string, readonly name: string, readonly description: string, readonly allowedResponders?: ReadonlyArray<{ readonly __typename?: 'Wallet', readonly id: string }> | null }> }; + export const AuthorDocument = gql` query Author($id: ID!) { @@ -512,6 +691,9 @@ export const AuthorDocument = gql` text startTime endTime + instance { + id + } minChars maxChars who { @@ -529,6 +711,9 @@ export const AuthorDocument = gql` who { id } + instance { + id + } } } } @@ -538,25 +723,32 @@ export const AuthorDocument = gql` export function useAuthorQuery(options: Omit, 'query'>) { return Urql.useQuery({ query: AuthorDocument, ...options }); }; -export const LatestPromptsDocument = gql` - query LatestPrompts { - prompts(first: 10, orderBy: startTime, orderDirection: desc) { +export const LatestPromptsFromGroupDocument = gql` + query LatestPromptsFromGroup($id: ID!) { + promptyInstances(where: {id: $id}) { id - text - startTime - endTime - minChars - maxChars - who { + name + prompts(first: 10, orderBy: startTime, orderDirection: desc) { id + who { + id + } + text + startTime + endTime + minChars + maxChars + responseCount + instance { + id + } } - responseCount } } `; -export function useLatestPromptsQuery(options?: Omit, 'query'>) { - return Urql.useQuery({ query: LatestPromptsDocument, ...options }); +export function useLatestPromptsFromGroupQuery(options: Omit, 'query'>) { + return Urql.useQuery({ query: LatestPromptsFromGroupDocument, ...options }); }; export const PromptIdDocument = gql` query PromptID($id: ID!) { @@ -584,4 +776,37 @@ export const PromptIdDocument = gql` export function usePromptIdQuery(options: Omit, 'query'>) { return Urql.useQuery({ query: PromptIdDocument, ...options }); +}; +export const PromptyInstanceByIdDocument = gql` + query PromptyInstanceById($id: ID!) { + promptyInstances(where: {id: $id}) { + id + name + description + visible + allowedResponders { + id + } + } +} + `; + +export function usePromptyInstanceByIdQuery(options: Omit, 'query'>) { + return Urql.useQuery({ query: PromptyInstanceByIdDocument, ...options }); +}; +export const PublicPromptyInstancesDocument = gql` + query PublicPromptyInstances { + promptyInstances(first: 100) { + id + name + description + allowedResponders { + id + } + } +} + `; + +export function usePublicPromptyInstancesQuery(options?: Omit, 'query'>) { + return Urql.useQuery({ query: PublicPromptyInstancesDocument, ...options }); }; \ No newline at end of file diff --git a/packages/app/src/components/Prompt.tsx b/packages/app/src/components/Prompt.tsx index fd6ebeb..302a7a0 100644 --- a/packages/app/src/components/Prompt.tsx +++ b/packages/app/src/components/Prompt.tsx @@ -7,9 +7,11 @@ import ReactTimeAgo from "react-time-ago"; const Prompt = ({ prompt }: { prompt: PromptType }) => { const promptExpired = dayjs().isAfter(dayjs.unix(prompt.endTime)); + const { id: instanceId } = prompt.instance || {}; + const instanceIdStr = instanceId as string; return ( - + diff --git a/packages/app/src/contracts.ts b/packages/app/src/contracts.ts index 420fafb..e66bdb5 100644 --- a/packages/app/src/contracts.ts +++ b/packages/app/src/contracts.ts @@ -1,4 +1,3 @@ -import deploys from "@prompty/contracts/deploys.json"; // import { Prompty__factory } from "@prompty/contracts/typechain-types"; // import { rinkebyProvider } from "./providers"; @@ -11,209 +10,425 @@ const network = "rinkeby"; // rinkebyProvider // ); -export const PROMPTY_ADDRESS = deploys[network].Prompty.address; +// TODO import this from the deploys.json file from contracts-forge +export const PROMPTY_ADDRESS = "0x6b24fbc6ac225508aba6899cfe844f5d229deaae"; export const ABI = [ { - inputs: [], - name: "AlreadyResponded", - type: "error", + "inputs": [], + "name": "AlreadyResponded", + "type": "error" }, { - inputs: [], - name: "InvalidPrompt", - type: "error", + "inputs": [], + "name": "InvalidPrompt", + "type": "error" }, { - inputs: [], - name: "InvalidPromptID", - type: "error", + "inputs": [], + "name": "InvalidPromptID", + "type": "error" }, { - inputs: [], - name: "InvalidPromptParams", - type: "error", + "inputs": [], + "name": "InvalidPromptParams", + "type": "error" }, { - inputs: [], - name: "PromptExpired", - type: "error", + "inputs": [], + "name": "NotAllowed", + "type": "error" }, { - inputs: [], - name: "ResponseTooLong", - type: "error", + "inputs": [], + "name": "PromptExpired", + "type": "error" }, { - inputs: [], - name: "ResponseTooShort", - type: "error", + "inputs": [], + "name": "ResponseTooLong", + "type": "error" }, { - anonymous: false, - inputs: [ + "inputs": [], + "name": "ResponseTooShort", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ { - indexed: false, - internalType: "uint256", - name: "promptId", - type: "uint256", + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" }, { - indexed: false, - internalType: "address", - name: "creator", - type: "address", + "indexed": false, + "internalType": "string", + "name": "name", + "type": "string" }, { - indexed: false, - internalType: "string", - name: "prompt", - type: "string", + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" }, { - indexed: false, - internalType: "uint256", - name: "startTime", - type: "uint256", - }, + "indexed": false, + "internalType": "bool", + "name": "isVisible", + "type": "bool" + } + ], + "name": "InstanceCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - indexed: false, - internalType: "uint256", - name: "endTime", - type: "uint256", + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" }, { - indexed: false, - internalType: "uint128", - name: "minChars", - type: "uint128", + "indexed": false, + "internalType": "string", + "name": "name", + "type": "string" }, { - indexed: false, - internalType: "uint128", - name: "maxChars", - type: "uint128", + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" }, + { + "indexed": false, + "internalType": "bool", + "name": "isVisible", + "type": "bool" + } ], - name: "PromptCreated", - type: "event", + "name": "InstanceUpdated", + "type": "event" }, { - anonymous: false, - inputs: [ + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "instanceId", + "type": "uint256" + }, { - indexed: false, - internalType: "uint256", - name: "promptId", - type: "uint256", + "indexed": false, + "internalType": "uint256", + "name": "promptId", + "type": "uint256" }, { - indexed: false, - internalType: "address", - name: "responder", - type: "address", + "indexed": false, + "internalType": "address", + "name": "creator", + "type": "address" }, { - indexed: false, - internalType: "string", - name: "response", - type: "string", + "indexed": false, + "internalType": "string", + "name": "prompt", + "type": "string" }, + { + "indexed": false, + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "minChars", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "maxChars", + "type": "uint128" + } ], - name: "PromptResponse", - type: "event", + "name": "PromptCreated", + "type": "event" }, { - inputs: [ + "anonymous": false, + "inputs": [ { - internalType: "string", - name: "prompt", - type: "string", + "indexed": false, + "internalType": "uint256", + "name": "promptId", + "type": "uint256" }, { - internalType: "uint256", - name: "endTime", - type: "uint256", + "indexed": false, + "internalType": "address", + "name": "responder", + "type": "address" }, { - internalType: "uint128", - name: "minChars", - type: "uint128", + "indexed": false, + "internalType": "string", + "name": "response", + "type": "string" + } + ], + "name": "PromptResponse", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "instanceId", + "type": "uint256" }, { - internalType: "uint128", - name: "maxChars", - type: "uint128", + "indexed": false, + "internalType": "address", + "name": "responder", + "type": "address" + } + ], + "name": "ResponderAdded", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "instanceID", + "type": "uint256" }, + { + "internalType": "address[]", + "name": "allowedResponders", + "type": "address[]" + } ], - name: "create", - outputs: [], - stateMutability: "nonpayable", - type: "function", + "name": "addResponders", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - inputs: [], - name: "currentPromptId", - outputs: [ + "inputs": [ { - internalType: "uint256", - name: "", - type: "uint256", + "internalType": "address[]", + "name": "allowedResponders", + "type": "address[]" }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "internalType": "bool", + "name": "isVisible", + "type": "bool" + } ], - stateMutability: "view", - type: "function", + "name": "createInstance", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - inputs: [ + "inputs": [ + { + "internalType": "uint256", + "name": "instanceId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "prompt", + "type": "string" + }, { - internalType: "uint256", - name: "", - type: "uint256", + "internalType": "uint256", + "name": "endTime", + "type": "uint256" }, + { + "internalType": "uint128", + "name": "minChars", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "maxChars", + "type": "uint128" + } ], - name: "prompts", - outputs: [ + "name": "createPrompt", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "currentPromptId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - internalType: "uint256", - name: "startTime", - type: "uint256", + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "instances", + "outputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" }, { - internalType: "uint256", - name: "endTime", - type: "uint256", + "internalType": "bool", + "name": "isVisible", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "prompts", + "outputs": [ + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" }, { - internalType: "uint128", - name: "minChars", - type: "uint128", + "internalType": "uint256", + "name": "endTime", + "type": "uint256" }, { - internalType: "uint128", - name: "maxChars", - type: "uint128", + "internalType": "uint128", + "name": "minChars", + "type": "uint128" }, + { + "internalType": "uint128", + "name": "maxChars", + "type": "uint128" + } ], - stateMutability: "view", - type: "function", + "stateMutability": "view", + "type": "function" }, { - inputs: [ + "inputs": [ { - internalType: "uint256", - name: "promptId", - type: "uint256", + "internalType": "uint256", + "name": "instanceId", + "type": "uint256" }, { - internalType: "string", - name: "response", - type: "string", + "internalType": "uint256", + "name": "promptId", + "type": "uint256" }, + { + "internalType": "string", + "name": "response", + "type": "string" + } ], - name: "respond", - outputs: [], - stateMutability: "nonpayable", - type: "function", + "name": "respond", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "instanceId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "newName", + "type": "string" + }, + { + "internalType": "string", + "name": "newDescription", + "type": "string" + }, + { + "internalType": "bool", + "name": "newIsVisible", + "type": "bool" + }, + { + "internalType": "address[]", + "name": "newAllowedResponders", + "type": "address[]" + } + ], + "name": "updateSettings", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } ]; diff --git a/packages/app/src/layouts/MainLayout.tsx b/packages/app/src/layouts/MainLayout.tsx index 7e4c198..fa7b6fb 100644 --- a/packages/app/src/layouts/MainLayout.tsx +++ b/packages/app/src/layouts/MainLayout.tsx @@ -1,43 +1,73 @@ -import React, { ReactNode } from 'react'; -import { ConnectButton } from '@rainbow-me/rainbowkit'; -import { useConnect } from 'wagmi'; +import React, { ReactNode } from "react"; +import { ConnectButton } from "@rainbow-me/rainbowkit"; +import { useConnect } from "wagmi"; +import { useRouter } from "next/router"; +import { useLatestPromptsFromGroupQuery } from "src/codegen/subgraph"; const MainLayout = ({ children }: { children: ReactNode }) => { + const router = useRouter(); const { isConnected } = useConnect(); + const { instanceId } = router.query; + const instanceIdStr = instanceId as string; + + const [query] = useLatestPromptsFromGroupQuery( + typeof window === "undefined" || instanceId == undefined + ? { pause: true } + : { variables: { id: instanceIdStr } } + ); + + const instanceData = query.data?.promptyInstances[0]; return ( <> -
- -

- Prompty… -

-
- -
- - {isConnected && ( - - + New prompt - - )} -
- {/* {!account ? ( - - ) : ( - )} */} -
+ {instanceId ? ( +
+ +

+ {instanceData?.name}… +

+
+ +
+ + {isConnected && ( + + )} +
+
+ ) : ( +
+ +

+ Prompty… +

+
+ +
+ + {isConnected && !window.location.href.includes("/author/") && ( + + + New group + + )} +
+
+ )} +
{children}
+ + + ); +}; + +export default HomePage; diff --git a/packages/app/src/pages/prompt/[id]/index.tsx b/packages/app/src/pages/group/[instanceId]/prompt/[id]/index.tsx similarity index 97% rename from packages/app/src/pages/prompt/[id]/index.tsx rename to packages/app/src/pages/group/[instanceId]/prompt/[id]/index.tsx index 5d7ce65..5556f57 100644 --- a/packages/app/src/pages/prompt/[id]/index.tsx +++ b/packages/app/src/pages/group/[instanceId]/prompt/[id]/index.tsx @@ -4,10 +4,9 @@ import React, { useMemo, useState } from "react"; import { ENSName } from "react-ens-name"; import ReactMarkdown from "react-markdown"; import { gql } from "urql"; -import { usePromptIdQuery } from "../../../codegen/subgraph"; -import Prompt from "../../../components/Prompt"; -import { ABI, PROMPTY_ADDRESS } from "../../../contracts"; -import MainLayout from "../../../layouts/MainLayout"; +import Prompt from "../../../../../components/Prompt"; +import { ABI, PROMPTY_ADDRESS } from "../../../../../contracts"; +import MainLayout from "../../../../../layouts/MainLayout"; import TextareaAutosize from "react-textarea-autosize"; import { useAccount, @@ -18,6 +17,7 @@ import { import { PromptResponseType } from "src/types"; import { useElapsedTime } from "use-elapsed-time"; import Spinner from "src/components/Spinner"; +import { usePromptIdQuery } from "src/codegen/subgraph"; // @ts-ignore gql` diff --git a/packages/app/src/pages/prompt/create.tsx b/packages/app/src/pages/group/[instanceId]/prompt/create.tsx similarity index 95% rename from packages/app/src/pages/prompt/create.tsx rename to packages/app/src/pages/group/[instanceId]/prompt/create.tsx index adde7c8..8d1ddf8 100644 --- a/packages/app/src/pages/prompt/create.tsx +++ b/packages/app/src/pages/group/[instanceId]/prompt/create.tsx @@ -1,5 +1,4 @@ import React, { useState } from "react"; -import { ABI, PROMPTY_ADDRESS } from "../../contracts"; import Spinner from "src/components/Spinner"; import dayjs from "dayjs"; import MainLayout from "src/layouts/MainLayout"; @@ -16,6 +15,7 @@ import { import { useRouter } from "next/router"; import { defaultAbiCoder } from "ethers/lib/utils"; import { DoubleSlider } from "src/components/DoubleSlider"; +import { ABI, PROMPTY_ADDRESS } from "src/contracts"; const PENDING_TRANSACTION_LOADING_MESSAGE = "tx processing..."; const PENDING_WRITE_LOADING_MESSAGE = "Sign the message..."; @@ -30,6 +30,7 @@ const Create = () => { const [days, setDays] = useState("1"); const provider = useProvider(); const { data: account } = useAccount(); + const { instanceId } = router.query; const { data, @@ -40,9 +41,10 @@ const Create = () => { addressOrName: PROMPTY_ADDRESS, contractInterface: ABI, }, - "create", + "createPrompt", { args: [ + instanceId, text, dayjs().add(parseInt(days), "days").unix(), minChars.toString(), @@ -64,6 +66,7 @@ const Create = () => { const event = defaultAbiCoder.decode( [ + "uint256", "uint256", "address", "string", @@ -75,7 +78,7 @@ const Create = () => { data.logs[0].data ); - router.push(`/prompt/${event[0].toString()}`); + router.push(`/group/${instanceId}/prompt/${event[1].toString()}`); }, }); diff --git a/packages/app/src/pages/group/[instanceId]/settings.tsx b/packages/app/src/pages/group/[instanceId]/settings.tsx new file mode 100644 index 0000000..ab60040 --- /dev/null +++ b/packages/app/src/pages/group/[instanceId]/settings.tsx @@ -0,0 +1,291 @@ +import type { NextPage } from "next"; +import Head from "next/head"; +import { gql } from "urql"; +import { usePromptyInstanceByIdQuery } from "../../../codegen/subgraph"; +import MainLayout from "../../../layouts/MainLayout"; +import { useRouter } from "next/router"; +import { useEffect, useState } from "react"; +import { useContractWrite, useProvider, useWaitForTransaction } from "wagmi"; +import { ABI, PROMPTY_ADDRESS } from "src/contracts"; +// import { defaultAbiCoder } from "ethers/lib/utils"; +import { useElapsedTime } from "use-elapsed-time"; +import Spinner from "src/components/Spinner"; + +const PENDING_TRANSACTION_LOADING_MESSAGE = "tx processing..."; +const PENDING_WRITE_LOADING_MESSAGE = "Sign the message..."; + +gql` + query PromptyInstanceById($id: ID!) { + promptyInstances(where: { id: $id }) { + id + name + description + visible + allowedResponders { + id + } + } + } +`; + +const HomePage: NextPage = () => { + const router = useRouter(); + const provider = useProvider(); + + const { instanceId } = router.query; + const instanceIdStr = instanceId as string; + const [addState, setAddState] = useState<"none" | "adding" | "confirm">( + "none" + ); + const [allowedResponders, setAllowedResponders] = useState([]); + const [newResponder, setNewResponder] = useState(""); + + const [query] = usePromptyInstanceByIdQuery( + typeof window === "undefined" || instanceId == undefined + ? { pause: true } + : { variables: { id: instanceIdStr } } + ); + + const instanceData = query.data?.promptyInstances[0]; + const [groupName, setGroupName] = useState( + instanceData?.name + ); + + const [visibility, setVisibility] = useState("public"); + const [description, setDescription] = useState(""); + const { + data, + write, + isLoading: isLoadingWrite, + } = useContractWrite( + { + addressOrName: PROMPTY_ADDRESS, + contractInterface: ABI, + }, + "updateSettings", + { + args: [ + instanceIdStr, + groupName, + description, + visibility == "public", + allowedResponders, + ], + } + ); + + const { isLoading: isTransactionLoading } = useWaitForTransaction({ + enabled: Boolean(data?.hash), + confirmations: 1, + hash: data?.hash, + wait: data?.wait, + onError(err) { + console.error("error waiting for tx", err); + }, + onSuccess(data) { + // here: redirect to the page + console.log("success", data); + + // todo: explicitly refresh on solidity success + // const event = defaultAbiCoder.decode( + // [ + // 'uint256', + // 'address', + // 'string', + // 'uint256', + // 'uint256', + // 'uint128', + // 'uint128', + // ], + // data.logs[0].data + // ); + + // router.push(`/group/${event[0].toString()}`); + window.location.reload(); + + // wait 30 seconds and then reload the page + // setTimeout(() => { + // window.location.reload(); + // }, 30000); + }, + }); + + const isLoading = isLoadingWrite || isTransactionLoading; + const { elapsedTime } = useElapsedTime({ isPlaying: isTransactionLoading }); + + function updateSettings() { + console.log("updateSettings"); + if (provider) { + write(); + } else { + console.log("no provider"); + } + } + + // TODO do validation here + // ensure valid address, not a duplicate, etc + const addResponder = () => { + if (allowedResponders.includes(newResponder)) { + setNewResponder(""); + return; + } + setAllowedResponders([...allowedResponders, newResponder]); + setNewResponder(""); + }; + + const removeResponder = (responder: string) => { + setAllowedResponders(allowedResponders.filter((r) => r !== responder)); + }; + + useEffect(() => { + if (instanceData) { + setGroupName(instanceData?.name); + setDescription(instanceData?.description); + setVisibility(instanceData?.visible ? "public" : "unlisted"); + setAllowedResponders( + instanceData?.allowedResponders?.map((r) => r.id) || [] + ); + } + }, [instanceData?.name]); + + return ( + <> + + {instanceData?.name} Settings + + + +
+

Settings

+ +
+

+ Group Name +

+ setGroupName(e.target.value)} + > +
+ +
+

+ Description +

+ +
+ +
+

+ Visibility +

+ +
+ +
+

+ Allow List +

+
+ {allowedResponders.map((responder: string) => ( +
+ {responder} + +
+ ))} + {addState != "none" && ( +
+ setNewResponder(e.target.value)} + > + +
+ )} +
+ + {addState == "none" && ( + + )} +
+ + +
+
+ + ); +}; + +export default HomePage; diff --git a/packages/app/src/pages/group/create.tsx b/packages/app/src/pages/group/create.tsx new file mode 100644 index 0000000..dc2b414 --- /dev/null +++ b/packages/app/src/pages/group/create.tsx @@ -0,0 +1,155 @@ +import React, { useState } from "react"; +import Spinner from "src/components/Spinner"; +import MainLayout from "src/layouts/MainLayout"; +import { useElapsedTime } from "use-elapsed-time"; +// import { ENSName } from "react-ens-name"; +import { + useAccount, + useContractWrite, + useProvider, + useWaitForTransaction, +} from "wagmi"; +import { useRouter } from "next/router"; +import { defaultAbiCoder } from "ethers/lib/utils"; +import { ABI, PROMPTY_ADDRESS } from "src/contracts"; + +const PENDING_TRANSACTION_LOADING_MESSAGE = "tx processing..."; +const PENDING_WRITE_LOADING_MESSAGE = "Sign the message..."; +const Create = () => { + const router = useRouter(); + + const provider = useProvider(); + const { data: account } = useAccount(); + + const [groupName, setGroupName] = useState(""); + const [description, setDescription] = useState(""); + const [visibility, setVisibility] = useState("public"); + // eslint-disable-next-line no-unused-vars + const [allowList, setAllowList] = useState([account?.address]); + // const [visibility, setVisibility] = useState("public"); + + const submitGroup = async () => { + if (provider) { + write(); + } else { + console.log("no provider"); + } + }; + + // TODO: make into component, share with group/settings + const { + data, + write, + isLoading: isLoadingWrite, + } = useContractWrite( + { + addressOrName: PROMPTY_ADDRESS, + contractInterface: ABI, + }, + "createInstance", + { + args: [allowList, groupName, description, visibility == "public"], + } + ); + + const { isLoading: isTransactionLoading } = useWaitForTransaction({ + enabled: Boolean(data?.hash), + confirmations: 1, + hash: data?.hash, + wait: data?.wait, + onError(err) { + console.error("error waiting for tx", err); + }, + onSuccess(data) { + // here: redirect to the page + console.log("success", data); + + const event = defaultAbiCoder.decode( + [ + "uint256", + "address", + "string", + "uint256", + "uint256", + "uint128", + "uint128", + ], + data.logs[0].data + ); + + router.push(`/group/${event[0].toString()}`); + }, + }); + + const isLoading = isLoadingWrite || isTransactionLoading; + const { elapsedTime } = useElapsedTime({ isPlaying: isTransactionLoading }); + + return ( + +
+

Create your Group!

+ +
+

Group Name

+ setGroupName(e.target.value)} + > +
+ +
+

+ Description +

+ +
+ +
+

Visibility

+ +
+ + +
+
+ ); +}; + +export default Create; diff --git a/packages/app/src/pages/index.tsx b/packages/app/src/pages/index.tsx index 3b320ea..b4f39fc 100644 --- a/packages/app/src/pages/index.tsx +++ b/packages/app/src/pages/index.tsx @@ -1,47 +1,76 @@ import type { NextPage } from "next"; import Head from "next/head"; import { gql } from "urql"; -import { useLatestPromptsQuery } from "../codegen/subgraph"; -import Prompt from "../components/Prompt"; import MainLayout from "../layouts/MainLayout"; -import { PromptType } from "../types"; +import { usePublicPromptyInstancesQuery } from "../codegen/subgraph"; +import Link from "next/link"; gql` - query LatestPrompts { - prompts(first: 10, orderBy: startTime, orderDirection: desc) { + query PublicPromptyInstances { + promptyInstances(first: 100) { id - text - startTime - endTime - minChars - maxChars - who { + name + description + allowedResponders { id } - responseCount } } `; const HomePage: NextPage = () => { - const [query] = useLatestPromptsQuery( + // eslint-disable-next-line no-unused-vars + const [query] = usePublicPromptyInstancesQuery( typeof window === "undefined" ? { pause: true } : {} ); return ( <> - Prompty + Welcome to Prompty! - {query.data?.prompts?.map((p: PromptType) => ( -
- -
- ))} +

+ Prompty is a collaborative prompting +
+ game system for together fun. +

+ + {/* + Create a new group + */} - + {query.data?.promptyInstances.map((p: any) => ( + +
+ +
+
+

{p.name}

+ + + 3 active prompts + + {/* TODO: add unlisted icon */} + + +
+ +

This is a description of the life purpose of the group.

+
+
+ + ))}
); diff --git a/packages/app/src/types.ts b/packages/app/src/types.ts index ce48e64..8f9c404 100644 --- a/packages/app/src/types.ts +++ b/packages/app/src/types.ts @@ -8,8 +8,23 @@ export type PromptType = { maxChars: number; responses?: Response[]; responseCount: number; + instance: PromptyInstance; }; +export type PromptyInstance = { + id: string; + name: string; + description: string; + visible: boolean; + allowedResponders: Wallet[]; +} + +export type Wallet = { + id: string; + prompts: PromptType[]; + responses: PromptResponseType[]; +} + export type PromptResponseType = { id: string; who?: AuthorType; diff --git a/packages/contracts-forge/broadcast/DeployPrompty.s.sol/80001/run-latest.json b/packages/contracts-forge/broadcast/DeployPrompty.s.sol/80001/run-latest.json index 8025475..c72d1e3 100644 --- a/packages/contracts-forge/broadcast/DeployPrompty.s.sol/80001/run-latest.json +++ b/packages/contracts-forge/broadcast/DeployPrompty.s.sol/80001/run-latest.json @@ -1 +1 @@ -{"transactions":[{"type":"0x02","from":"0xa8526c06a983ca5ba6add36b1b3d58c1efd2ecf7","gas":"0xe695a","value":"0x0","data":"0x60806040526000805534801561001457600080fd5b50610c24806100246000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a836afab1161005b578063a836afab146100d4578063d4cf9af7146100e7578063d715bc7614610158578063d8fcb5781461016b57600080fd5b806317e7d99d146100825780635542bbae1461009e578063a2f7b3a5146100b3575b600080fd5b61008b60005481565b6040519081526020015b60405180910390f35b6100b16100ac366004610879565b61017e565b005b6100c66100c13660046108eb565b610303565b604051610095929190610951565b6100b16100e2366004610989565b6103a8565b6101296100f53660046108eb565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b0391821692840192909252166060820152608001610095565b6100b16101663660046109b5565b61043c565b6100b1610179366004610a84565b61058d565b6000858152600260208181526040808420338552909201905281205460ff16151590036101be57604051631eb49d6d60e11b815260040160405180910390fd5b83516000036101e0576040516345df16e360e11b815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561021357604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161023d57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b03161061026857604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517f70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f926102dc928a92909133918b91908b908b908b90610ac1565b60405180910390a160016000808282546102f69190610b3a565b9091555050505050505050565b6002602052600090815260409020805460018201805491929161032590610b52565b80601f016020809104026020016040519081016040528092919081815260200182805461035190610b52565b801561039e5780601f106103735761010080835404028352916020019161039e565b820191906000526020600020905b81548152906001019060200180831161038157829003601f168201915b5050505050905082565b60008281526002602081815260408084206001600160a01b03861685529283019091529091205460ff16610437576001600160a01b0382166000818152600283016020908152604091829020805460ff191660011790558151868152908101929092527f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f38910160405180910390a15b505050565b60035460009081526002602090815260409091208251909161046591600184019185019061070d565b507f12a37195fcb94c4dd39071e7d48a098630635e5ad29d4bcc83a4393278045b7a60035483604051610499929190610951565b60405180910390a160005b835181101561057e5760018260020160008684815181106104c7576104c7610b8c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f3860035485838151811061053c5761053c610b8c565b60200260200101516040516105649291909182526001600160a01b0316602082015260400190565b60405180910390a18061057681610ba2565b9150506104a4565b50506003805460010190555050565b60005482106105af5760405163bad818f360e01b815260040160405180910390fd5b600082815260016020819052604090912001544211156105e2576040516317eeb92b60e31b815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff16156106205760405163251aba6960e11b815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b03909116111561065e5760405163254082dd60e11b815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b031610156106a257604051632707879b60e11b815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e588091610701918591908590610bbb565b60405180910390a15050565b82805461071990610b52565b90600052602060002090601f01602090048101928261073b5760008555610781565b82601f1061075457805160ff1916838001178555610781565b82800160010185558215610781579182015b82811115610781578251825591602001919060010190610766565b5061078d929150610791565b5090565b5b8082111561078d5760008155600101610792565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156107e5576107e56107a6565b604052919050565b600082601f8301126107fe57600080fd5b813567ffffffffffffffff811115610818576108186107a6565b61082b601f8201601f19166020016107bc565b81815284602083860101111561084057600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160801b038116811461087457600080fd5b919050565b600080600080600060a0868803121561089157600080fd5b85359450602086013567ffffffffffffffff8111156108af57600080fd5b6108bb888289016107ed565b945050604086013592506108d16060870161085d565b91506108df6080870161085d565b90509295509295909350565b6000602082840312156108fd57600080fd5b5035919050565b6000815180845260005b8181101561092a5760208185018101518683018201520161090e565b8181111561093c576000602083870101525b50601f01601f19169290920160200192915050565b82815260406020820152600061096a6040830184610904565b949350505050565b80356001600160a01b038116811461087457600080fd5b6000806040838503121561099c57600080fd5b823591506109ac60208401610972565b90509250929050565b600080604083850312156109c857600080fd5b823567ffffffffffffffff808211156109e057600080fd5b818501915085601f8301126109f457600080fd5b8135602082821115610a0857610a086107a6565b8160051b610a178282016107bc565b928352848101820192828101908a851115610a3157600080fd5b958301955b84871015610a5657610a4787610972565b82529583019590830190610a36565b9750505086013592505080821115610a6d57600080fd5b50610a7a858286016107ed565b9150509250929050565b60008060408385031215610a9757600080fd5b82359150602083013567ffffffffffffffff811115610ab557600080fd5b610a7a858286016107ed565b888152602081018890526001600160a01b038716604082015261010060608201819052600090610af383820189610904565b6080840197909752505060a08101939093526001600160801b0391821660c08401521660e090910152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610b4d57610b4d610b24565b500190565b600181811c90821680610b6657607f821691505b602082108103610b8657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060018201610bb457610bb4610b24565b5060010190565b8381526001600160a01b0383166020820152606060408201819052600090610be590830184610904565b9594505050505056fea26469706673582212207bef5fdd5ea939eaefc8e29369db06401634e0717757f06d0bb0646768bcfef064736f6c634300080d0033","nonce":"0x2","accessList":[]},{"type":"0x02","from":"0xa8526c06a983ca5ba6add36b1b3d58c1efd2ecf7","gas":"0x4de15","value":"0x0","data":"0x608060405234801561001057600080fd5b5060405161038038038061038083398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b610294806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063715018a61461005c5780638da5cb5b14610066578063e2a79abb1461008f578063e44f0e8c146100a2578063f2fde38b146100b5575b600080fd5b6100646100c8565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006461009d36600461022e565b6100dc565b600154610073906001600160a01b031681565b6100646100c336600461022e565b610106565b6100d0610184565b6100da60006101de565b565b6100e4610184565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61010e610184565b6001600160a01b0381166101785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610181816101de565b50565b6000546001600160a01b031633146100da5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561024057600080fd5b81356001600160a01b038116811461025757600080fd5b939250505056fea264697066735822122005c86109122f61b88c8c52186d6d1d8c038e66f0c1333ed1fc933f4e7d2ea4ee64736f6c634300080d0033000000000000000000000000ad8e2b2684ab04f66ac526db8bfb9f68a231d996","nonce":"0x3","accessList":[]}],"receipts":[{"transactionHash":"0x08e37a4c276e4f68dc5363cfde41b9e6ffa623398230175c9e8913828ee6ac38","transactionIndex":"0x1b","blockHash":"0xa88bc6c66e8c2dfe933a3f1f1746406d7370560e1c2fc8eac1ed4ae0ff82878c","blockNumber":"0x1a142e5","from":"0xa8526c06a983ca5ba6add36b1b3d58c1efd2ecf7","to":null,"cumulativeGasUsed":"0x340df0","gasUsed":"0xb15f7","contractAddress":"0xad8e2b2684ab04f66ac526db8bfb9f68a231d996","logs":[{"address":"0x0000000000000000000000000000000000001010","topics":["0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63","0x0000000000000000000000000000000000000000000000000000000000001010","0x000000000000000000000000a8526c06a983ca5ba6add36b1b3d58c1efd2ecf7","0x000000000000000000000000c26880a0af2ea0c7e8130e6ec47af756465452e8"],"data":"0x0000000000000000000000000000000000000000000000000007be4ba8c0b20000000000000000000000000000000000000000000000000008145e0ff1d6be0c000000000000000000000000000000000000000000001251f0c999b7c3bc7576000000000000000000000000000000000000000000000000080c9fc449160c0c000000000000000000000000000000000000000000001251f0d158036c7d2776","blockHash":"0xa88bc6c66e8c2dfe933a3f1f1746406d7370560e1c2fc8eac1ed4ae0ff82878c","blockNumber":"0x1a142e5","transactionHash":"0x08e37a4c276e4f68dc5363cfde41b9e6ffa623398230175c9e8913828ee6ac38","transactionIndex":"0x1b","logIndex":"0x62","removed":false}],"status":"0x1","root":null,"logsBloom":"0x00000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000200000000000000000000000000000000000000200000800000000000000000000100000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000020000000800000000001000000000000000000000000004000000000000000000001000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000100000","type":"0x2","effectiveGasPrice":"0xa2c1113a1"},{"transactionHash":"0xb33b947ea756872c28a57a015587e51431355691e4cbddb8807b9b651bb95f60","transactionIndex":"0x1c","blockHash":"0xa88bc6c66e8c2dfe933a3f1f1746406d7370560e1c2fc8eac1ed4ae0ff82878c","blockNumber":"0x1a142e5","from":"0xa8526c06a983ca5ba6add36b1b3d58c1efd2ecf7","to":null,"cumulativeGasUsed":"0x37cc77","gasUsed":"0x3be87","contractAddress":"0x481dce0824595bea20ce009b7aba2a71b139892c","logs":[{"address":"0x481dce0824595bea20ce009b7aba2a71b139892c","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000a8526c06a983ca5ba6add36b1b3d58c1efd2ecf7"],"data":"0x","blockHash":"0xa88bc6c66e8c2dfe933a3f1f1746406d7370560e1c2fc8eac1ed4ae0ff82878c","blockNumber":"0x1a142e5","transactionHash":"0xb33b947ea756872c28a57a015587e51431355691e4cbddb8807b9b651bb95f60","transactionIndex":"0x1c","logIndex":"0x63","removed":false},{"address":"0x0000000000000000000000000000000000001010","topics":["0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63","0x0000000000000000000000000000000000000000000000000000000000001010","0x000000000000000000000000a8526c06a983ca5ba6add36b1b3d58c1efd2ecf7","0x000000000000000000000000c26880a0af2ea0c7e8130e6ec47af756465452e8"],"data":"0x00000000000000000000000000000000000000000000000000029d860ba5920000000000000000000000000000000000000000000000000007a399e62ed598b5000000000000000000000000000000000000000000001251f0d158036c7d277600000000000000000000000000000000000000000000000007a0fc60233006b5000000000000000000000000000000000000000000001251f0d3f5897822b976","blockHash":"0xa88bc6c66e8c2dfe933a3f1f1746406d7370560e1c2fc8eac1ed4ae0ff82878c","blockNumber":"0x1a142e5","transactionHash":"0xb33b947ea756872c28a57a015587e51431355691e4cbddb8807b9b651bb95f60","transactionIndex":"0x1c","logIndex":"0x64","removed":false}],"status":"0x1","root":null,"logsBloom":"0x00000000000000020000000000000000000000000000000000800000000000000000000000000000000000002000000000008000000000000200000000000000000000000000000000000000200000820001000000000000000100000000000000000000020000000000000000000800000000000000000080000000000000400000000000000000000000000000000000000800000000000000000000000000200000000000000020000000800000000001000000000000000000000000004000000000000000000001000000000000000000000000000000100000000020000000000000000000000000000000000000000000000000000000000000100000","type":"0x2","effectiveGasPrice":"0xa2c1113a1"}],"pending":[],"create2_contracts":[],"path":"broadcast/DeployPrompty.s.sol/80001/run-latest.json","timestamp":1658858787,"libraries":[]} \ No newline at end of file +{"transactions":[{"hash":"0x9e450829b58dccd084c0f43f345c3c369bb9eba0a67eb75bd0f949344720858d","type":"CREATE","contractAddress":"0x6b24fbc6ac225508aba6899cfe844f5d229deaae","tx":{"type":"0x02","from":"0x2e6d587569a6495fd3e4b109ee3058a401328dc1","gas":"0x13795e","value":"0x0","data":"0x60806040526000805534801561001457600080fd5b506110c2806100246000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c0b931671161005b578063c0b93167146100f4578063d4cf9af714610107578063f2e7162d14610178578063f61044da1461018b57600080fd5b806317e7d99d1461008d578063493d5fe5146100a95780635542bbae146100be578063a2f7b3a5146100d1575b600080fd5b61009660005481565b6040519081526020015b60405180910390f35b6100bc6100b7366004610b61565b61019e565b005b6100bc6100cc366004610c1b565b61027d565b6100e46100df366004610c8d565b610403565b6040516100a09493929190610cf3565b6100bc610102366004610d26565b610545565b610149610115366004610c8d565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b03918216928401929092521660608201526080016100a0565b6100bc610186366004610d76565b610707565b6100bc610199366004610e0f565b610876565b600085815260026020908152604080832033845260048101909252822054909160ff909116151590036101e457604051631eb49d6d60e11b815260040160405180910390fd5b84516101f99060018301906020880190610966565b50835161020f9060038301906020870190610966565b5060028101805460ff191684151517905561022a8683610876565b60028101546040517f684102838bf7c97f957e6c1fe2f1e0316964904f1575bf7de9a493b8fdab1f7d9161026d9189916001860191600387019160ff1690610f2f565b60405180910390a1505050505050565b600085815260026020908152604080832033845260040190915281205460ff16151590036102be57604051631eb49d6d60e11b815260040160405180910390fd5b83516000036102e0576040516345df16e360e11b815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561031357604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161033d57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b03161061036857604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517f70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f926103dc928a92909133918b91908b908b908b90610f6e565b60405180910390a160016000808282546103f69190610fe7565b9091555050505050505050565b6002602052600090815260409020805460018201805491929161042590610e56565b80601f016020809104026020016040519081016040528092919081815260200182805461045190610e56565b801561049e5780601f106104735761010080835404028352916020019161049e565b820191906000526020600020905b81548152906001019060200180831161048157829003601f168201915b5050506002840154600385018054949560ff9092169491935091506104c290610e56565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee90610e56565b801561053b5780601f106105105761010080835404028352916020019161053b565b820191906000526020600020905b81548152906001019060200180831161051e57829003601f168201915b5050505050905084565b600083815260026020908152604080832033845260040190915281205460ff161515900361058657604051631eb49d6d60e11b815260040160405180910390fd5b60005482106105a85760405163bad818f360e01b815260040160405180910390fd5b600082815260016020819052604090912001544211156105db576040516317eeb92b60e31b815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff16156106195760405163251aba6960e11b815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b0390911611156106575760405163254082dd60e11b815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b0316101561069b57604051632707879b60e11b815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e5880916106fa918591908590610fff565b60405180910390a1505050565b600354600090815260026020908152604090912084519091610730916001840191870190610966565b5060028101805460ff19168315159081179091556003546040517f344a4ee11c050981b3cfdbc9ebfb417404a057d40c7f019607da26a367b63e929261078092918891889160ff90911690611032565b60405180910390a160005b85518110156108655760018260040160008884815181106107ae576107ae61105d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f386003548783815181106108235761082361105d565b602002602001015160405161084b9291909182526001600160a01b0316602082015260400190565b60405180910390a18061085d81611073565b91505061078b565b505060038054600101905550505050565b6000828152600260205260408120905b82518110156109605760018260040160008584815181106108a9576108a961105d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f3860035484838151811061091e5761091e61105d565b60200260200101516040516109469291909182526001600160a01b0316602082015260400190565b60405180910390a18061095881611073565b915050610886565b50505050565b82805461097290610e56565b90600052602060002090601f01602090048101928261099457600085556109da565b82601f106109ad57805160ff19168380011785556109da565b828001600101855582156109da579182015b828111156109da5782518255916020019190600101906109bf565b506109e69291506109ea565b5090565b5b808211156109e657600081556001016109eb565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610a3e57610a3e6109ff565b604052919050565b600082601f830112610a5757600080fd5b813567ffffffffffffffff811115610a7157610a716109ff565b610a84601f8201601f1916602001610a15565b818152846020838601011115610a9957600080fd5b816020850160208301376000918101602001919091529392505050565b80358015158114610ac657600080fd5b919050565b600082601f830112610adc57600080fd5b8135602067ffffffffffffffff821115610af857610af86109ff565b8160051b610b07828201610a15565b9283528481018201928281019087851115610b2157600080fd5b83870192505b84831015610b565782356001600160a01b0381168114610b475760008081fd5b82529183019190830190610b27565b979650505050505050565b600080600080600060a08688031215610b7957600080fd5b85359450602086013567ffffffffffffffff80821115610b9857600080fd5b610ba489838a01610a46565b95506040880135915080821115610bba57600080fd5b610bc689838a01610a46565b9450610bd460608901610ab6565b93506080880135915080821115610bea57600080fd5b50610bf788828901610acb565b9150509295509295909350565b80356001600160801b0381168114610ac657600080fd5b600080600080600060a08688031215610c3357600080fd5b85359450602086013567ffffffffffffffff811115610c5157600080fd5b610c5d88828901610a46565b94505060408601359250610c7360608701610c04565b9150610c8160808701610c04565b90509295509295909350565b600060208284031215610c9f57600080fd5b5035919050565b6000815180845260005b81811015610ccc57602081850181015186830182015201610cb0565b81811115610cde576000602083870101525b50601f01601f19169290920160200192915050565b848152608060208201526000610d0c6080830186610ca6565b84151560408401528281036060840152610b568185610ca6565b600080600060608486031215610d3b57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115610d6057600080fd5b610d6c86828701610a46565b9150509250925092565b60008060008060808587031215610d8c57600080fd5b843567ffffffffffffffff80821115610da457600080fd5b610db088838901610acb565b95506020870135915080821115610dc657600080fd5b610dd288838901610a46565b94506040870135915080821115610de857600080fd5b50610df587828801610a46565b925050610e0460608601610ab6565b905092959194509250565b60008060408385031215610e2257600080fd5b82359150602083013567ffffffffffffffff811115610e4057600080fd5b610e4c85828601610acb565b9150509250929050565b600181811c90821680610e6a57607f821691505b602082108103610e8a57634e487b7160e01b600052602260045260246000fd5b50919050565b8054600090600181811c9080831680610eaa57607f831692505b60208084108203610ecb57634e487b7160e01b600052602260045260246000fd5b83885260208801828015610ee65760018114610ef757610f22565b60ff19871682528282019750610f22565b60008981526020902060005b87811015610f1c57815484820152908601908401610f03565b83019850505b5050505050505092915050565b848152608060208201526000610f486080830186610e90565b8281036040840152610f5a8186610e90565b915050821515606083015295945050505050565b888152602081018890526001600160a01b038716604082015261010060608201819052600090610fa083820189610ca6565b6080840197909752505060a08101939093526001600160801b0391821660c08401521660e090910152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610ffa57610ffa610fd1565b500190565b8381526001600160a01b038316602082015260606040820181905260009061102990830184610ca6565b95945050505050565b84815260806020820152600061104b6080830186610ca6565b8281036040840152610f5a8186610ca6565b634e487b7160e01b600052603260045260246000fd5b60006001820161108557611085610fd1565b506001019056fea26469706673582212209ff91a7a28fa069deea61ec420562369a941ece1ddaab34d1dfaca1c6e50320a64736f6c634300080d0033","nonce":"0x2","accessList":[]}},{"hash":"0xeccd5a658b762eb29f8c666ef17172ae5968d92588e9360210fa949bd7456352","type":"CREATE","contractAddress":"0x3c29eb2e8afb2e9c0631d012f10eecc002f6ad2b","tx":{"type":"0x02","from":"0x2e6d587569a6495fd3e4b109ee3058a401328dc1","gas":"0x4de15","value":"0x0","data":"0x608060405234801561001057600080fd5b5060405161038038038061038083398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b610294806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063715018a61461005c5780638da5cb5b14610066578063e2a79abb1461008f578063e44f0e8c146100a2578063f2fde38b146100b5575b600080fd5b6100646100c8565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006461009d36600461022e565b6100dc565b600154610073906001600160a01b031681565b6100646100c336600461022e565b610106565b6100d0610184565b6100da60006101de565b565b6100e4610184565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61010e610184565b6001600160a01b0381166101785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610181816101de565b50565b6000546001600160a01b031633146100da5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561024057600080fd5b81356001600160a01b038116811461025757600080fd5b939250505056fea2646970667358221220de208913a3e5532e3044880e0d33eb434c58408b8d7cd0a670435d74239a560364736f6c634300080d00330000000000000000000000006b24fbc6ac225508aba6899cfe844f5d229deaae","nonce":"0x3","accessList":[]}}],"receipts":[{"transactionHash":"0x9e450829b58dccd084c0f43f345c3c369bb9eba0a67eb75bd0f949344720858d","transactionIndex":"0x45","blockHash":"0x35e13a7c411f3c32b43d384362c98a509a77afe722c4eaeab34c0fdeaee26643","blockNumber":"0x1a36701","from":"0x2e6d587569a6495fd3e4b109ee3058a401328dc1","to":null,"cumulativeGasUsed":"0x121e553","gasUsed":"0xefae6","contractAddress":"0x6b24fbc6ac225508aba6899cfe844f5d229deaae","logs":[{"address":"0x0000000000000000000000000000000000001010","topics":["0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63","0x0000000000000000000000000000000000000000000000000000000000001010","0x0000000000000000000000002e6d587569a6495fd3e4b109ee3058a401328dc1","0x000000000000000000000000c26880a0af2ea0c7e8130e6ec47af756465452e8"],"data":"0x000000000000000000000000000000000000000000000000000a76a5470074000000000000000000000000000000000000000000000000000dd36fe935267aea000000000000000000000000000000000000000000001312d8244f1a27cb0e4d0000000000000000000000000000000000000000000000000dc8f943ee2606ea000000000000000000000000000000000000000000001312d82ec5bf6ecb824d","blockHash":"0x35e13a7c411f3c32b43d384362c98a509a77afe722c4eaeab34c0fdeaee26643","blockNumber":"0x1a36701","transactionHash":"0x9e450829b58dccd084c0f43f345c3c369bb9eba0a67eb75bd0f949344720858d","transactionIndex":"0x45","logIndex":"0xb8","removed":false}],"status":"0x1","logsBloom":"0x00000000000000020000000000000000000000000000000000000000000000000000000000040000000000000000000000008000000000000000000000000000000000000000000000000000000000800000000000000000000100000000000000000000000080000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000200000040000000020000000000000000001000000000000000000000000004000000000000000000001000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000100000","type":"0x2","effectiveGasPrice":"0xb2d05e0c"},{"transactionHash":"0xeccd5a658b762eb29f8c666ef17172ae5968d92588e9360210fa949bd7456352","transactionIndex":"0x46","blockHash":"0x35e13a7c411f3c32b43d384362c98a509a77afe722c4eaeab34c0fdeaee26643","blockNumber":"0x1a36701","from":"0x2e6d587569a6495fd3e4b109ee3058a401328dc1","to":null,"cumulativeGasUsed":"0x125a3da","gasUsed":"0x3be87","contractAddress":"0x3c29eb2e8afb2e9c0631d012f10eecc002f6ad2b","logs":[{"address":"0x3c29eb2e8afb2e9c0631d012f10eecc002f6ad2b","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000002e6d587569a6495fd3e4b109ee3058a401328dc1"],"data":"0x","blockHash":"0x35e13a7c411f3c32b43d384362c98a509a77afe722c4eaeab34c0fdeaee26643","blockNumber":"0x1a36701","transactionHash":"0xeccd5a658b762eb29f8c666ef17172ae5968d92588e9360210fa949bd7456352","transactionIndex":"0x46","logIndex":"0xb9","removed":false},{"address":"0x0000000000000000000000000000000000001010","topics":["0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63","0x0000000000000000000000000000000000000000000000000000000000001010","0x0000000000000000000000002e6d587569a6495fd3e4b109ee3058a401328dc1","0x000000000000000000000000c26880a0af2ea0c7e8130e6ec47af756465452e8"],"data":"0x00000000000000000000000000000000000000000000000000029d860ba592000000000000000000000000000000000000000000000000000dc8f943ed724422000000000000000000000000000000000000000000001312d82ec5bf6ecb824d0000000000000000000000000000000000000000000000000dc65bbde1ccb222000000000000000000000000000000000000000000001312d83163457a71144d","blockHash":"0x35e13a7c411f3c32b43d384362c98a509a77afe722c4eaeab34c0fdeaee26643","blockNumber":"0x1a36701","transactionHash":"0xeccd5a658b762eb29f8c666ef17172ae5968d92588e9360210fa949bd7456352","transactionIndex":"0x46","logIndex":"0xba","removed":false}],"status":"0x1","logsBloom":"0x00000000000000020000000000000000000000000000000000800000000000000000000000040000000000000000000000008000000000000000000000000000000000000000000000000000000000800201000000000000000100000000000000000000020080000000000000000800000000000000000080000400000000400000000000000000000000000000000000000000000000000000000000000000200000040000080020000000000000000001000000000000000000000000004000000000000000000001000000000000000000000000000000100000000020000000000000000000000000000000000000000000000000000000000000100000","type":"0x2","effectiveGasPrice":"0xb2d05e0c"}],"libraries":[],"pending":[],"path":"broadcast/DeployPrompty.s.sol/80001/run-latest.json","returns":{},"timestamp":1659720908} \ No newline at end of file diff --git a/packages/contracts-forge/cache/solidity-files-cache.json b/packages/contracts-forge/cache/solidity-files-cache.json index 6a4473a..036a384 100644 --- a/packages/contracts-forge/cache/solidity-files-cache.json +++ b/packages/contracts-forge/cache/solidity-files-cache.json @@ -4,13 +4,14 @@ "artifacts": "out", "sources": "src", "tests": "test", + "scripts": "script", "libraries": [ "lib" ] }, "files": { "lib/openzeppelin-contracts/contracts/access/Ownable.sol": { - "lastModificationDate": 1658856476071, + "lastModificationDate": 1659718140208, "contentHash": "e436cea06129be2c73cda4b1acc848b5", "sourceName": "lib/openzeppelin-contracts/contracts/access/Ownable.sol", "solcConfig": { @@ -50,7 +51,7 @@ } }, "lib/openzeppelin-contracts/contracts/utils/Context.sol": { - "lastModificationDate": 1658856476090, + "lastModificationDate": 1659718140228, "contentHash": "5f2c5c4b6af2dd4551027144797bc8be", "sourceName": "lib/openzeppelin-contracts/contracts/utils/Context.sol", "solcConfig": { @@ -88,7 +89,7 @@ } }, "lib/solenv/lib/forge-std/src/Script.sol": { - "lastModificationDate": 1658857881961, + "lastModificationDate": 1659718141006, "contentHash": "a24c6682dfdd459618422202d7b97fec", "sourceName": "lib/solenv/lib/forge-std/src/Script.sol", "solcConfig": { @@ -130,7 +131,7 @@ } }, "lib/solenv/lib/forge-std/src/Vm.sol": { - "lastModificationDate": 1658857881961, + "lastModificationDate": 1659718141006, "contentHash": "498032edf2491104b61524a4665b0613", "sourceName": "lib/solenv/lib/forge-std/src/Vm.sol", "solcConfig": { @@ -168,7 +169,7 @@ } }, "lib/solenv/lib/forge-std/src/console.sol": { - "lastModificationDate": 1658857881961, + "lastModificationDate": 1659718141006, "contentHash": "100b8a33b917da1147740d7ab8b0ded3", "sourceName": "lib/solenv/lib/forge-std/src/console.sol", "solcConfig": { @@ -206,7 +207,7 @@ } }, "lib/solenv/lib/forge-std/src/console2.sol": { - "lastModificationDate": 1658857881962, + "lastModificationDate": 1659718141007, "contentHash": "5df91f8e93efbfcccf68973dc1b74a70", "sourceName": "lib/solenv/lib/forge-std/src/console2.sol", "solcConfig": { @@ -244,7 +245,7 @@ } }, "lib/solenv/lib/solidity-stringutils/src/strings.sol": { - "lastModificationDate": 1658857884037, + "lastModificationDate": 1659718142657, "contentHash": "a35219f3ed241165477dabdfe496165a", "sourceName": "lib/solenv/lib/solidity-stringutils/src/strings.sol", "solcConfig": { @@ -282,7 +283,7 @@ } }, "lib/solenv/src/Solenv.sol": { - "lastModificationDate": 1658857881962, + "lastModificationDate": 1659718141007, "contentHash": "b7fca419b674d2ce3ee6745ffb963e95", "sourceName": "lib/solenv/src/Solenv.sol", "solcConfig": { @@ -323,8 +324,8 @@ } }, "src/IPrompty.sol": { - "lastModificationDate": 1658857016581, - "contentHash": "57c0b33e3cdf03af717d459a151d1509", + "lastModificationDate": 1659720095546, + "contentHash": "bf6d9a91ad84c51d6f23246689383cd2", "sourceName": "src/IPrompty.sol", "solcConfig": { "settings": { @@ -361,8 +362,8 @@ } }, "src/Prompty.sol": { - "lastModificationDate": 1658857487219, - "contentHash": "967dc5ebd2ffcb9f7f60ecc7fc71ba9a", + "lastModificationDate": 1659720096730, + "contentHash": "858e9615d7b9765bfe9602e951e6fedb", "sourceName": "src/Prompty.sol", "solcConfig": { "settings": { @@ -401,7 +402,7 @@ } }, "src/PromptyManager.sol": { - "lastModificationDate": 1658856479511, + "lastModificationDate": 1659372553203, "contentHash": "34a486b9afc4817324ed9e2075ab9300", "sourceName": "src/PromptyManager.sol", "solcConfig": { @@ -443,7 +444,7 @@ } }, "src/scripts/DeployPrompty.s.sol": { - "lastModificationDate": 1658858191308, + "lastModificationDate": 1659372553203, "contentHash": "efc7e29183503cc060e24ab907237c07", "sourceName": "src/scripts/DeployPrompty.s.sol", "solcConfig": { diff --git a/packages/contracts-forge/lib/ds-test b/packages/contracts-forge/lib/ds-test index 2c7dbcc..9310e87 160000 --- a/packages/contracts-forge/lib/ds-test +++ b/packages/contracts-forge/lib/ds-test @@ -1 +1 @@ -Subproject commit 2c7dbcc8586b33f358e3307a443e524490c17666 +Subproject commit 9310e879db8ba3ea6d5c6489a579118fd264a3f5 diff --git a/packages/contracts-forge/lib/openzeppelin-contracts b/packages/contracts-forge/lib/openzeppelin-contracts index 0d91b62..ec825d8 160000 --- a/packages/contracts-forge/lib/openzeppelin-contracts +++ b/packages/contracts-forge/lib/openzeppelin-contracts @@ -1 +1 @@ -Subproject commit 0d91b620b7e63f07477d9191499e081f879a4929 +Subproject commit ec825d8999538f110e572605dc56ef7bf44cc574 diff --git a/packages/contracts-forge/lib/solenv b/packages/contracts-forge/lib/solenv index d0d098f..a0a6a10 160000 --- a/packages/contracts-forge/lib/solenv +++ b/packages/contracts-forge/lib/solenv @@ -1 +1 @@ -Subproject commit d0d098f405a8689c5366a6c980499238292e11f5 +Subproject commit a0a6a1043cbabe355f3a368639a794d9552d91c7 diff --git a/packages/contracts-forge/out/Cheats.sol/Cheats.json b/packages/contracts-forge/out/Cheats.sol/Cheats.json index 176556b..41da618 100644 --- a/packages/contracts-forge/out/Cheats.sol/Cheats.json +++ b/packages/contracts-forge/out/Cheats.sol/Cheats.json @@ -534,17 +534,17 @@ }, "ast": { "absolutePath": "test/Cheats.sol", - "id": 21251, + "id": 21399, "exportedSymbols": { "Cheats": [ - 21250 + 21398 ] }, "nodeType": "SourceUnit", "src": "38:3961:13", "nodes": [ { - "id": 21057, + "id": 21205, "nodeType": "PragmaDirective", "src": "38:24:13", "literals": [ @@ -555,12 +555,12 @@ ] }, { - "id": 21250, + "id": 21398, "nodeType": "ContractDefinition", "src": "64:3934:13", "nodes": [ { - "id": 21062, + "id": 21210, "nodeType": "FunctionDefinition", "src": "129:32:13", "functionSelector": "e5d6bf02", @@ -570,17 +570,17 @@ "name": "warp", "nameLocation": "138:4:13", "parameters": { - "id": 21060, + "id": 21208, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21059, + "id": 21207, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21062, + "scope": 21210, "src": "143:7:13", "stateVariable": false, "storageLocation": "default", @@ -589,7 +589,7 @@ "typeString": "uint256" }, "typeName": { - "id": 21058, + "id": 21206, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "143:7:13", @@ -604,18 +604,18 @@ "src": "142:9:13" }, "returnParameters": { - "id": 21061, + "id": 21209, "nodeType": "ParameterList", "parameters": [], "src": "160:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21067, + "id": 21215, "nodeType": "FunctionDefinition", "src": "203:32:13", "functionSelector": "1f7b4f30", @@ -625,17 +625,17 @@ "name": "roll", "nameLocation": "212:4:13", "parameters": { - "id": 21065, + "id": 21213, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21064, + "id": 21212, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21067, + "scope": 21215, "src": "217:7:13", "stateVariable": false, "storageLocation": "default", @@ -644,7 +644,7 @@ "typeString": "uint256" }, "typeName": { - "id": 21063, + "id": 21211, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "217:7:13", @@ -659,18 +659,18 @@ "src": "216:9:13" }, "returnParameters": { - "id": 21066, + "id": 21214, "nodeType": "ParameterList", "parameters": [], "src": "234:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21072, + "id": 21220, "nodeType": "FunctionDefinition", "src": "279:31:13", "functionSelector": "39b37ab0", @@ -680,17 +680,17 @@ "name": "fee", "nameLocation": "288:3:13", "parameters": { - "id": 21070, + "id": 21218, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21069, + "id": 21217, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21072, + "scope": 21220, "src": "292:7:13", "stateVariable": false, "storageLocation": "default", @@ -699,7 +699,7 @@ "typeString": "uint256" }, "typeName": { - "id": 21068, + "id": 21216, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "292:7:13", @@ -714,18 +714,18 @@ "src": "291:9:13" }, "returnParameters": { - "id": 21071, + "id": 21219, "nodeType": "ParameterList", "parameters": [], "src": "309:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21081, + "id": 21229, "nodeType": "FunctionDefinition", "src": "372:59:13", "functionSelector": "667f9d70", @@ -735,17 +735,17 @@ "name": "load", "nameLocation": "381:4:13", "parameters": { - "id": 21077, + "id": 21225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21074, + "id": 21222, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21081, + "scope": 21229, "src": "386:7:13", "stateVariable": false, "storageLocation": "default", @@ -754,7 +754,7 @@ "typeString": "address" }, "typeName": { - "id": 21073, + "id": 21221, "name": "address", "nodeType": "ElementaryTypeName", "src": "386:7:13", @@ -768,12 +768,12 @@ }, { "constant": false, - "id": 21076, + "id": 21224, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21081, + "scope": 21229, "src": "395:7:13", "stateVariable": false, "storageLocation": "default", @@ -782,7 +782,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 21075, + "id": 21223, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "395:7:13", @@ -797,17 +797,17 @@ "src": "385:18:13" }, "returnParameters": { - "id": 21080, + "id": 21228, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21079, + "id": 21227, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21081, + "scope": 21229, "src": "422:7:13", "stateVariable": false, "storageLocation": "default", @@ -816,7 +816,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 21078, + "id": 21226, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "422:7:13", @@ -830,13 +830,13 @@ ], "src": "421:9:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21090, + "id": 21238, "nodeType": "FunctionDefinition", "src": "507:81:13", "functionSelector": "70ca10bb", @@ -846,17 +846,17 @@ "name": "store", "nameLocation": "516:5:13", "parameters": { - "id": 21088, + "id": 21236, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21083, + "id": 21231, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21090, + "scope": 21238, "src": "531:7:13", "stateVariable": false, "storageLocation": "default", @@ -865,7 +865,7 @@ "typeString": "address" }, "typeName": { - "id": 21082, + "id": 21230, "name": "address", "nodeType": "ElementaryTypeName", "src": "531:7:13", @@ -879,12 +879,12 @@ }, { "constant": false, - "id": 21085, + "id": 21233, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21090, + "scope": 21238, "src": "548:7:13", "stateVariable": false, "storageLocation": "default", @@ -893,7 +893,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 21084, + "id": 21232, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "548:7:13", @@ -906,12 +906,12 @@ }, { "constant": false, - "id": 21087, + "id": 21235, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21090, + "scope": 21238, "src": "565:7:13", "stateVariable": false, "storageLocation": "default", @@ -920,7 +920,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 21086, + "id": 21234, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "565:7:13", @@ -935,18 +935,18 @@ "src": "521:57:13" }, "returnParameters": { - "id": 21089, + "id": 21237, "nodeType": "ParameterList", "parameters": [], "src": "587:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21103, + "id": 21251, "nodeType": "FunctionDefinition", "src": "647:137:13", "functionSelector": "e341eaa4", @@ -956,17 +956,17 @@ "name": "sign", "nameLocation": "656:4:13", "parameters": { - "id": 21095, + "id": 21243, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21092, + "id": 21240, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21103, + "scope": 21251, "src": "661:7:13", "stateVariable": false, "storageLocation": "default", @@ -975,7 +975,7 @@ "typeString": "uint256" }, "typeName": { - "id": 21091, + "id": 21239, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "661:7:13", @@ -988,12 +988,12 @@ }, { "constant": false, - "id": 21094, + "id": 21242, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21103, + "scope": 21251, "src": "670:7:13", "stateVariable": false, "storageLocation": "default", @@ -1002,7 +1002,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 21093, + "id": 21241, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "670:7:13", @@ -1017,17 +1017,17 @@ "src": "660:18:13" }, "returnParameters": { - "id": 21102, + "id": 21250, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21097, + "id": 21245, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21103, + "scope": 21251, "src": "726:5:13", "stateVariable": false, "storageLocation": "default", @@ -1036,7 +1036,7 @@ "typeString": "uint8" }, "typeName": { - "id": 21096, + "id": 21244, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "726:5:13", @@ -1049,12 +1049,12 @@ }, { "constant": false, - "id": 21099, + "id": 21247, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21103, + "scope": 21251, "src": "745:7:13", "stateVariable": false, "storageLocation": "default", @@ -1063,7 +1063,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 21098, + "id": 21246, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "745:7:13", @@ -1076,12 +1076,12 @@ }, { "constant": false, - "id": 21101, + "id": 21249, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21103, + "scope": 21251, "src": "766:7:13", "stateVariable": false, "storageLocation": "default", @@ -1090,7 +1090,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 21100, + "id": 21248, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "766:7:13", @@ -1104,13 +1104,13 @@ ], "src": "712:71:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21110, + "id": 21258, "nodeType": "FunctionDefinition", "src": "861:50:13", "functionSelector": "ffa18649", @@ -1120,17 +1120,17 @@ "name": "addr", "nameLocation": "870:4:13", "parameters": { - "id": 21106, + "id": 21254, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21105, + "id": 21253, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21110, + "scope": 21258, "src": "875:7:13", "stateVariable": false, "storageLocation": "default", @@ -1139,7 +1139,7 @@ "typeString": "uint256" }, "typeName": { - "id": 21104, + "id": 21252, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "875:7:13", @@ -1154,17 +1154,17 @@ "src": "874:9:13" }, "returnParameters": { - "id": 21109, + "id": 21257, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21108, + "id": 21256, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21110, + "scope": 21258, "src": "902:7:13", "stateVariable": false, "storageLocation": "default", @@ -1173,7 +1173,7 @@ "typeString": "address" }, "typeName": { - "id": 21107, + "id": 21255, "name": "address", "nodeType": "ElementaryTypeName", "src": "902:7:13", @@ -1188,13 +1188,13 @@ ], "src": "901:9:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21118, + "id": 21266, "nodeType": "FunctionDefinition", "src": "998:64:13", "functionSelector": "89160467", @@ -1204,17 +1204,17 @@ "name": "ffi", "nameLocation": "1007:3:13", "parameters": { - "id": 21114, + "id": 21262, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21113, + "id": 21261, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21118, + "scope": 21266, "src": "1011:17:13", "stateVariable": false, "storageLocation": "calldata", @@ -1224,7 +1224,7 @@ }, "typeName": { "baseType": { - "id": 21111, + "id": 21259, "name": "string", "nodeType": "ElementaryTypeName", "src": "1011:6:13", @@ -1233,7 +1233,7 @@ "typeString": "string" } }, - "id": 21112, + "id": 21260, "nodeType": "ArrayTypeName", "src": "1011:8:13", "typeDescriptions": { @@ -1247,17 +1247,17 @@ "src": "1010:19:13" }, "returnParameters": { - "id": 21117, + "id": 21265, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21116, + "id": 21264, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21118, + "scope": 21266, "src": "1048:12:13", "stateVariable": false, "storageLocation": "memory", @@ -1266,7 +1266,7 @@ "typeString": "bytes" }, "typeName": { - "id": 21115, + "id": 21263, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1048:5:13", @@ -1280,13 +1280,13 @@ ], "src": "1047:14:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21123, + "id": 21271, "nodeType": "FunctionDefinition", "src": "1133:33:13", "functionSelector": "ca669fa7", @@ -1296,17 +1296,17 @@ "name": "prank", "nameLocation": "1142:5:13", "parameters": { - "id": 21121, + "id": 21269, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21120, + "id": 21268, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21123, + "scope": 21271, "src": "1148:7:13", "stateVariable": false, "storageLocation": "default", @@ -1315,7 +1315,7 @@ "typeString": "address" }, "typeName": { - "id": 21119, + "id": 21267, "name": "address", "nodeType": "ElementaryTypeName", "src": "1148:7:13", @@ -1331,18 +1331,18 @@ "src": "1147:9:13" }, "returnParameters": { - "id": 21122, + "id": 21270, "nodeType": "ParameterList", "parameters": [], "src": "1165:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21128, + "id": 21276, "nodeType": "FunctionDefinition", "src": "1269:38:13", "functionSelector": "06447d56", @@ -1352,17 +1352,17 @@ "name": "startPrank", "nameLocation": "1278:10:13", "parameters": { - "id": 21126, + "id": 21274, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21125, + "id": 21273, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21128, + "scope": 21276, "src": "1289:7:13", "stateVariable": false, "storageLocation": "default", @@ -1371,7 +1371,7 @@ "typeString": "address" }, "typeName": { - "id": 21124, + "id": 21272, "name": "address", "nodeType": "ElementaryTypeName", "src": "1289:7:13", @@ -1387,18 +1387,18 @@ "src": "1288:9:13" }, "returnParameters": { - "id": 21127, + "id": 21275, "nodeType": "ParameterList", "parameters": [], "src": "1306:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21135, + "id": 21283, "nodeType": "FunctionDefinition", "src": "1420:42:13", "functionSelector": "47e50cce", @@ -1408,17 +1408,17 @@ "name": "prank", "nameLocation": "1429:5:13", "parameters": { - "id": 21133, + "id": 21281, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21130, + "id": 21278, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21135, + "scope": 21283, "src": "1435:7:13", "stateVariable": false, "storageLocation": "default", @@ -1427,7 +1427,7 @@ "typeString": "address" }, "typeName": { - "id": 21129, + "id": 21277, "name": "address", "nodeType": "ElementaryTypeName", "src": "1435:7:13", @@ -1441,12 +1441,12 @@ }, { "constant": false, - "id": 21132, + "id": 21280, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21135, + "scope": 21283, "src": "1444:7:13", "stateVariable": false, "storageLocation": "default", @@ -1455,7 +1455,7 @@ "typeString": "address" }, "typeName": { - "id": 21131, + "id": 21279, "name": "address", "nodeType": "ElementaryTypeName", "src": "1444:7:13", @@ -1471,18 +1471,18 @@ "src": "1434:18:13" }, "returnParameters": { - "id": 21134, + "id": 21282, "nodeType": "ParameterList", "parameters": [], "src": "1461:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21142, + "id": 21290, "nodeType": "FunctionDefinition", "src": "1607:47:13", "functionSelector": "45b56078", @@ -1492,17 +1492,17 @@ "name": "startPrank", "nameLocation": "1616:10:13", "parameters": { - "id": 21140, + "id": 21288, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21137, + "id": 21285, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21142, + "scope": 21290, "src": "1627:7:13", "stateVariable": false, "storageLocation": "default", @@ -1511,7 +1511,7 @@ "typeString": "address" }, "typeName": { - "id": 21136, + "id": 21284, "name": "address", "nodeType": "ElementaryTypeName", "src": "1627:7:13", @@ -1525,12 +1525,12 @@ }, { "constant": false, - "id": 21139, + "id": 21287, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21142, + "scope": 21290, "src": "1636:7:13", "stateVariable": false, "storageLocation": "default", @@ -1539,7 +1539,7 @@ "typeString": "address" }, "typeName": { - "id": 21138, + "id": 21286, "name": "address", "nodeType": "ElementaryTypeName", "src": "1636:7:13", @@ -1555,18 +1555,18 @@ "src": "1626:18:13" }, "returnParameters": { - "id": 21141, + "id": 21289, "nodeType": "ParameterList", "parameters": [], "src": "1653:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21145, + "id": 21293, "nodeType": "FunctionDefinition", "src": "1725:30:13", "functionSelector": "90c5013b", @@ -1576,24 +1576,24 @@ "name": "stopPrank", "nameLocation": "1734:9:13", "parameters": { - "id": 21143, + "id": 21291, "nodeType": "ParameterList", "parameters": [], "src": "1743:2:13" }, "returnParameters": { - "id": 21144, + "id": 21292, "nodeType": "ParameterList", "parameters": [], "src": "1754:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21152, + "id": 21300, "nodeType": "FunctionDefinition", "src": "1812:41:13", "functionSelector": "c88a5e6d", @@ -1603,17 +1603,17 @@ "name": "deal", "nameLocation": "1821:4:13", "parameters": { - "id": 21150, + "id": 21298, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21147, + "id": 21295, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21152, + "scope": 21300, "src": "1826:7:13", "stateVariable": false, "storageLocation": "default", @@ -1622,7 +1622,7 @@ "typeString": "address" }, "typeName": { - "id": 21146, + "id": 21294, "name": "address", "nodeType": "ElementaryTypeName", "src": "1826:7:13", @@ -1636,12 +1636,12 @@ }, { "constant": false, - "id": 21149, + "id": 21297, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21152, + "scope": 21300, "src": "1835:7:13", "stateVariable": false, "storageLocation": "default", @@ -1650,7 +1650,7 @@ "typeString": "uint256" }, "typeName": { - "id": 21148, + "id": 21296, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1835:7:13", @@ -1665,18 +1665,18 @@ "src": "1825:18:13" }, "returnParameters": { - "id": 21151, + "id": 21299, "nodeType": "ParameterList", "parameters": [], "src": "1852:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21159, + "id": 21307, "nodeType": "FunctionDefinition", "src": "1904:48:13", "functionSelector": "b4d6c782", @@ -1686,17 +1686,17 @@ "name": "etch", "nameLocation": "1913:4:13", "parameters": { - "id": 21157, + "id": 21305, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21154, + "id": 21302, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21159, + "scope": 21307, "src": "1918:7:13", "stateVariable": false, "storageLocation": "default", @@ -1705,7 +1705,7 @@ "typeString": "address" }, "typeName": { - "id": 21153, + "id": 21301, "name": "address", "nodeType": "ElementaryTypeName", "src": "1918:7:13", @@ -1719,12 +1719,12 @@ }, { "constant": false, - "id": 21156, + "id": 21304, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21159, + "scope": 21307, "src": "1927:14:13", "stateVariable": false, "storageLocation": "calldata", @@ -1733,7 +1733,7 @@ "typeString": "bytes" }, "typeName": { - "id": 21155, + "id": 21303, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1927:5:13", @@ -1748,18 +1748,18 @@ "src": "1917:25:13" }, "returnParameters": { - "id": 21158, + "id": 21306, "nodeType": "ParameterList", "parameters": [], "src": "1951:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21162, + "id": 21310, "nodeType": "FunctionDefinition", "src": "1995:33:13", "functionSelector": "f4844814", @@ -1769,24 +1769,24 @@ "name": "expectRevert", "nameLocation": "2004:12:13", "parameters": { - "id": 21160, + "id": 21308, "nodeType": "ParameterList", "parameters": [], "src": "2016:2:13" }, "returnParameters": { - "id": 21161, + "id": 21309, "nodeType": "ParameterList", "parameters": [], "src": "2027:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21167, + "id": 21315, "nodeType": "FunctionDefinition", "src": "2034:47:13", "functionSelector": "f28dceb3", @@ -1796,17 +1796,17 @@ "name": "expectRevert", "nameLocation": "2043:12:13", "parameters": { - "id": 21165, + "id": 21313, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21164, + "id": 21312, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21167, + "scope": 21315, "src": "2056:14:13", "stateVariable": false, "storageLocation": "calldata", @@ -1815,7 +1815,7 @@ "typeString": "bytes" }, "typeName": { - "id": 21163, + "id": 21311, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2056:5:13", @@ -1830,18 +1830,18 @@ "src": "2055:16:13" }, "returnParameters": { - "id": 21166, + "id": 21314, "nodeType": "ParameterList", "parameters": [], "src": "2080:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21172, + "id": 21320, "nodeType": "FunctionDefinition", "src": "2087:39:13", "functionSelector": "c31eb0e0", @@ -1851,17 +1851,17 @@ "name": "expectRevert", "nameLocation": "2096:12:13", "parameters": { - "id": 21170, + "id": 21318, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21169, + "id": 21317, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21172, + "scope": 21320, "src": "2109:6:13", "stateVariable": false, "storageLocation": "default", @@ -1870,7 +1870,7 @@ "typeString": "bytes4" }, "typeName": { - "id": 21168, + "id": 21316, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "2109:6:13", @@ -1885,18 +1885,18 @@ "src": "2108:8:13" }, "returnParameters": { - "id": 21171, + "id": 21319, "nodeType": "ParameterList", "parameters": [], "src": "2125:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21175, + "id": 21323, "nodeType": "FunctionDefinition", "src": "2175:27:13", "functionSelector": "266cf109", @@ -1906,24 +1906,24 @@ "name": "record", "nameLocation": "2184:6:13", "parameters": { - "id": 21173, + "id": 21321, "nodeType": "ParameterList", "parameters": [], "src": "2190:2:13" }, "returnParameters": { - "id": 21174, + "id": 21322, "nodeType": "ParameterList", "parameters": [], "src": "2201:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21186, + "id": 21334, "nodeType": "FunctionDefinition", "src": "2300:110:13", "functionSelector": "65bc9481", @@ -1933,17 +1933,17 @@ "name": "accesses", "nameLocation": "2309:8:13", "parameters": { - "id": 21178, + "id": 21326, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21177, + "id": 21325, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21186, + "scope": 21334, "src": "2318:7:13", "stateVariable": false, "storageLocation": "default", @@ -1952,7 +1952,7 @@ "typeString": "address" }, "typeName": { - "id": 21176, + "id": 21324, "name": "address", "nodeType": "ElementaryTypeName", "src": "2318:7:13", @@ -1968,17 +1968,17 @@ "src": "2317:9:13" }, "returnParameters": { - "id": 21185, + "id": 21333, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21181, + "id": 21329, "mutability": "mutable", "name": "reads", "nameLocation": "2378:5:13", "nodeType": "VariableDeclaration", - "scope": 21186, + "scope": 21334, "src": "2361:22:13", "stateVariable": false, "storageLocation": "memory", @@ -1988,7 +1988,7 @@ }, "typeName": { "baseType": { - "id": 21179, + "id": 21327, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2361:7:13", @@ -1997,7 +1997,7 @@ "typeString": "bytes32" } }, - "id": 21180, + "id": 21328, "nodeType": "ArrayTypeName", "src": "2361:9:13", "typeDescriptions": { @@ -2009,12 +2009,12 @@ }, { "constant": false, - "id": 21184, + "id": 21332, "mutability": "mutable", "name": "writes", "nameLocation": "2402:6:13", "nodeType": "VariableDeclaration", - "scope": 21186, + "scope": 21334, "src": "2385:23:13", "stateVariable": false, "storageLocation": "memory", @@ -2024,7 +2024,7 @@ }, "typeName": { "baseType": { - "id": 21182, + "id": 21330, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2385:7:13", @@ -2033,7 +2033,7 @@ "typeString": "bytes32" } }, - "id": 21183, + "id": 21331, "nodeType": "ArrayTypeName", "src": "2385:9:13", "typeDescriptions": { @@ -2046,13 +2046,13 @@ ], "src": "2360:49:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21197, + "id": 21345, "nodeType": "FunctionDefinition", "src": "2744:91:13", "functionSelector": "491cc7c2", @@ -2062,17 +2062,17 @@ "name": "expectEmit", "nameLocation": "2753:10:13", "parameters": { - "id": 21195, + "id": 21343, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21188, + "id": 21336, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21197, + "scope": 21345, "src": "2773:4:13", "stateVariable": false, "storageLocation": "default", @@ -2081,7 +2081,7 @@ "typeString": "bool" }, "typeName": { - "id": 21187, + "id": 21335, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2773:4:13", @@ -2094,12 +2094,12 @@ }, { "constant": false, - "id": 21190, + "id": 21338, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21197, + "scope": 21345, "src": "2787:4:13", "stateVariable": false, "storageLocation": "default", @@ -2108,7 +2108,7 @@ "typeString": "bool" }, "typeName": { - "id": 21189, + "id": 21337, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2787:4:13", @@ -2121,12 +2121,12 @@ }, { "constant": false, - "id": 21192, + "id": 21340, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21197, + "scope": 21345, "src": "2801:4:13", "stateVariable": false, "storageLocation": "default", @@ -2135,7 +2135,7 @@ "typeString": "bool" }, "typeName": { - "id": 21191, + "id": 21339, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2801:4:13", @@ -2148,12 +2148,12 @@ }, { "constant": false, - "id": 21194, + "id": 21342, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21197, + "scope": 21345, "src": "2815:4:13", "stateVariable": false, "storageLocation": "default", @@ -2162,7 +2162,7 @@ "typeString": "bool" }, "typeName": { - "id": 21193, + "id": 21341, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2815:4:13", @@ -2177,18 +2177,18 @@ "src": "2763:62:13" }, "returnParameters": { - "id": 21196, + "id": 21344, "nodeType": "ParameterList", "parameters": [], "src": "2834:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21206, + "id": 21354, "nodeType": "FunctionDefinition", "src": "3091:98:13", "functionSelector": "b96213e4", @@ -2198,17 +2198,17 @@ "name": "mockCall", "nameLocation": "3100:8:13", "parameters": { - "id": 21204, + "id": 21352, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21199, + "id": 21347, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21206, + "scope": 21354, "src": "3118:7:13", "stateVariable": false, "storageLocation": "default", @@ -2217,7 +2217,7 @@ "typeString": "address" }, "typeName": { - "id": 21198, + "id": 21346, "name": "address", "nodeType": "ElementaryTypeName", "src": "3118:7:13", @@ -2231,12 +2231,12 @@ }, { "constant": false, - "id": 21201, + "id": 21349, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21206, + "scope": 21354, "src": "3135:14:13", "stateVariable": false, "storageLocation": "calldata", @@ -2245,7 +2245,7 @@ "typeString": "bytes" }, "typeName": { - "id": 21200, + "id": 21348, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3135:5:13", @@ -2258,12 +2258,12 @@ }, { "constant": false, - "id": 21203, + "id": 21351, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21206, + "scope": 21354, "src": "3159:14:13", "stateVariable": false, "storageLocation": "calldata", @@ -2272,7 +2272,7 @@ "typeString": "bytes" }, "typeName": { - "id": 21202, + "id": 21350, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3159:5:13", @@ -2287,18 +2287,18 @@ "src": "3108:71:13" }, "returnParameters": { - "id": 21205, + "id": 21353, "nodeType": "ParameterList", "parameters": [], "src": "3188:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21209, + "id": 21357, "nodeType": "FunctionDefinition", "src": "3226:37:13", "functionSelector": "3fdf4e15", @@ -2308,24 +2308,24 @@ "name": "clearMockedCalls", "nameLocation": "3235:16:13", "parameters": { - "id": 21207, + "id": 21355, "nodeType": "ParameterList", "parameters": [], "src": "3251:2:13" }, "returnParameters": { - "id": 21208, + "id": 21356, "nodeType": "ParameterList", "parameters": [], "src": "3262:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21216, + "id": 21364, "nodeType": "FunctionDefinition", "src": "3389:54:13", "functionSelector": "bd6af434", @@ -2335,17 +2335,17 @@ "name": "expectCall", "nameLocation": "3398:10:13", "parameters": { - "id": 21214, + "id": 21362, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21211, + "id": 21359, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21216, + "scope": 21364, "src": "3409:7:13", "stateVariable": false, "storageLocation": "default", @@ -2354,7 +2354,7 @@ "typeString": "address" }, "typeName": { - "id": 21210, + "id": 21358, "name": "address", "nodeType": "ElementaryTypeName", "src": "3409:7:13", @@ -2368,12 +2368,12 @@ }, { "constant": false, - "id": 21213, + "id": 21361, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21216, + "scope": 21364, "src": "3418:14:13", "stateVariable": false, "storageLocation": "calldata", @@ -2382,7 +2382,7 @@ "typeString": "bytes" }, "typeName": { - "id": 21212, + "id": 21360, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3418:5:13", @@ -2397,18 +2397,18 @@ "src": "3408:25:13" }, "returnParameters": { - "id": 21215, + "id": 21363, "nodeType": "ParameterList", "parameters": [], "src": "3442:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21223, + "id": 21371, "nodeType": "FunctionDefinition", "src": "3537:66:13", "functionSelector": "8d1cc925", @@ -2418,17 +2418,17 @@ "name": "getCode", "nameLocation": "3546:7:13", "parameters": { - "id": 21219, + "id": 21367, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21218, + "id": 21366, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21223, + "scope": 21371, "src": "3554:15:13", "stateVariable": false, "storageLocation": "calldata", @@ -2437,7 +2437,7 @@ "typeString": "string" }, "typeName": { - "id": 21217, + "id": 21365, "name": "string", "nodeType": "ElementaryTypeName", "src": "3554:6:13", @@ -2452,17 +2452,17 @@ "src": "3553:17:13" }, "returnParameters": { - "id": 21222, + "id": 21370, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21221, + "id": 21369, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21223, + "scope": 21371, "src": "3589:12:13", "stateVariable": false, "storageLocation": "memory", @@ -2471,7 +2471,7 @@ "typeString": "bytes" }, "typeName": { - "id": 21220, + "id": 21368, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3589:5:13", @@ -2485,13 +2485,13 @@ ], "src": "3588:14:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21230, + "id": 21378, "nodeType": "FunctionDefinition", "src": "3649:50:13", "functionSelector": "c657c718", @@ -2501,17 +2501,17 @@ "name": "label", "nameLocation": "3658:5:13", "parameters": { - "id": 21228, + "id": 21376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21225, + "id": 21373, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21230, + "scope": 21378, "src": "3664:7:13", "stateVariable": false, "storageLocation": "default", @@ -2520,7 +2520,7 @@ "typeString": "address" }, "typeName": { - "id": 21224, + "id": 21372, "name": "address", "nodeType": "ElementaryTypeName", "src": "3664:7:13", @@ -2534,12 +2534,12 @@ }, { "constant": false, - "id": 21227, + "id": 21375, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21230, + "scope": 21378, "src": "3673:15:13", "stateVariable": false, "storageLocation": "calldata", @@ -2548,7 +2548,7 @@ "typeString": "string" }, "typeName": { - "id": 21226, + "id": 21374, "name": "string", "nodeType": "ElementaryTypeName", "src": "3673:6:13", @@ -2563,18 +2563,18 @@ "src": "3663:26:13" }, "returnParameters": { - "id": 21229, + "id": 21377, "nodeType": "ParameterList", "parameters": [], "src": "3698:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21235, + "id": 21383, "nodeType": "FunctionDefinition", "src": "3792:31:13", "functionSelector": "4c63e562", @@ -2584,17 +2584,17 @@ "name": "assume", "nameLocation": "3801:6:13", "parameters": { - "id": 21233, + "id": 21381, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21232, + "id": 21380, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21235, + "scope": 21383, "src": "3808:4:13", "stateVariable": false, "storageLocation": "default", @@ -2603,7 +2603,7 @@ "typeString": "bool" }, "typeName": { - "id": 21231, + "id": 21379, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3808:4:13", @@ -2618,18 +2618,18 @@ "src": "3807:6:13" }, "returnParameters": { - "id": 21234, + "id": 21382, "nodeType": "ParameterList", "parameters": [], "src": "3822:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21242, + "id": 21390, "nodeType": "FunctionDefinition", "src": "3861:44:13", "functionSelector": "f8e18b57", @@ -2639,17 +2639,17 @@ "name": "setNonce", "nameLocation": "3870:8:13", "parameters": { - "id": 21240, + "id": 21388, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21237, + "id": 21385, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21242, + "scope": 21390, "src": "3879:7:13", "stateVariable": false, "storageLocation": "default", @@ -2658,7 +2658,7 @@ "typeString": "address" }, "typeName": { - "id": 21236, + "id": 21384, "name": "address", "nodeType": "ElementaryTypeName", "src": "3879:7:13", @@ -2672,12 +2672,12 @@ }, { "constant": false, - "id": 21239, + "id": 21387, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21242, + "scope": 21390, "src": "3888:6:13", "stateVariable": false, "storageLocation": "default", @@ -2686,7 +2686,7 @@ "typeString": "uint64" }, "typeName": { - "id": 21238, + "id": 21386, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "3888:6:13", @@ -2701,18 +2701,18 @@ "src": "3878:17:13" }, "returnParameters": { - "id": 21241, + "id": 21389, "nodeType": "ParameterList", "parameters": [], "src": "3904:0:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 21249, + "id": 21397, "nodeType": "FunctionDefinition", "src": "3943:53:13", "functionSelector": "2d0335ab", @@ -2722,17 +2722,17 @@ "name": "getNonce", "nameLocation": "3952:8:13", "parameters": { - "id": 21245, + "id": 21393, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21244, + "id": 21392, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21249, + "scope": 21397, "src": "3961:7:13", "stateVariable": false, "storageLocation": "default", @@ -2741,7 +2741,7 @@ "typeString": "address" }, "typeName": { - "id": 21243, + "id": 21391, "name": "address", "nodeType": "ElementaryTypeName", "src": "3961:7:13", @@ -2757,17 +2757,17 @@ "src": "3960:9:13" }, "returnParameters": { - "id": 21248, + "id": 21396, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 21247, + "id": 21395, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 21249, + "scope": 21397, "src": "3988:6:13", "stateVariable": false, "storageLocation": "default", @@ -2776,7 +2776,7 @@ "typeString": "uint64" }, "typeName": { - "id": 21246, + "id": 21394, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "3988:6:13", @@ -2790,7 +2790,7 @@ ], "src": "3987:8:13" }, - "scope": 21250, + "scope": 21398, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -2803,11 +2803,11 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 21250 + 21398 ], "name": "Cheats", "nameLocation": "74:6:13", - "scope": 21251, + "scope": 21399, "usedErrors": [] } ], diff --git a/packages/contracts-forge/out/DeployPrompty.s.sol/DeployPrompty.json b/packages/contracts-forge/out/DeployPrompty.s.sol/DeployPrompty.json index c603253..6379876 100644 --- a/packages/contracts-forge/out/DeployPrompty.s.sol/DeployPrompty.json +++ b/packages/contracts-forge/out/DeployPrompty.s.sol/DeployPrompty.json @@ -61,12 +61,12 @@ } ], "bytecode": { - "object": "0x60806040526000805460ff1916600117905534801561001d57600080fd5b50611dcc8061002d6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633a7684631461005c57806342ec8d0f14610094578063c0406226146100a7578063c8a2144e146100b1578063f8ccbf47146100c9575b600080fd5b610077737109709ecfa91a80626ff3989d68f67f5b1dd12d81565b6040516001600160a01b0390911681526020015b60405180910390f35b600154610077906001600160a01b031681565b6100af6100e6565b005b6000546100779061010090046001600160a01b031681565b6000546100d69060ff1681565b604051901515815260200161008b565b6101116040518060400160405280600a8152602001690b995b9d8b9b1bd8d85b60b21b815250610293565b60408051637fb5297f60e01b81529051737109709ecfa91a80626ff3989d68f67f5b1dd12d91637fb5297f91600480830192600092919082900301818387803b15801561015d57600080fd5b505af1158015610171573d6000803e3d6000fd5b5050505061017e336105dd565b60405161018a90610a00565b604051809103906000f0801580156101a6573d6000803e3d6000fd5b5060008054610100600160a81b0319166101006001600160a01b03938416810291909117918290556040519104909116906101e090610a0d565b6001600160a01b039091168152602001604051809103906000f08015801561020c573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b039290921691909117905560408051633b756e9b60e11b81529051737109709ecfa91a80626ff3989d68f67f5b1dd12d916376eadd3691600480830192600092919082900301818387803b15801561027957600080fd5b505af115801561028d573d6000803e3d6000fd5b50505050565b60408051600380825260808201909252600091816020015b60608152602001906001900390816102ab579050509050604051806040016040528060028152602001610e6d60f31b815250816000815181106102f0576102f0610a30565b6020026020010181905250604051806040016040528060028152602001612d6360f01b8152508160018151811061032957610329610a30565b6020026020010181905250816040516020016103459190610a72565b6040516020818303038152906040528160028151811061036757610367610a30565b6020908102919091010152604051638916046760e01b8152600090737109709ecfa91a80626ff3989d68f67f5b1dd12d906389160467906103ac908590600401610b0d565b6000604051808303816000875af11580156103cb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103f39190810190610be3565b9050600061043b8280602001905181019061040e9190610be3565b60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526001808252600560f91b602080840191825284518086018652600080825290820181905285518087018752945185528482019290925284518086018652838152603d60f81b81830190815286518088018852848152830184905286518088018852915182528183015285518087018752938452602360f81b8483019081528651808801885284815283018490528651808801909752935186529085019290925293945090929091906104f68585610628565b610501906001610c42565b905060005b818110156105d257600061051a87876106c9565b905061052681856106e8565b6105bf57600061053e61053983886106c9565b61072f565b905080516000146105bd57737109709ecfa91a80626ff3989d68f67f5b1dd12d633d5923ee8261056d8561072f565b6040518363ffffffff1660e01b815260040161058a929190610c5a565b600060405180830381600087803b1580156105a457600080fd5b505af11580156105b8573d6000803e3d6000fd5b505050505b505b50806105ca81610c88565b915050610506565b505050505050505050565b6040516001600160a01b03821660248201526106259060440160408051601f198184030181529190526020810180516001600160e01b031663161765e160e11b179052610798565b50565b600080826000015161064c85600001518660200151866000015187602001516107b9565b6106569190610c42565b90505b8351602085015161066a9190610c42565b81116106c2578161067a81610c88565b92505082600001516106b18560200151836106959190610ca1565b86516106a19190610ca1565b83866000015187602001516107b9565b6106bb9190610c42565b9050610659565b5092915050565b60408051808201909152600080825260208201526106c28383836108db565b8051825160009111156106fd57506000610729565b816020015183602001510361071457506001610729565b50805160208381015190830151829020919020145b92915050565b60606000826000015167ffffffffffffffff81111561075057610750610a1a565b6040519080825280601f01601f19166020018201604052801561077a576020820181803683370190505b50905060006020820190506106c28185602001518660000151610986565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600083818685116108c4576020851161087357600085156108055760016107e1876020610ca1565b6107ec906008610cb8565b6107f7906002610dbb565b6108019190610ca1565b1990505b845181166000876108168b8b610c42565b6108209190610ca1565b855190915083165b8281146108655781861061084d576108408b8b610c42565b96505050505050506108d3565b8561085781610c88565b965050838651169050610828565b8596505050505050506108d3565b508383206000905b6108858689610ca1565b82116108c2578583208082036108a157839450505050506108d3565b6108ac600185610c42565b93505081806108ba90610c88565b92505061087b565b505b6108ce8787610c42565b925050505b949350505050565b6040805180820190915260008082526020820152600061090d85600001518660200151866000015187602001516107b9565b6020808701805191860191909152519091506109299082610ca1565b83528451602086015161093c9190610c42565b810361094b576000855261097d565b835183516109599190610c42565b85518690610968908390610ca1565b90525083516109779082610c42565b60208601525b50909392505050565b602081106109be578151835261099d602084610c42565b92506109aa602083610c42565b91506109b7602082610ca1565b9050610986565b60001981156109ed5760016109d4836020610ca1565b6109e090610100610dbb565b6109ea9190610ca1565b90505b9151835183169219169190911790915250565b610c4880610dcf83390190565b61038080611a1783390190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60005b83811015610a61578181015183820152602001610a49565b8381111561028d5750506000910152565b7f63617374206162692d656e636f64652022726573706f6e7365286279746573298152750111012143c3c321016b81016b19018981818181818160551b602082015260008251610ac9816036850160208701610a46565b602960f81b6036939091019283015250603701919050565b60008151808452610af9816020860160208601610a46565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015610b6257603f19888603018452610b50858351610ae1565b94509285019290850190600101610b34565b5092979650505050505050565b600067ffffffffffffffff80841115610b8a57610b8a610a1a565b604051601f8501601f19908116603f01168101908282118183101715610bb257610bb2610a1a565b81604052809350858152868686011115610bcb57600080fd5b610bd9866020830187610a46565b5050509392505050565b600060208284031215610bf557600080fd5b815167ffffffffffffffff811115610c0c57600080fd5b8201601f81018413610c1d57600080fd5b6108d384825160208401610b6f565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c5557610c55610c2c565b500190565b604081526000610c6d6040830185610ae1565b8281036020840152610c7f8185610ae1565b95945050505050565b600060018201610c9a57610c9a610c2c565b5060010190565b600082821015610cb357610cb3610c2c565b500390565b6000816000190483118215151615610cd257610cd2610c2c565b500290565b600181815b80851115610d12578160001904821115610cf857610cf8610c2c565b80851615610d0557918102915b93841c9390800290610cdc565b509250929050565b600082610d2957506001610729565b81610d3657506000610729565b8160018114610d4c5760028114610d5657610d72565b6001915050610729565b60ff841115610d6757610d67610c2c565b50506001821b610729565b5060208310610133831016604e8410600b8410161715610d95575081810a610729565b610d9f8383610cd7565b8060001904821115610db357610db3610c2c565b029392505050565b6000610dc78383610d1a565b939250505056fe60806040526000805534801561001457600080fd5b50610c24806100246000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a836afab1161005b578063a836afab146100d4578063d4cf9af7146100e7578063d715bc7614610158578063d8fcb5781461016b57600080fd5b806317e7d99d146100825780635542bbae1461009e578063a2f7b3a5146100b3575b600080fd5b61008b60005481565b6040519081526020015b60405180910390f35b6100b16100ac366004610879565b61017e565b005b6100c66100c13660046108eb565b610303565b604051610095929190610951565b6100b16100e2366004610989565b6103a8565b6101296100f53660046108eb565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b0391821692840192909252166060820152608001610095565b6100b16101663660046109b5565b61043c565b6100b1610179366004610a84565b61058d565b6000858152600260208181526040808420338552909201905281205460ff16151590036101be57604051631eb49d6d60e11b815260040160405180910390fd5b83516000036101e0576040516345df16e360e11b815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561021357604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161023d57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b03161061026857604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517f70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f926102dc928a92909133918b91908b908b908b90610ac1565b60405180910390a160016000808282546102f69190610b3a565b9091555050505050505050565b6002602052600090815260409020805460018201805491929161032590610b52565b80601f016020809104026020016040519081016040528092919081815260200182805461035190610b52565b801561039e5780601f106103735761010080835404028352916020019161039e565b820191906000526020600020905b81548152906001019060200180831161038157829003601f168201915b5050505050905082565b60008281526002602081815260408084206001600160a01b03861685529283019091529091205460ff16610437576001600160a01b0382166000818152600283016020908152604091829020805460ff191660011790558151868152908101929092527f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f38910160405180910390a15b505050565b60035460009081526002602090815260409091208251909161046591600184019185019061070d565b507f12a37195fcb94c4dd39071e7d48a098630635e5ad29d4bcc83a4393278045b7a60035483604051610499929190610951565b60405180910390a160005b835181101561057e5760018260020160008684815181106104c7576104c7610b8c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f3860035485838151811061053c5761053c610b8c565b60200260200101516040516105649291909182526001600160a01b0316602082015260400190565b60405180910390a18061057681610ba2565b9150506104a4565b50506003805460010190555050565b60005482106105af5760405163bad818f360e01b815260040160405180910390fd5b600082815260016020819052604090912001544211156105e2576040516317eeb92b60e31b815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff16156106205760405163251aba6960e11b815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b03909116111561065e5760405163254082dd60e11b815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b031610156106a257604051632707879b60e11b815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e588091610701918591908590610bbb565b60405180910390a15050565b82805461071990610b52565b90600052602060002090601f01602090048101928261073b5760008555610781565b82601f1061075457805160ff1916838001178555610781565b82800160010185558215610781579182015b82811115610781578251825591602001919060010190610766565b5061078d929150610791565b5090565b5b8082111561078d5760008155600101610792565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156107e5576107e56107a6565b604052919050565b600082601f8301126107fe57600080fd5b813567ffffffffffffffff811115610818576108186107a6565b61082b601f8201601f19166020016107bc565b81815284602083860101111561084057600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160801b038116811461087457600080fd5b919050565b600080600080600060a0868803121561089157600080fd5b85359450602086013567ffffffffffffffff8111156108af57600080fd5b6108bb888289016107ed565b945050604086013592506108d16060870161085d565b91506108df6080870161085d565b90509295509295909350565b6000602082840312156108fd57600080fd5b5035919050565b6000815180845260005b8181101561092a5760208185018101518683018201520161090e565b8181111561093c576000602083870101525b50601f01601f19169290920160200192915050565b82815260406020820152600061096a6040830184610904565b949350505050565b80356001600160a01b038116811461087457600080fd5b6000806040838503121561099c57600080fd5b823591506109ac60208401610972565b90509250929050565b600080604083850312156109c857600080fd5b823567ffffffffffffffff808211156109e057600080fd5b818501915085601f8301126109f457600080fd5b8135602082821115610a0857610a086107a6565b8160051b610a178282016107bc565b928352848101820192828101908a851115610a3157600080fd5b958301955b84871015610a5657610a4787610972565b82529583019590830190610a36565b9750505086013592505080821115610a6d57600080fd5b50610a7a858286016107ed565b9150509250929050565b60008060408385031215610a9757600080fd5b82359150602083013567ffffffffffffffff811115610ab557600080fd5b610a7a858286016107ed565b888152602081018890526001600160a01b038716604082015261010060608201819052600090610af383820189610904565b6080840197909752505060a08101939093526001600160801b0391821660c08401521660e090910152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610b4d57610b4d610b24565b500190565b600181811c90821680610b6657607f821691505b602082108103610b8657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060018201610bb457610bb4610b24565b5060010190565b8381526001600160a01b0383166020820152606060408201819052600090610be590830184610904565b9594505050505056fea26469706673582212207bef5fdd5ea939eaefc8e29369db06401634e0717757f06d0bb0646768bcfef064736f6c634300080d0033608060405234801561001057600080fd5b5060405161038038038061038083398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b610294806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063715018a61461005c5780638da5cb5b14610066578063e2a79abb1461008f578063e44f0e8c146100a2578063f2fde38b146100b5575b600080fd5b6100646100c8565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006461009d36600461022e565b6100dc565b600154610073906001600160a01b031681565b6100646100c336600461022e565b610106565b6100d0610184565b6100da60006101de565b565b6100e4610184565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61010e610184565b6001600160a01b0381166101785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610181816101de565b50565b6000546001600160a01b031633146100da5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561024057600080fd5b81356001600160a01b038116811461025757600080fd5b939250505056fea264697066735822122005c86109122f61b88c8c52186d6d1d8c038e66f0c1333ed1fc933f4e7d2ea4ee64736f6c634300080d0033a26469706673582212202d6b4db65e247c208f606e4d53795fd43d2203f3102e1de8f1235157b05fd5c264736f6c634300080d0033", + "object": "0x60806040526000805460ff1916600117905534801561001d57600080fd5b5061226a8061002d6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633a7684631461005c57806342ec8d0f14610094578063c0406226146100a7578063c8a2144e146100b1578063f8ccbf47146100c9575b600080fd5b610077737109709ecfa91a80626ff3989d68f67f5b1dd12d81565b6040516001600160a01b0390911681526020015b60405180910390f35b600154610077906001600160a01b031681565b6100af6100e6565b005b6000546100779061010090046001600160a01b031681565b6000546100d69060ff1681565b604051901515815260200161008b565b6101116040518060400160405280600a8152602001690b995b9d8b9b1bd8d85b60b21b815250610293565b60408051637fb5297f60e01b81529051737109709ecfa91a80626ff3989d68f67f5b1dd12d91637fb5297f91600480830192600092919082900301818387803b15801561015d57600080fd5b505af1158015610171573d6000803e3d6000fd5b5050505061017e336105dd565b60405161018a90610a00565b604051809103906000f0801580156101a6573d6000803e3d6000fd5b5060008054610100600160a81b0319166101006001600160a01b03938416810291909117918290556040519104909116906101e090610a0d565b6001600160a01b039091168152602001604051809103906000f08015801561020c573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b039290921691909117905560408051633b756e9b60e11b81529051737109709ecfa91a80626ff3989d68f67f5b1dd12d916376eadd3691600480830192600092919082900301818387803b15801561027957600080fd5b505af115801561028d573d6000803e3d6000fd5b50505050565b60408051600380825260808201909252600091816020015b60608152602001906001900390816102ab579050509050604051806040016040528060028152602001610e6d60f31b815250816000815181106102f0576102f0610a30565b6020026020010181905250604051806040016040528060028152602001612d6360f01b8152508160018151811061032957610329610a30565b6020026020010181905250816040516020016103459190610a72565b6040516020818303038152906040528160028151811061036757610367610a30565b6020908102919091010152604051638916046760e01b8152600090737109709ecfa91a80626ff3989d68f67f5b1dd12d906389160467906103ac908590600401610b0d565b6000604051808303816000875af11580156103cb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103f39190810190610be3565b9050600061043b8280602001905181019061040e9190610be3565b60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526001808252600560f91b602080840191825284518086018652600080825290820181905285518087018752945185528482019290925284518086018652838152603d60f81b81830190815286518088018852848152830184905286518088018852915182528183015285518087018752938452602360f81b8483019081528651808801885284815283018490528651808801909752935186529085019290925293945090929091906104f68585610628565b610501906001610c42565b905060005b818110156105d257600061051a87876106c9565b905061052681856106e8565b6105bf57600061053e61053983886106c9565b61072f565b905080516000146105bd57737109709ecfa91a80626ff3989d68f67f5b1dd12d633d5923ee8261056d8561072f565b6040518363ffffffff1660e01b815260040161058a929190610c5a565b600060405180830381600087803b1580156105a457600080fd5b505af11580156105b8573d6000803e3d6000fd5b505050505b505b50806105ca81610c88565b915050610506565b505050505050505050565b6040516001600160a01b03821660248201526106259060440160408051601f198184030181529190526020810180516001600160e01b031663161765e160e11b179052610798565b50565b600080826000015161064c85600001518660200151866000015187602001516107b9565b6106569190610c42565b90505b8351602085015161066a9190610c42565b81116106c2578161067a81610c88565b92505082600001516106b18560200151836106959190610ca1565b86516106a19190610ca1565b83866000015187602001516107b9565b6106bb9190610c42565b9050610659565b5092915050565b60408051808201909152600080825260208201526106c28383836108db565b8051825160009111156106fd57506000610729565b816020015183602001510361071457506001610729565b50805160208381015190830151829020919020145b92915050565b60606000826000015167ffffffffffffffff81111561075057610750610a1a565b6040519080825280601f01601f19166020018201604052801561077a576020820181803683370190505b50905060006020820190506106c28185602001518660000151610986565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600083818685116108c4576020851161087357600085156108055760016107e1876020610ca1565b6107ec906008610cb8565b6107f7906002610dbb565b6108019190610ca1565b1990505b845181166000876108168b8b610c42565b6108209190610ca1565b855190915083165b8281146108655781861061084d576108408b8b610c42565b96505050505050506108d3565b8561085781610c88565b965050838651169050610828565b8596505050505050506108d3565b508383206000905b6108858689610ca1565b82116108c2578583208082036108a157839450505050506108d3565b6108ac600185610c42565b93505081806108ba90610c88565b92505061087b565b505b6108ce8787610c42565b925050505b949350505050565b6040805180820190915260008082526020820152600061090d85600001518660200151866000015187602001516107b9565b6020808701805191860191909152519091506109299082610ca1565b83528451602086015161093c9190610c42565b810361094b576000855261097d565b835183516109599190610c42565b85518690610968908390610ca1565b90525083516109779082610c42565b60208601525b50909392505050565b602081106109be578151835261099d602084610c42565b92506109aa602083610c42565b91506109b7602082610ca1565b9050610986565b60001981156109ed5760016109d4836020610ca1565b6109e090610100610dbb565b6109ea9190610ca1565b90505b9151835183169219169190911790915250565b6110e680610dcf83390190565b61038080611eb583390190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60005b83811015610a61578181015183820152602001610a49565b8381111561028d5750506000910152565b7f63617374206162692d656e636f64652022726573706f6e7365286279746573298152750111012143c3c321016b81016b19018981818181818160551b602082015260008251610ac9816036850160208701610a46565b602960f81b6036939091019283015250603701919050565b60008151808452610af9816020860160208601610a46565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015610b6257603f19888603018452610b50858351610ae1565b94509285019290850190600101610b34565b5092979650505050505050565b600067ffffffffffffffff80841115610b8a57610b8a610a1a565b604051601f8501601f19908116603f01168101908282118183101715610bb257610bb2610a1a565b81604052809350858152868686011115610bcb57600080fd5b610bd9866020830187610a46565b5050509392505050565b600060208284031215610bf557600080fd5b815167ffffffffffffffff811115610c0c57600080fd5b8201601f81018413610c1d57600080fd5b6108d384825160208401610b6f565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c5557610c55610c2c565b500190565b604081526000610c6d6040830185610ae1565b8281036020840152610c7f8185610ae1565b95945050505050565b600060018201610c9a57610c9a610c2c565b5060010190565b600082821015610cb357610cb3610c2c565b500390565b6000816000190483118215151615610cd257610cd2610c2c565b500290565b600181815b80851115610d12578160001904821115610cf857610cf8610c2c565b80851615610d0557918102915b93841c9390800290610cdc565b509250929050565b600082610d2957506001610729565b81610d3657506000610729565b8160018114610d4c5760028114610d5657610d72565b6001915050610729565b60ff841115610d6757610d67610c2c565b50506001821b610729565b5060208310610133831016604e8410600b8410161715610d95575081810a610729565b610d9f8383610cd7565b8060001904821115610db357610db3610c2c565b029392505050565b6000610dc78383610d1a565b939250505056fe60806040526000805534801561001457600080fd5b506110c2806100246000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c0b931671161005b578063c0b93167146100f4578063d4cf9af714610107578063f2e7162d14610178578063f61044da1461018b57600080fd5b806317e7d99d1461008d578063493d5fe5146100a95780635542bbae146100be578063a2f7b3a5146100d1575b600080fd5b61009660005481565b6040519081526020015b60405180910390f35b6100bc6100b7366004610b61565b61019e565b005b6100bc6100cc366004610c1b565b61027d565b6100e46100df366004610c8d565b610403565b6040516100a09493929190610cf3565b6100bc610102366004610d26565b610545565b610149610115366004610c8d565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b03918216928401929092521660608201526080016100a0565b6100bc610186366004610d76565b610707565b6100bc610199366004610e0f565b610876565b600085815260026020908152604080832033845260048101909252822054909160ff909116151590036101e457604051631eb49d6d60e11b815260040160405180910390fd5b84516101f99060018301906020880190610966565b50835161020f9060038301906020870190610966565b5060028101805460ff191684151517905561022a8683610876565b60028101546040517f684102838bf7c97f957e6c1fe2f1e0316964904f1575bf7de9a493b8fdab1f7d9161026d9189916001860191600387019160ff1690610f2f565b60405180910390a1505050505050565b600085815260026020908152604080832033845260040190915281205460ff16151590036102be57604051631eb49d6d60e11b815260040160405180910390fd5b83516000036102e0576040516345df16e360e11b815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561031357604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161033d57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b03161061036857604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517f70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f926103dc928a92909133918b91908b908b908b90610f6e565b60405180910390a160016000808282546103f69190610fe7565b9091555050505050505050565b6002602052600090815260409020805460018201805491929161042590610e56565b80601f016020809104026020016040519081016040528092919081815260200182805461045190610e56565b801561049e5780601f106104735761010080835404028352916020019161049e565b820191906000526020600020905b81548152906001019060200180831161048157829003601f168201915b5050506002840154600385018054949560ff9092169491935091506104c290610e56565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee90610e56565b801561053b5780601f106105105761010080835404028352916020019161053b565b820191906000526020600020905b81548152906001019060200180831161051e57829003601f168201915b5050505050905084565b600083815260026020908152604080832033845260040190915281205460ff161515900361058657604051631eb49d6d60e11b815260040160405180910390fd5b60005482106105a85760405163bad818f360e01b815260040160405180910390fd5b600082815260016020819052604090912001544211156105db576040516317eeb92b60e31b815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff16156106195760405163251aba6960e11b815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b0390911611156106575760405163254082dd60e11b815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b0316101561069b57604051632707879b60e11b815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e5880916106fa918591908590610fff565b60405180910390a1505050565b600354600090815260026020908152604090912084519091610730916001840191870190610966565b5060028101805460ff19168315159081179091556003546040517f344a4ee11c050981b3cfdbc9ebfb417404a057d40c7f019607da26a367b63e929261078092918891889160ff90911690611032565b60405180910390a160005b85518110156108655760018260040160008884815181106107ae576107ae61105d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f386003548783815181106108235761082361105d565b602002602001015160405161084b9291909182526001600160a01b0316602082015260400190565b60405180910390a18061085d81611073565b91505061078b565b505060038054600101905550505050565b6000828152600260205260408120905b82518110156109605760018260040160008584815181106108a9576108a961105d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f3860035484838151811061091e5761091e61105d565b60200260200101516040516109469291909182526001600160a01b0316602082015260400190565b60405180910390a18061095881611073565b915050610886565b50505050565b82805461097290610e56565b90600052602060002090601f01602090048101928261099457600085556109da565b82601f106109ad57805160ff19168380011785556109da565b828001600101855582156109da579182015b828111156109da5782518255916020019190600101906109bf565b506109e69291506109ea565b5090565b5b808211156109e657600081556001016109eb565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610a3e57610a3e6109ff565b604052919050565b600082601f830112610a5757600080fd5b813567ffffffffffffffff811115610a7157610a716109ff565b610a84601f8201601f1916602001610a15565b818152846020838601011115610a9957600080fd5b816020850160208301376000918101602001919091529392505050565b80358015158114610ac657600080fd5b919050565b600082601f830112610adc57600080fd5b8135602067ffffffffffffffff821115610af857610af86109ff565b8160051b610b07828201610a15565b9283528481018201928281019087851115610b2157600080fd5b83870192505b84831015610b565782356001600160a01b0381168114610b475760008081fd5b82529183019190830190610b27565b979650505050505050565b600080600080600060a08688031215610b7957600080fd5b85359450602086013567ffffffffffffffff80821115610b9857600080fd5b610ba489838a01610a46565b95506040880135915080821115610bba57600080fd5b610bc689838a01610a46565b9450610bd460608901610ab6565b93506080880135915080821115610bea57600080fd5b50610bf788828901610acb565b9150509295509295909350565b80356001600160801b0381168114610ac657600080fd5b600080600080600060a08688031215610c3357600080fd5b85359450602086013567ffffffffffffffff811115610c5157600080fd5b610c5d88828901610a46565b94505060408601359250610c7360608701610c04565b9150610c8160808701610c04565b90509295509295909350565b600060208284031215610c9f57600080fd5b5035919050565b6000815180845260005b81811015610ccc57602081850181015186830182015201610cb0565b81811115610cde576000602083870101525b50601f01601f19169290920160200192915050565b848152608060208201526000610d0c6080830186610ca6565b84151560408401528281036060840152610b568185610ca6565b600080600060608486031215610d3b57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115610d6057600080fd5b610d6c86828701610a46565b9150509250925092565b60008060008060808587031215610d8c57600080fd5b843567ffffffffffffffff80821115610da457600080fd5b610db088838901610acb565b95506020870135915080821115610dc657600080fd5b610dd288838901610a46565b94506040870135915080821115610de857600080fd5b50610df587828801610a46565b925050610e0460608601610ab6565b905092959194509250565b60008060408385031215610e2257600080fd5b82359150602083013567ffffffffffffffff811115610e4057600080fd5b610e4c85828601610acb565b9150509250929050565b600181811c90821680610e6a57607f821691505b602082108103610e8a57634e487b7160e01b600052602260045260246000fd5b50919050565b8054600090600181811c9080831680610eaa57607f831692505b60208084108203610ecb57634e487b7160e01b600052602260045260246000fd5b83885260208801828015610ee65760018114610ef757610f22565b60ff19871682528282019750610f22565b60008981526020902060005b87811015610f1c57815484820152908601908401610f03565b83019850505b5050505050505092915050565b848152608060208201526000610f486080830186610e90565b8281036040840152610f5a8186610e90565b915050821515606083015295945050505050565b888152602081018890526001600160a01b038716604082015261010060608201819052600090610fa083820189610ca6565b6080840197909752505060a08101939093526001600160801b0391821660c08401521660e090910152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610ffa57610ffa610fd1565b500190565b8381526001600160a01b038316602082015260606040820181905260009061102990830184610ca6565b95945050505050565b84815260806020820152600061104b6080830186610ca6565b8281036040840152610f5a8186610ca6565b634e487b7160e01b600052603260045260246000fd5b60006001820161108557611085610fd1565b506001019056fea26469706673582212209ff91a7a28fa069deea61ec420562369a941ece1ddaab34d1dfaca1c6e50320a64736f6c634300080d0033608060405234801561001057600080fd5b5060405161038038038061038083398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b610294806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063715018a61461005c5780638da5cb5b14610066578063e2a79abb1461008f578063e44f0e8c146100a2578063f2fde38b146100b5575b600080fd5b6100646100c8565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006461009d36600461022e565b6100dc565b600154610073906001600160a01b031681565b6100646100c336600461022e565b610106565b6100d0610184565b6100da60006101de565b565b6100e4610184565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61010e610184565b6001600160a01b0381166101785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610181816101de565b50565b6000546001600160a01b031633146100da5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561024057600080fd5b81356001600160a01b038116811461025757600080fd5b939250505056fea2646970667358221220de208913a3e5532e3044880e0d33eb434c58408b8d7cd0a670435d74239a560364736f6c634300080d0033a2646970667358221220eed5bb2f72bc8d0b3e07567e71a5deef834dcfc697fc1764782a47ba120b946f64736f6c634300080d0033", "sourceMap": "234:620:12:-:0;;;171:28:3;;;-1:-1:-1;;171:28:3;195:4;171:28;;;234:620:12;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633a7684631461005c57806342ec8d0f14610094578063c0406226146100a7578063c8a2144e146100b1578063f8ccbf47146100c9575b600080fd5b610077737109709ecfa91a80626ff3989d68f67f5b1dd12d81565b6040516001600160a01b0390911681526020015b60405180910390f35b600154610077906001600160a01b031681565b6100af6100e6565b005b6000546100779061010090046001600160a01b031681565b6000546100d69060ff1681565b604051901515815260200161008b565b6101116040518060400160405280600a8152602001690b995b9d8b9b1bd8d85b60b21b815250610293565b60408051637fb5297f60e01b81529051737109709ecfa91a80626ff3989d68f67f5b1dd12d91637fb5297f91600480830192600092919082900301818387803b15801561015d57600080fd5b505af1158015610171573d6000803e3d6000fd5b5050505061017e336105dd565b60405161018a90610a00565b604051809103906000f0801580156101a6573d6000803e3d6000fd5b5060008054610100600160a81b0319166101006001600160a01b03938416810291909117918290556040519104909116906101e090610a0d565b6001600160a01b039091168152602001604051809103906000f08015801561020c573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b039290921691909117905560408051633b756e9b60e11b81529051737109709ecfa91a80626ff3989d68f67f5b1dd12d916376eadd3691600480830192600092919082900301818387803b15801561027957600080fd5b505af115801561028d573d6000803e3d6000fd5b50505050565b60408051600380825260808201909252600091816020015b60608152602001906001900390816102ab579050509050604051806040016040528060028152602001610e6d60f31b815250816000815181106102f0576102f0610a30565b6020026020010181905250604051806040016040528060028152602001612d6360f01b8152508160018151811061032957610329610a30565b6020026020010181905250816040516020016103459190610a72565b6040516020818303038152906040528160028151811061036757610367610a30565b6020908102919091010152604051638916046760e01b8152600090737109709ecfa91a80626ff3989d68f67f5b1dd12d906389160467906103ac908590600401610b0d565b6000604051808303816000875af11580156103cb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103f39190810190610be3565b9050600061043b8280602001905181019061040e9190610be3565b60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526001808252600560f91b602080840191825284518086018652600080825290820181905285518087018752945185528482019290925284518086018652838152603d60f81b81830190815286518088018852848152830184905286518088018852915182528183015285518087018752938452602360f81b8483019081528651808801885284815283018490528651808801909752935186529085019290925293945090929091906104f68585610628565b610501906001610c42565b905060005b818110156105d257600061051a87876106c9565b905061052681856106e8565b6105bf57600061053e61053983886106c9565b61072f565b905080516000146105bd57737109709ecfa91a80626ff3989d68f67f5b1dd12d633d5923ee8261056d8561072f565b6040518363ffffffff1660e01b815260040161058a929190610c5a565b600060405180830381600087803b1580156105a457600080fd5b505af11580156105b8573d6000803e3d6000fd5b505050505b505b50806105ca81610c88565b915050610506565b505050505050505050565b6040516001600160a01b03821660248201526106259060440160408051601f198184030181529190526020810180516001600160e01b031663161765e160e11b179052610798565b50565b600080826000015161064c85600001518660200151866000015187602001516107b9565b6106569190610c42565b90505b8351602085015161066a9190610c42565b81116106c2578161067a81610c88565b92505082600001516106b18560200151836106959190610ca1565b86516106a19190610ca1565b83866000015187602001516107b9565b6106bb9190610c42565b9050610659565b5092915050565b60408051808201909152600080825260208201526106c28383836108db565b8051825160009111156106fd57506000610729565b816020015183602001510361071457506001610729565b50805160208381015190830151829020919020145b92915050565b60606000826000015167ffffffffffffffff81111561075057610750610a1a565b6040519080825280601f01601f19166020018201604052801561077a576020820181803683370190505b50905060006020820190506106c28185602001518660000151610986565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600083818685116108c4576020851161087357600085156108055760016107e1876020610ca1565b6107ec906008610cb8565b6107f7906002610dbb565b6108019190610ca1565b1990505b845181166000876108168b8b610c42565b6108209190610ca1565b855190915083165b8281146108655781861061084d576108408b8b610c42565b96505050505050506108d3565b8561085781610c88565b965050838651169050610828565b8596505050505050506108d3565b508383206000905b6108858689610ca1565b82116108c2578583208082036108a157839450505050506108d3565b6108ac600185610c42565b93505081806108ba90610c88565b92505061087b565b505b6108ce8787610c42565b925050505b949350505050565b6040805180820190915260008082526020820152600061090d85600001518660200151866000015187602001516107b9565b6020808701805191860191909152519091506109299082610ca1565b83528451602086015161093c9190610c42565b810361094b576000855261097d565b835183516109599190610c42565b85518690610968908390610ca1565b90525083516109779082610c42565b60208601525b50909392505050565b602081106109be578151835261099d602084610c42565b92506109aa602083610c42565b91506109b7602082610ca1565b9050610986565b60001981156109ed5760016109d4836020610ca1565b6109e090610100610dbb565b6109ea9190610ca1565b90505b9151835183169219169190911790915250565b610c4880610dcf83390190565b61038080611a1783390190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60005b83811015610a61578181015183820152602001610a49565b8381111561028d5750506000910152565b7f63617374206162692d656e636f64652022726573706f6e7365286279746573298152750111012143c3c321016b81016b19018981818181818160551b602082015260008251610ac9816036850160208701610a46565b602960f81b6036939091019283015250603701919050565b60008151808452610af9816020860160208601610a46565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015610b6257603f19888603018452610b50858351610ae1565b94509285019290850190600101610b34565b5092979650505050505050565b600067ffffffffffffffff80841115610b8a57610b8a610a1a565b604051601f8501601f19908116603f01168101908282118183101715610bb257610bb2610a1a565b81604052809350858152868686011115610bcb57600080fd5b610bd9866020830187610a46565b5050509392505050565b600060208284031215610bf557600080fd5b815167ffffffffffffffff811115610c0c57600080fd5b8201601f81018413610c1d57600080fd5b6108d384825160208401610b6f565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c5557610c55610c2c565b500190565b604081526000610c6d6040830185610ae1565b8281036020840152610c7f8185610ae1565b95945050505050565b600060018201610c9a57610c9a610c2c565b5060010190565b600082821015610cb357610cb3610c2c565b500390565b6000816000190483118215151615610cd257610cd2610c2c565b500290565b600181815b80851115610d12578160001904821115610cf857610cf8610c2c565b80851615610d0557918102915b93841c9390800290610cdc565b509250929050565b600082610d2957506001610729565b81610d3657506000610729565b8160018114610d4c5760028114610d5657610d72565b6001915050610729565b60ff841115610d6757610d67610c2c565b50506001821b610729565b5060208310610133831016604e8410600b8410161715610d95575081810a610729565b610d9f8383610cd7565b8060001904821115610db357610db3610c2c565b029392505050565b6000610dc78383610d1a565b939250505056fe60806040526000805534801561001457600080fd5b50610c24806100246000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a836afab1161005b578063a836afab146100d4578063d4cf9af7146100e7578063d715bc7614610158578063d8fcb5781461016b57600080fd5b806317e7d99d146100825780635542bbae1461009e578063a2f7b3a5146100b3575b600080fd5b61008b60005481565b6040519081526020015b60405180910390f35b6100b16100ac366004610879565b61017e565b005b6100c66100c13660046108eb565b610303565b604051610095929190610951565b6100b16100e2366004610989565b6103a8565b6101296100f53660046108eb565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b0391821692840192909252166060820152608001610095565b6100b16101663660046109b5565b61043c565b6100b1610179366004610a84565b61058d565b6000858152600260208181526040808420338552909201905281205460ff16151590036101be57604051631eb49d6d60e11b815260040160405180910390fd5b83516000036101e0576040516345df16e360e11b815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561021357604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161023d57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b03161061026857604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517f70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f926102dc928a92909133918b91908b908b908b90610ac1565b60405180910390a160016000808282546102f69190610b3a565b9091555050505050505050565b6002602052600090815260409020805460018201805491929161032590610b52565b80601f016020809104026020016040519081016040528092919081815260200182805461035190610b52565b801561039e5780601f106103735761010080835404028352916020019161039e565b820191906000526020600020905b81548152906001019060200180831161038157829003601f168201915b5050505050905082565b60008281526002602081815260408084206001600160a01b03861685529283019091529091205460ff16610437576001600160a01b0382166000818152600283016020908152604091829020805460ff191660011790558151868152908101929092527f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f38910160405180910390a15b505050565b60035460009081526002602090815260409091208251909161046591600184019185019061070d565b507f12a37195fcb94c4dd39071e7d48a098630635e5ad29d4bcc83a4393278045b7a60035483604051610499929190610951565b60405180910390a160005b835181101561057e5760018260020160008684815181106104c7576104c7610b8c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f3860035485838151811061053c5761053c610b8c565b60200260200101516040516105649291909182526001600160a01b0316602082015260400190565b60405180910390a18061057681610ba2565b9150506104a4565b50506003805460010190555050565b60005482106105af5760405163bad818f360e01b815260040160405180910390fd5b600082815260016020819052604090912001544211156105e2576040516317eeb92b60e31b815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff16156106205760405163251aba6960e11b815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b03909116111561065e5760405163254082dd60e11b815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b031610156106a257604051632707879b60e11b815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e588091610701918591908590610bbb565b60405180910390a15050565b82805461071990610b52565b90600052602060002090601f01602090048101928261073b5760008555610781565b82601f1061075457805160ff1916838001178555610781565b82800160010185558215610781579182015b82811115610781578251825591602001919060010190610766565b5061078d929150610791565b5090565b5b8082111561078d5760008155600101610792565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156107e5576107e56107a6565b604052919050565b600082601f8301126107fe57600080fd5b813567ffffffffffffffff811115610818576108186107a6565b61082b601f8201601f19166020016107bc565b81815284602083860101111561084057600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160801b038116811461087457600080fd5b919050565b600080600080600060a0868803121561089157600080fd5b85359450602086013567ffffffffffffffff8111156108af57600080fd5b6108bb888289016107ed565b945050604086013592506108d16060870161085d565b91506108df6080870161085d565b90509295509295909350565b6000602082840312156108fd57600080fd5b5035919050565b6000815180845260005b8181101561092a5760208185018101518683018201520161090e565b8181111561093c576000602083870101525b50601f01601f19169290920160200192915050565b82815260406020820152600061096a6040830184610904565b949350505050565b80356001600160a01b038116811461087457600080fd5b6000806040838503121561099c57600080fd5b823591506109ac60208401610972565b90509250929050565b600080604083850312156109c857600080fd5b823567ffffffffffffffff808211156109e057600080fd5b818501915085601f8301126109f457600080fd5b8135602082821115610a0857610a086107a6565b8160051b610a178282016107bc565b928352848101820192828101908a851115610a3157600080fd5b958301955b84871015610a5657610a4787610972565b82529583019590830190610a36565b9750505086013592505080821115610a6d57600080fd5b50610a7a858286016107ed565b9150509250929050565b60008060408385031215610a9757600080fd5b82359150602083013567ffffffffffffffff811115610ab557600080fd5b610a7a858286016107ed565b888152602081018890526001600160a01b038716604082015261010060608201819052600090610af383820189610904565b6080840197909752505060a08101939093526001600160801b0391821660c08401521660e090910152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610b4d57610b4d610b24565b500190565b600181811c90821680610b6657607f821691505b602082108103610b8657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060018201610bb457610bb4610b24565b5060010190565b8381526001600160a01b0383166020820152606060408201819052600090610be590830184610904565b9594505050505056fea26469706673582212207bef5fdd5ea939eaefc8e29369db06401634e0717757f06d0bb0646768bcfef064736f6c634300080d0033608060405234801561001057600080fd5b5060405161038038038061038083398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b610294806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063715018a61461005c5780638da5cb5b14610066578063e2a79abb1461008f578063e44f0e8c146100a2578063f2fde38b146100b5575b600080fd5b6100646100c8565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006461009d36600461022e565b6100dc565b600154610073906001600160a01b031681565b6100646100c336600461022e565b610106565b6100d0610184565b6100da60006101de565b565b6100e4610184565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61010e610184565b6001600160a01b0381166101785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610181816101de565b50565b6000546001600160a01b031633146100da5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561024057600080fd5b81356001600160a01b038116811461025757600080fd5b939250505056fea264697066735822122005c86109122f61b88c8c52186d6d1d8c038e66f0c1333ed1fc933f4e7d2ea4ee64736f6c634300080d0033a26469706673582212202d6b4db65e247c208f606e4d53795fd43d2203f3102e1de8f1235157b05fd5c264736f6c634300080d0033", + "object": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633a7684631461005c57806342ec8d0f14610094578063c0406226146100a7578063c8a2144e146100b1578063f8ccbf47146100c9575b600080fd5b610077737109709ecfa91a80626ff3989d68f67f5b1dd12d81565b6040516001600160a01b0390911681526020015b60405180910390f35b600154610077906001600160a01b031681565b6100af6100e6565b005b6000546100779061010090046001600160a01b031681565b6000546100d69060ff1681565b604051901515815260200161008b565b6101116040518060400160405280600a8152602001690b995b9d8b9b1bd8d85b60b21b815250610293565b60408051637fb5297f60e01b81529051737109709ecfa91a80626ff3989d68f67f5b1dd12d91637fb5297f91600480830192600092919082900301818387803b15801561015d57600080fd5b505af1158015610171573d6000803e3d6000fd5b5050505061017e336105dd565b60405161018a90610a00565b604051809103906000f0801580156101a6573d6000803e3d6000fd5b5060008054610100600160a81b0319166101006001600160a01b03938416810291909117918290556040519104909116906101e090610a0d565b6001600160a01b039091168152602001604051809103906000f08015801561020c573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b039290921691909117905560408051633b756e9b60e11b81529051737109709ecfa91a80626ff3989d68f67f5b1dd12d916376eadd3691600480830192600092919082900301818387803b15801561027957600080fd5b505af115801561028d573d6000803e3d6000fd5b50505050565b60408051600380825260808201909252600091816020015b60608152602001906001900390816102ab579050509050604051806040016040528060028152602001610e6d60f31b815250816000815181106102f0576102f0610a30565b6020026020010181905250604051806040016040528060028152602001612d6360f01b8152508160018151811061032957610329610a30565b6020026020010181905250816040516020016103459190610a72565b6040516020818303038152906040528160028151811061036757610367610a30565b6020908102919091010152604051638916046760e01b8152600090737109709ecfa91a80626ff3989d68f67f5b1dd12d906389160467906103ac908590600401610b0d565b6000604051808303816000875af11580156103cb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103f39190810190610be3565b9050600061043b8280602001905181019061040e9190610be3565b60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526001808252600560f91b602080840191825284518086018652600080825290820181905285518087018752945185528482019290925284518086018652838152603d60f81b81830190815286518088018852848152830184905286518088018852915182528183015285518087018752938452602360f81b8483019081528651808801885284815283018490528651808801909752935186529085019290925293945090929091906104f68585610628565b610501906001610c42565b905060005b818110156105d257600061051a87876106c9565b905061052681856106e8565b6105bf57600061053e61053983886106c9565b61072f565b905080516000146105bd57737109709ecfa91a80626ff3989d68f67f5b1dd12d633d5923ee8261056d8561072f565b6040518363ffffffff1660e01b815260040161058a929190610c5a565b600060405180830381600087803b1580156105a457600080fd5b505af11580156105b8573d6000803e3d6000fd5b505050505b505b50806105ca81610c88565b915050610506565b505050505050505050565b6040516001600160a01b03821660248201526106259060440160408051601f198184030181529190526020810180516001600160e01b031663161765e160e11b179052610798565b50565b600080826000015161064c85600001518660200151866000015187602001516107b9565b6106569190610c42565b90505b8351602085015161066a9190610c42565b81116106c2578161067a81610c88565b92505082600001516106b18560200151836106959190610ca1565b86516106a19190610ca1565b83866000015187602001516107b9565b6106bb9190610c42565b9050610659565b5092915050565b60408051808201909152600080825260208201526106c28383836108db565b8051825160009111156106fd57506000610729565b816020015183602001510361071457506001610729565b50805160208381015190830151829020919020145b92915050565b60606000826000015167ffffffffffffffff81111561075057610750610a1a565b6040519080825280601f01601f19166020018201604052801561077a576020820181803683370190505b50905060006020820190506106c28185602001518660000151610986565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600083818685116108c4576020851161087357600085156108055760016107e1876020610ca1565b6107ec906008610cb8565b6107f7906002610dbb565b6108019190610ca1565b1990505b845181166000876108168b8b610c42565b6108209190610ca1565b855190915083165b8281146108655781861061084d576108408b8b610c42565b96505050505050506108d3565b8561085781610c88565b965050838651169050610828565b8596505050505050506108d3565b508383206000905b6108858689610ca1565b82116108c2578583208082036108a157839450505050506108d3565b6108ac600185610c42565b93505081806108ba90610c88565b92505061087b565b505b6108ce8787610c42565b925050505b949350505050565b6040805180820190915260008082526020820152600061090d85600001518660200151866000015187602001516107b9565b6020808701805191860191909152519091506109299082610ca1565b83528451602086015161093c9190610c42565b810361094b576000855261097d565b835183516109599190610c42565b85518690610968908390610ca1565b90525083516109779082610c42565b60208601525b50909392505050565b602081106109be578151835261099d602084610c42565b92506109aa602083610c42565b91506109b7602082610ca1565b9050610986565b60001981156109ed5760016109d4836020610ca1565b6109e090610100610dbb565b6109ea9190610ca1565b90505b9151835183169219169190911790915250565b6110e680610dcf83390190565b61038080611eb583390190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60005b83811015610a61578181015183820152602001610a49565b8381111561028d5750506000910152565b7f63617374206162692d656e636f64652022726573706f6e7365286279746573298152750111012143c3c321016b81016b19018981818181818160551b602082015260008251610ac9816036850160208701610a46565b602960f81b6036939091019283015250603701919050565b60008151808452610af9816020860160208601610a46565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015610b6257603f19888603018452610b50858351610ae1565b94509285019290850190600101610b34565b5092979650505050505050565b600067ffffffffffffffff80841115610b8a57610b8a610a1a565b604051601f8501601f19908116603f01168101908282118183101715610bb257610bb2610a1a565b81604052809350858152868686011115610bcb57600080fd5b610bd9866020830187610a46565b5050509392505050565b600060208284031215610bf557600080fd5b815167ffffffffffffffff811115610c0c57600080fd5b8201601f81018413610c1d57600080fd5b6108d384825160208401610b6f565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c5557610c55610c2c565b500190565b604081526000610c6d6040830185610ae1565b8281036020840152610c7f8185610ae1565b95945050505050565b600060018201610c9a57610c9a610c2c565b5060010190565b600082821015610cb357610cb3610c2c565b500390565b6000816000190483118215151615610cd257610cd2610c2c565b500290565b600181815b80851115610d12578160001904821115610cf857610cf8610c2c565b80851615610d0557918102915b93841c9390800290610cdc565b509250929050565b600082610d2957506001610729565b81610d3657506000610729565b8160018114610d4c5760028114610d5657610d72565b6001915050610729565b60ff841115610d6757610d67610c2c565b50506001821b610729565b5060208310610133831016604e8410600b8410161715610d95575081810a610729565b610d9f8383610cd7565b8060001904821115610db357610db3610c2c565b029392505050565b6000610dc78383610d1a565b939250505056fe60806040526000805534801561001457600080fd5b506110c2806100246000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c0b931671161005b578063c0b93167146100f4578063d4cf9af714610107578063f2e7162d14610178578063f61044da1461018b57600080fd5b806317e7d99d1461008d578063493d5fe5146100a95780635542bbae146100be578063a2f7b3a5146100d1575b600080fd5b61009660005481565b6040519081526020015b60405180910390f35b6100bc6100b7366004610b61565b61019e565b005b6100bc6100cc366004610c1b565b61027d565b6100e46100df366004610c8d565b610403565b6040516100a09493929190610cf3565b6100bc610102366004610d26565b610545565b610149610115366004610c8d565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b03918216928401929092521660608201526080016100a0565b6100bc610186366004610d76565b610707565b6100bc610199366004610e0f565b610876565b600085815260026020908152604080832033845260048101909252822054909160ff909116151590036101e457604051631eb49d6d60e11b815260040160405180910390fd5b84516101f99060018301906020880190610966565b50835161020f9060038301906020870190610966565b5060028101805460ff191684151517905561022a8683610876565b60028101546040517f684102838bf7c97f957e6c1fe2f1e0316964904f1575bf7de9a493b8fdab1f7d9161026d9189916001860191600387019160ff1690610f2f565b60405180910390a1505050505050565b600085815260026020908152604080832033845260040190915281205460ff16151590036102be57604051631eb49d6d60e11b815260040160405180910390fd5b83516000036102e0576040516345df16e360e11b815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561031357604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161033d57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b03161061036857604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517f70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f926103dc928a92909133918b91908b908b908b90610f6e565b60405180910390a160016000808282546103f69190610fe7565b9091555050505050505050565b6002602052600090815260409020805460018201805491929161042590610e56565b80601f016020809104026020016040519081016040528092919081815260200182805461045190610e56565b801561049e5780601f106104735761010080835404028352916020019161049e565b820191906000526020600020905b81548152906001019060200180831161048157829003601f168201915b5050506002840154600385018054949560ff9092169491935091506104c290610e56565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee90610e56565b801561053b5780601f106105105761010080835404028352916020019161053b565b820191906000526020600020905b81548152906001019060200180831161051e57829003601f168201915b5050505050905084565b600083815260026020908152604080832033845260040190915281205460ff161515900361058657604051631eb49d6d60e11b815260040160405180910390fd5b60005482106105a85760405163bad818f360e01b815260040160405180910390fd5b600082815260016020819052604090912001544211156105db576040516317eeb92b60e31b815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff16156106195760405163251aba6960e11b815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b0390911611156106575760405163254082dd60e11b815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b0316101561069b57604051632707879b60e11b815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e5880916106fa918591908590610fff565b60405180910390a1505050565b600354600090815260026020908152604090912084519091610730916001840191870190610966565b5060028101805460ff19168315159081179091556003546040517f344a4ee11c050981b3cfdbc9ebfb417404a057d40c7f019607da26a367b63e929261078092918891889160ff90911690611032565b60405180910390a160005b85518110156108655760018260040160008884815181106107ae576107ae61105d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f386003548783815181106108235761082361105d565b602002602001015160405161084b9291909182526001600160a01b0316602082015260400190565b60405180910390a18061085d81611073565b91505061078b565b505060038054600101905550505050565b6000828152600260205260408120905b82518110156109605760018260040160008584815181106108a9576108a961105d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f3860035484838151811061091e5761091e61105d565b60200260200101516040516109469291909182526001600160a01b0316602082015260400190565b60405180910390a18061095881611073565b915050610886565b50505050565b82805461097290610e56565b90600052602060002090601f01602090048101928261099457600085556109da565b82601f106109ad57805160ff19168380011785556109da565b828001600101855582156109da579182015b828111156109da5782518255916020019190600101906109bf565b506109e69291506109ea565b5090565b5b808211156109e657600081556001016109eb565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610a3e57610a3e6109ff565b604052919050565b600082601f830112610a5757600080fd5b813567ffffffffffffffff811115610a7157610a716109ff565b610a84601f8201601f1916602001610a15565b818152846020838601011115610a9957600080fd5b816020850160208301376000918101602001919091529392505050565b80358015158114610ac657600080fd5b919050565b600082601f830112610adc57600080fd5b8135602067ffffffffffffffff821115610af857610af86109ff565b8160051b610b07828201610a15565b9283528481018201928281019087851115610b2157600080fd5b83870192505b84831015610b565782356001600160a01b0381168114610b475760008081fd5b82529183019190830190610b27565b979650505050505050565b600080600080600060a08688031215610b7957600080fd5b85359450602086013567ffffffffffffffff80821115610b9857600080fd5b610ba489838a01610a46565b95506040880135915080821115610bba57600080fd5b610bc689838a01610a46565b9450610bd460608901610ab6565b93506080880135915080821115610bea57600080fd5b50610bf788828901610acb565b9150509295509295909350565b80356001600160801b0381168114610ac657600080fd5b600080600080600060a08688031215610c3357600080fd5b85359450602086013567ffffffffffffffff811115610c5157600080fd5b610c5d88828901610a46565b94505060408601359250610c7360608701610c04565b9150610c8160808701610c04565b90509295509295909350565b600060208284031215610c9f57600080fd5b5035919050565b6000815180845260005b81811015610ccc57602081850181015186830182015201610cb0565b81811115610cde576000602083870101525b50601f01601f19169290920160200192915050565b848152608060208201526000610d0c6080830186610ca6565b84151560408401528281036060840152610b568185610ca6565b600080600060608486031215610d3b57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115610d6057600080fd5b610d6c86828701610a46565b9150509250925092565b60008060008060808587031215610d8c57600080fd5b843567ffffffffffffffff80821115610da457600080fd5b610db088838901610acb565b95506020870135915080821115610dc657600080fd5b610dd288838901610a46565b94506040870135915080821115610de857600080fd5b50610df587828801610a46565b925050610e0460608601610ab6565b905092959194509250565b60008060408385031215610e2257600080fd5b82359150602083013567ffffffffffffffff811115610e4057600080fd5b610e4c85828601610acb565b9150509250929050565b600181811c90821680610e6a57607f821691505b602082108103610e8a57634e487b7160e01b600052602260045260246000fd5b50919050565b8054600090600181811c9080831680610eaa57607f831692505b60208084108203610ecb57634e487b7160e01b600052602260045260246000fd5b83885260208801828015610ee65760018114610ef757610f22565b60ff19871682528282019750610f22565b60008981526020902060005b87811015610f1c57815484820152908601908401610f03565b83019850505b5050505050505092915050565b848152608060208201526000610f486080830186610e90565b8281036040840152610f5a8186610e90565b915050821515606083015295945050505050565b888152602081018890526001600160a01b038716604082015261010060608201819052600090610fa083820189610ca6565b6080840197909752505060a08101939093526001600160801b0391821660c08401521660e090910152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610ffa57610ffa610fd1565b500190565b8381526001600160a01b038316602082015260606040820181905260009061102990830184610ca6565b95945050505050565b84815260806020820152600061104b6080830186610ca6565b8281036040840152610f5a8186610ca6565b634e487b7160e01b600052603260045260246000fd5b60006001820161108557611085610fd1565b506001019056fea26469706673582212209ff91a7a28fa069deea61ec420562369a941ece1ddaab34d1dfaca1c6e50320a64736f6c634300080d0033608060405234801561001057600080fd5b5060405161038038038061038083398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b610294806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063715018a61461005c5780638da5cb5b14610066578063e2a79abb1461008f578063e44f0e8c146100a2578063f2fde38b146100b5575b600080fd5b6100646100c8565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006461009d36600461022e565b6100dc565b600154610073906001600160a01b031681565b6100646100c336600461022e565b610106565b6100d0610184565b6100da60006101de565b565b6100e4610184565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61010e610184565b6001600160a01b0381166101785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610181816101de565b50565b6000546001600160a01b031633146100da5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561024057600080fd5b81356001600160a01b038116811461025757600080fd5b939250505056fea2646970667358221220de208913a3e5532e3044880e0d33eb434c58408b8d7cd0a670435d74239a560364736f6c634300080d0033a2646970667358221220eed5bb2f72bc8d0b3e07567e71a5deef834dcfc697fc1764782a47ba120b946f64736f6c634300080d0033", "sourceMap": "234:620:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;322:38:3;;251:64;322:38;;;;;-1:-1:-1;;;;;189:32:15;;;171:51;;159:2;144:18;322:38:3;;;;;;;;337:44:12;;;;;-1:-1:-1;;;;;337:44:12;;;388:464;;;:::i;:::-;;301:30;;;;;;;;-1:-1:-1;;;;;301:30:12;;;171:28:3;;;;;;;;;;;;855:14:15;;848:22;830:41;;818:2;803:18;171:28:3;690:187:15;388:464:12;470:27;;;;;;;;;;;;;;-1:-1:-1;;;470:27:12;;;:13;:27::i;:::-;565:19;;;-1:-1:-1;;;565:19:12;;;;251:64:3;;565:17:12;;:19;;;;;275:37:3;;565:19:12;;;;;;;275:37:3;251:64;565:19:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;594:23;606:10;594:11;:23::i;:::-;681:13;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;663:15:12;:31;;-1:-1:-1;;;;;;663:31:12;;-1:-1:-1;;;;;663:31:12;;;;;;;;;;;;;772:44;;799:15;;;;;;772:44;;;:::i;:::-;-1:-1:-1;;;;;189:32:15;;;171:51;;159:2;144:18;772:44:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;747:22:12;:69;;-1:-1:-1;;;;;;747:69:12;-1:-1:-1;;;;;747:69:12;;;;;;;;;;827:18;;;-1:-1:-1;;;827:18:12;;;;251:64:3;;827:16:12;;:18;;;;;-1:-1:-1;;827:18:12;;;;;;;-1:-1:-1;251:64:3;827:18:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;388:464::o;293:1053:8:-;377:15;;;390:1;377:15;;;;;;;;;352:22;;377:15;;;;;;;;;;;;;;;;;;;;352:40;;402:16;;;;;;;;;;;;;-1:-1:-1;;;402:16:8;;;:6;409:1;402:9;;;;;;;;:::i;:::-;;;;;;:16;;;;428;;;;;;;;;;;;;-1:-1:-1;;;428:16:8;;;:6;435:1;428:9;;;;;;;;:::i;:::-;;;;;;:16;;;;563:8;486:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;454:6;461:1;454:9;;;;;;;;:::i;:::-;;;;;;;;;;:134;618:14;;-1:-1:-1;;;618:14:8;;599:16;;221:64;;618:6;;:14;;625:6;;618:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;618:14:8;;;;;;;;;;;;:::i;:::-;599:33;;643:25;671:35;682:3;671:25;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;3077:30:7;;;;;;;;3083:18;;3077:30;;3036:15;;;3077:30;;;;;;;;2904:210;671:35:8;750:12;;;;;;;;;;;;-1:-1:-1;;;750:12:8;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;3077:30:7;;;;;;;3083:18;;3077:30;;;;;;;;;806:11:8;;;;;;;;;;-1:-1:-1;;;806:11:8;;;;;;-1:-1:-1;;;;;;;;;;;;;;;3077:30:7;;;;;;;3083:18;;3077:30;;;;;;865:11:8;;;;;;;;;;-1:-1:-1;;;865:11:8;;;;;;-1:-1:-1;;;;;;;;;;;;;;;3077:30:7;;;;;;;;3083:18;;3077:30;;;;;;;;;643:63:8;;-1:-1:-1;3077:30:7;;;;;906:21:8;643:63;3077:30:7;906:10:8;:21::i;:::-;:25;;930:1;906:25;:::i;:::-;889:42;;946:9;941:399;965:6;961:1;:10;941:399;;;992:25;1020:21;:4;1031:9;1020:10;:21::i;:::-;992:49;-1:-1:-1;1060:29:8;992:49;1076:12;1060:15;:29::i;:::-;1055:275;;1109:17;1129:31;:20;:4;1140:8;1129:10;:20::i;:::-;:29;:31::i;:::-;1109:51;;1226:3;1220:17;1241:1;1220:22;1216:100;;221:64;1266:9;1276:3;1281:15;:4;:13;:15::i;:::-;1266:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1216:100;1091:239;1055:275;-1:-1:-1;973:3:8;;;;:::i;:::-;;;;941:399;;;;342:1004;;;;;;;293:1053;:::o;5873:116:5:-;5938:43;;-1:-1:-1;;;;;189:32:15;;5938:43:5;;;171:51:15;5922:60:5;;144:18:15;;5938:43:5;;;-1:-1:-1;;5938:43:5;;;;;;;;;;;;;;-1:-1:-1;;;;;5938:43:5;-1:-1:-1;;;5938:43:5;;;5922:15;:60::i;:::-;5873:116;:::o;23194:364:7:-;23272:8;23292;23361:6;:11;;;23303:55;23311:4;:9;;;23322:4;:9;;;23333:6;:11;;;23346:6;:11;;;23303:7;:55::i;:::-;:69;;;;:::i;:::-;23292:80;;23382:170;23408:9;;23396;;;;:21;;23408:9;23396:21;:::i;:::-;23389:3;:28;23382:170;;23433:5;;;;:::i;:::-;;;;23530:6;:11;;;23458:69;23485:4;:9;;;23479:3;:15;;;;:::i;:::-;23466:9;;:29;;;;:::i;:::-;23497:3;23502:6;:11;;;23515:6;:11;;;23458:7;:69::i;:::-;:83;;;;:::i;:::-;23452:89;;23382:170;;;23282:276;23194:364;;;;:::o;21208:141::-;-1:-1:-1;;;;;;;;;;;;;;;;;21316:26:7;21322:4;21328:6;21336:5;21316;:26::i;12149:545::-;12264:11;;12252:9;;12232:4;;-1:-1:-1;12248:66:7;;;-1:-1:-1;12298:5:7;12291:12;;12248:66;12341:6;:11;;;12328:4;:9;;;:24;12324:66;;-1:-1:-1;12375:4:7;12368:11;;12324:66;-1:-1:-1;12457:13:7;;12514:4;12504:15;;;12498:22;12556:17;;;12550:24;12627:28;;;12599:26;;;12596:60;12149:545;;;;;:::o;5286:265::-;5346:13;5371:17;5402:4;:9;;;5391:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5391:21:7;;5371:41;;5422:11;5473:2;5468:3;5464:12;5454:22;;5488:36;5495:6;5503:4;:9;;;5514:4;:9;;;5488:6;:36::i;181:376:5:-;275:14;;131:42;448:2;435:16;;251:21;;275:14;435:16;131:42;484:5;473:68;464:77;;401:150;;181:376;:::o;15477:1453:7:-;15576:4;15603:7;15576:4;15643:20;;;15639:1251;;15696:2;15683:9;:15;15679:1201;;15718:12;15752:13;;15748:110;;15836:1;15817:14;15822:9;15817:2;:14;:::i;:::-;15812:20;;:1;:20;:::i;:::-;15806:27;;:1;:27;:::i;:::-;:31;;;;:::i;:::-;15804:34;;-1:-1:-1;15748:110:7;15941:16;;15937:27;;15876:18;16015:9;15995:17;16005:7;15995;:17;:::i;:::-;:29;;;;:::i;:::-;16101:10;;15984:40;;-1:-1:-1;16097:21:7;;16138:228;16156:10;16145:7;:21;16138:228;;16201:3;16194;:10;16190:64;;16237:17;16247:7;16237;:17;:::i;:::-;16230:24;;;;;;;;;;16190:64;16276:5;;;;:::i;:::-;;;;16341:4;16335:3;16329:10;16325:21;16314:32;;16138:228;;;16390:3;16383:10;;;;;;;;;;15679:1201;-1:-1:-1;16530:31:7;;;16481:12;;16581:285;16602:19;16612:9;16602:7;:19;:::i;:::-;16595:3;:26;16581:285;;16713:25;;;16765:16;;;16761:56;;16814:3;16807:10;;;;;;;;16761:56;16839:8;16846:1;16839:8;;:::i;:::-;;;16630:236;16623:5;;;;;:::i;:::-;;;;16581:285;;;16414:466;15679:1201;16906:17;16916:7;16906;:17;:::i;:::-;16899:24;;;;15477:1453;;;;;;;:::o;20233:504::-;-1:-1:-1;;;;;;;;;;;;;;;;;20355:8:7;20366:55;20374:4;:9;;;20385:4;:9;;;20396:6;:11;;;20409:6;:11;;;20366:7;:55::i;:::-;20444:9;;;;;;20431:10;;;:22;;;;20482:9;20355:66;;-1:-1:-1;20476:15:7;;20355:66;20476:15;:::i;:::-;20463:28;;20524:9;;20512;;;;:21;;20524:9;20512:21;:::i;:::-;20505:3;:28;20501:208;;20586:1;20574:13;;20501:208;;;20644:11;;20631:10;;:24;;20644:11;20631:24;:::i;:::-;20618:37;;:4;;:37;;;;;:::i;:::-;;;-1:-1:-1;20687:11:7;;20681:17;;:3;:17;:::i;:::-;20669:9;;;:29;20501:208;-1:-1:-1;20725:5:7;;20233:504;-1:-1:-1;;;20233:504:7:o;2088:616::-;2221:2;2214:3;:9;2208:164;;2290:10;;2277:24;;2328:10;2336:2;2284:4;2328:10;:::i;:::-;;-1:-1:-1;2352:9:7;2359:2;2352:9;;:::i;:::-;;-1:-1:-1;2225:9:7;2232:2;2225:9;;:::i;:::-;;;2208:164;;;-1:-1:-1;;2454:7:7;;2450:66;;2504:1;2492:8;2497:3;2492:2;:8;:::i;:::-;2484:17;;:3;:17;:::i;:::-;:21;;;;:::i;:::-;2477:28;;2450:66;2567:10;;2622:11;;2618:22;;2579:9;;2563:26;2666:21;;;;2653:35;;;-1:-1:-1;2088:616:7:o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;1090:127:15:-;1151:10;1146:3;1142:20;1139:1;1132:31;1182:4;1179:1;1172:15;1206:4;1203:1;1196:15;1222:127;1283:10;1278:3;1274:20;1271:1;1264:31;1314:4;1311:1;1304:15;1338:4;1335:1;1328:15;1354:258;1426:1;1436:113;1450:6;1447:1;1444:13;1436:113;;;1526:11;;;1520:18;1507:11;;;1500:39;1472:2;1465:10;1436:113;;;1567:6;1564:1;1561:13;1558:48;;;-1:-1:-1;;1602:1:15;1584:16;;1577:27;1354:258::o;1617:708::-;1966:66;1961:3;1954:79;2071:46;2067:2;2063:55;2058:2;2053:3;2049:12;2042:77;1936:3;2148:6;2142:13;2164:60;2217:6;2212:2;2207:3;2203:12;2198:2;2190:6;2186:15;2164:60;:::i;:::-;-1:-1:-1;;;2283:2:15;2243:16;;;;2275:11;;;2268:24;-1:-1:-1;2316:2:15;2308:11;;1617:708;-1:-1:-1;1617:708:15:o;2330:258::-;2372:3;2410:5;2404:12;2437:6;2432:3;2425:19;2453:63;2509:6;2502:4;2497:3;2493:14;2486:4;2479:5;2475:16;2453:63;:::i;:::-;2570:2;2549:15;-1:-1:-1;;2545:29:15;2536:39;;;;2577:4;2532:50;;2330:258;-1:-1:-1;;2330:258:15:o;2593:803::-;2755:4;2784:2;2824;2813:9;2809:18;2854:2;2843:9;2836:21;2877:6;2912;2906:13;2943:6;2935;2928:22;2981:2;2970:9;2966:18;2959:25;;3043:2;3033:6;3030:1;3026:14;3015:9;3011:30;3007:39;2993:53;;3081:2;3073:6;3069:15;3102:1;3112:255;3126:6;3123:1;3120:13;3112:255;;;3219:2;3215:7;3203:9;3195:6;3191:22;3187:36;3182:3;3175:49;3247:40;3280:6;3271;3265:13;3247:40;:::i;:::-;3237:50;-1:-1:-1;3345:12:15;;;;3310:15;;;;3148:1;3141:9;3112:255;;;-1:-1:-1;3384:6:15;;2593:803;-1:-1:-1;;;;;;;2593:803:15:o;3401:601::-;3476:5;3506:18;3547:2;3539:6;3536:14;3533:40;;;3553:18;;:::i;:::-;3628:2;3622:9;3596:2;3682:15;;-1:-1:-1;;3678:24:15;;;3704:2;3674:33;3670:42;3658:55;;;3728:18;;;3748:22;;;3725:46;3722:72;;;3774:18;;:::i;:::-;3814:10;3810:2;3803:22;3843:6;3834:15;;3873:6;3865;3858:22;3913:3;3904:6;3899:3;3895:16;3892:25;3889:45;;;3930:1;3927;3920:12;3889:45;3943:53;3989:6;3982:4;3974:6;3970:17;3965:3;3943:53;:::i;:::-;;;;3401:601;;;;;:::o;4007:457::-;4086:6;4139:2;4127:9;4118:7;4114:23;4110:32;4107:52;;;4155:1;4152;4145:12;4107:52;4188:9;4182:16;4221:18;4213:6;4210:30;4207:50;;;4253:1;4250;4243:12;4207:50;4276:22;;4329:4;4321:13;;4317:27;-1:-1:-1;4307:55:15;;4358:1;4355;4348:12;4307:55;4381:77;4450:7;4445:2;4439:9;4434:2;4430;4426:11;4381:77;:::i;4932:127::-;4993:10;4988:3;4984:20;4981:1;4974:31;5024:4;5021:1;5014:15;5048:4;5045:1;5038:15;5064:128;5104:3;5135:1;5131:6;5128:1;5125:13;5122:39;;;5141:18;;:::i;:::-;-1:-1:-1;5177:9:15;;5064:128::o;5197:383::-;5394:2;5383:9;5376:21;5357:4;5420:45;5461:2;5450:9;5446:18;5438:6;5420:45;:::i;:::-;5513:9;5505:6;5501:22;5496:2;5485:9;5481:18;5474:50;5541:33;5567:6;5559;5541:33;:::i;:::-;5533:41;5197:383;-1:-1:-1;;;;;5197:383:15:o;5585:135::-;5624:3;5645:17;;;5642:43;;5665:18;;:::i;:::-;-1:-1:-1;5712:1:15;5701:13;;5585:135::o;5725:125::-;5765:4;5793:1;5790;5787:8;5784:34;;;5798:18;;:::i;:::-;-1:-1:-1;5835:9:15;;5725:125::o;5855:168::-;5895:7;5961:1;5957;5953:6;5949:14;5946:1;5943:21;5938:1;5931:9;5924:17;5920:45;5917:71;;;5968:18;;:::i;:::-;-1:-1:-1;6008:9:15;;5855:168::o;6028:422::-;6117:1;6160:5;6117:1;6174:270;6195:7;6185:8;6182:21;6174:270;;;6254:4;6250:1;6246:6;6242:17;6236:4;6233:27;6230:53;;;6263:18;;:::i;:::-;6313:7;6303:8;6299:22;6296:55;;;6333:16;;;;6296:55;6412:22;;;;6372:15;;;;6174:270;;;6178:3;6028:422;;;;;:::o;6455:806::-;6504:5;6534:8;6524:80;;-1:-1:-1;6575:1:15;6589:5;;6524:80;6623:4;6613:76;;-1:-1:-1;6660:1:15;6674:5;;6613:76;6705:4;6723:1;6718:59;;;;6791:1;6786:130;;;;6698:218;;6718:59;6748:1;6739:10;;6762:5;;;6786:130;6823:3;6813:8;6810:17;6807:43;;;6830:18;;:::i;:::-;-1:-1:-1;;6886:1:15;6872:16;;6901:5;;6698:218;;7000:2;6990:8;6987:16;6981:3;6975:4;6972:13;6968:36;6962:2;6952:8;6949:16;6944:2;6938:4;6935:12;6931:35;6928:77;6925:159;;;-1:-1:-1;7037:19:15;;;7069:5;;6925:159;7116:34;7141:8;7135:4;7116:34;:::i;:::-;7186:6;7182:1;7178:6;7174:19;7165:7;7162:32;7159:58;;;7197:18;;:::i;:::-;7235:20;;6455:806;-1:-1:-1;;;6455:806:15:o;7266:131::-;7326:5;7355:36;7382:8;7376:4;7355:36;:::i;:::-;7346:45;7266:131;-1:-1:-1;;;7266:131:15:o", "linkReferences": {} }, @@ -79,16 +79,16 @@ }, "ast": { "absolutePath": "src/scripts/DeployPrompty.s.sol", - "id": 21056, + "id": 21204, "exportedSymbols": { "DeployPrompty": [ - 21055 + 21203 ], "Prompty": [ - 20955 + 21103 ], "PromptyManager": [ - 20992 + 21140 ], "Script": [ 1953 @@ -110,7 +110,7 @@ "src": "38:817:12", "nodes": [ { - "id": 20994, + "id": 21142, "nodeType": "PragmaDirective", "src": "38:24:12", "literals": [ @@ -121,30 +121,30 @@ ] }, { - "id": 20995, + "id": 21143, "nodeType": "ImportDirective", "src": "64:30:12", "absolutePath": "lib/solenv/lib/forge-std/src/Script.sol", "file": "forge-std/Script.sol", "nameLocation": "-1:-1:-1", - "scope": 21056, + "scope": 21204, "sourceUnit": 1954, "symbolAliases": [], "unitAlias": "" }, { - "id": 20997, + "id": 21145, "nodeType": "ImportDirective", "src": "96:41:12", "absolutePath": "lib/solenv/src/Solenv.sol", "file": "solenv/Solenv.sol", "nameLocation": "-1:-1:-1", - "scope": 21056, + "scope": 21204, "sourceUnit": 20533, "symbolAliases": [ { "foreign": { - "id": 20996, + "id": 21144, "name": "Solenv", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -158,22 +158,22 @@ "unitAlias": "" }, { - "id": 20999, + "id": 21147, "nodeType": "ImportDirective", "src": "139:39:12", "absolutePath": "src/Prompty.sol", "file": "../Prompty.sol", "nameLocation": "-1:-1:-1", - "scope": 21056, - "sourceUnit": 20956, + "scope": 21204, + "sourceUnit": 21104, "symbolAliases": [ { "foreign": { - "id": 20998, + "id": 21146, "name": "Prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20955, + "referencedDeclaration": 21103, "src": "147:7:12", "typeDescriptions": {} }, @@ -183,22 +183,22 @@ "unitAlias": "" }, { - "id": 21001, + "id": 21149, "nodeType": "ImportDirective", "src": "179:53:12", "absolutePath": "src/PromptyManager.sol", "file": "../PromptyManager.sol", "nameLocation": "-1:-1:-1", - "scope": 21056, - "sourceUnit": 20993, + "scope": 21204, + "sourceUnit": 21141, "symbolAliases": [ { "foreign": { - "id": 21000, + "id": 21148, "name": "PromptyManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20992, + "referencedDeclaration": 21140, "src": "187:14:12", "typeDescriptions": {} }, @@ -208,12 +208,12 @@ "unitAlias": "" }, { - "id": 21055, + "id": 21203, "nodeType": "ContractDefinition", "src": "234:620:12", "nodes": [ { - "id": 21006, + "id": 21154, "nodeType": "VariableDeclaration", "src": "301:30:12", "constant": false, @@ -221,34 +221,34 @@ "mutability": "mutable", "name": "promptyContract", "nameLocation": "316:15:12", - "scope": 21055, + "scope": 21203, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" }, "typeName": { - "id": 21005, + "id": 21153, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 21004, + "id": 21152, "name": "Prompty", "nodeType": "IdentifierPath", - "referencedDeclaration": 20955, + "referencedDeclaration": 21103, "src": "301:7:12" }, - "referencedDeclaration": 20955, + "referencedDeclaration": 21103, "src": "301:7:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, "visibility": "public" }, { - "id": 21009, + "id": 21157, "nodeType": "VariableDeclaration", "src": "337:44:12", "constant": false, @@ -256,38 +256,38 @@ "mutability": "mutable", "name": "promptyManagerContract", "nameLocation": "359:22:12", - "scope": 21055, + "scope": 21203, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PromptyManager_$20992", + "typeIdentifier": "t_contract$_PromptyManager_$21140", "typeString": "contract PromptyManager" }, "typeName": { - "id": 21008, + "id": 21156, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 21007, + "id": 21155, "name": "PromptyManager", "nodeType": "IdentifierPath", - "referencedDeclaration": 20992, + "referencedDeclaration": 21140, "src": "337:14:12" }, - "referencedDeclaration": 20992, + "referencedDeclaration": 21140, "src": "337:14:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_PromptyManager_$20992", + "typeIdentifier": "t_contract$_PromptyManager_$21140", "typeString": "contract PromptyManager" } }, "visibility": "public" }, { - "id": 21054, + "id": 21202, "nodeType": "FunctionDefinition", "src": "388:464:12", "body": { - "id": 21053, + "id": 21201, "nodeType": "Block", "src": "410:442:12", "statements": [ @@ -296,7 +296,7 @@ "arguments": [ { "hexValue": "2e656e762e6c6f63616c", - "id": 21015, + "id": 21163, "isConstant": false, "isLValue": false, "isPure": true, @@ -319,7 +319,7 @@ } ], "expression": { - "id": 21012, + "id": 21160, "name": "Solenv", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -330,7 +330,7 @@ "typeString": "type(library Solenv)" } }, - "id": 21014, + "id": 21162, "isConstant": false, "isLValue": false, "isPure": false, @@ -344,7 +344,7 @@ "typeString": "function (string memory)" } }, - "id": 21016, + "id": 21164, "isConstant": false, "isLValue": false, "isPure": false, @@ -359,7 +359,7 @@ "typeString": "tuple()" } }, - "id": 21017, + "id": 21165, "nodeType": "ExpressionStatement", "src": "470:27:12" }, @@ -369,7 +369,7 @@ "expression": { "argumentTypes": [], "expression": { - "id": 21018, + "id": 21166, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -380,7 +380,7 @@ "typeString": "contract Vm" } }, - "id": 21020, + "id": 21168, "isConstant": false, "isLValue": false, "isPure": false, @@ -394,7 +394,7 @@ "typeString": "function () external" } }, - "id": 21021, + "id": 21169, "isConstant": false, "isLValue": false, "isPure": false, @@ -409,7 +409,7 @@ "typeString": "tuple()" } }, - "id": 21022, + "id": 21170, "nodeType": "ExpressionStatement", "src": "565:19:12" }, @@ -418,7 +418,7 @@ "arguments": [ { "expression": { - "id": 21026, + "id": 21174, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -429,7 +429,7 @@ "typeString": "msg" } }, - "id": 21027, + "id": 21175, "isConstant": false, "isLValue": false, "isPure": false, @@ -451,7 +451,7 @@ } ], "expression": { - "id": 21023, + "id": 21171, "name": "console", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -462,7 +462,7 @@ "typeString": "type(library console)" } }, - "id": 21025, + "id": 21173, "isConstant": false, "isLValue": false, "isPure": false, @@ -476,7 +476,7 @@ "typeString": "function (address) view" } }, - "id": 21028, + "id": 21176, "isConstant": false, "isLValue": false, "isPure": false, @@ -491,26 +491,26 @@ "typeString": "tuple()" } }, - "id": 21029, + "id": 21177, "nodeType": "ExpressionStatement", "src": "594:23:12" }, { "expression": { - "id": 21035, + "id": 21183, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 21030, + "id": 21178, "name": "promptyContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21006, + "referencedDeclaration": 21154, "src": "663:15:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, @@ -520,7 +520,7 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 21033, + "id": 21181, "isConstant": false, "isLValue": false, "isPure": false, @@ -528,28 +528,28 @@ "nodeType": "NewExpression", "src": "681:11:12", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Prompty_$20955_$", + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Prompty_$21103_$", "typeString": "function () returns (contract Prompty)" }, "typeName": { - "id": 21032, + "id": 21180, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 21031, + "id": 21179, "name": "Prompty", "nodeType": "IdentifierPath", - "referencedDeclaration": 20955, + "referencedDeclaration": 21103, "src": "685:7:12" }, - "referencedDeclaration": 20955, + "referencedDeclaration": 21103, "src": "685:7:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } } }, - "id": 21034, + "id": 21182, "isConstant": false, "isLValue": false, "isPure": false, @@ -560,36 +560,36 @@ "src": "681:13:12", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, "src": "663:31:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, - "id": 21036, + "id": 21184, "nodeType": "ExpressionStatement", "src": "663:31:12" }, { "expression": { - "id": 21046, + "id": 21194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 21037, + "id": 21185, "name": "promptyManagerContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21009, + "referencedDeclaration": 21157, "src": "747:22:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_PromptyManager_$20992", + "typeIdentifier": "t_contract$_PromptyManager_$21140", "typeString": "contract PromptyManager" } }, @@ -600,14 +600,14 @@ { "arguments": [ { - "id": 21043, + "id": 21191, "name": "promptyContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21006, + "referencedDeclaration": 21154, "src": "799:15:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } } @@ -615,11 +615,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } ], - "id": 21042, + "id": 21190, "isConstant": false, "isLValue": false, "isPure": true, @@ -631,14 +631,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 21041, + "id": 21189, "name": "address", "nodeType": "ElementaryTypeName", "src": "791:7:12", "typeDescriptions": {} } }, - "id": 21044, + "id": 21192, "isConstant": false, "isLValue": false, "isPure": false, @@ -661,7 +661,7 @@ "typeString": "address" } ], - "id": 21040, + "id": 21188, "isConstant": false, "isLValue": false, "isPure": false, @@ -669,28 +669,28 @@ "nodeType": "NewExpression", "src": "772:18:12", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_PromptyManager_$20992_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_PromptyManager_$21140_$", "typeString": "function (address) returns (contract PromptyManager)" }, "typeName": { - "id": 21039, + "id": 21187, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 21038, + "id": 21186, "name": "PromptyManager", "nodeType": "IdentifierPath", - "referencedDeclaration": 20992, + "referencedDeclaration": 21140, "src": "776:14:12" }, - "referencedDeclaration": 20992, + "referencedDeclaration": 21140, "src": "776:14:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_PromptyManager_$20992", + "typeIdentifier": "t_contract$_PromptyManager_$21140", "typeString": "contract PromptyManager" } } }, - "id": 21045, + "id": 21193, "isConstant": false, "isLValue": false, "isPure": false, @@ -701,17 +701,17 @@ "src": "772:44:12", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_PromptyManager_$20992", + "typeIdentifier": "t_contract$_PromptyManager_$21140", "typeString": "contract PromptyManager" } }, "src": "747:69:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_PromptyManager_$20992", + "typeIdentifier": "t_contract$_PromptyManager_$21140", "typeString": "contract PromptyManager" } }, - "id": 21047, + "id": 21195, "nodeType": "ExpressionStatement", "src": "747:69:12" }, @@ -721,7 +721,7 @@ "expression": { "argumentTypes": [], "expression": { - "id": 21048, + "id": 21196, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -732,7 +732,7 @@ "typeString": "contract Vm" } }, - "id": 21050, + "id": 21198, "isConstant": false, "isLValue": false, "isPure": false, @@ -746,7 +746,7 @@ "typeString": "function () external" } }, - "id": 21051, + "id": 21199, "isConstant": false, "isLValue": false, "isPure": false, @@ -761,7 +761,7 @@ "typeString": "tuple()" } }, - "id": 21052, + "id": 21200, "nodeType": "ExpressionStatement", "src": "827:18:12" } @@ -774,18 +774,18 @@ "name": "run", "nameLocation": "397:3:12", "parameters": { - "id": 21010, + "id": 21158, "nodeType": "ParameterList", "parameters": [], "src": "400:2:12" }, "returnParameters": { - "id": 21011, + "id": 21159, "nodeType": "ParameterList", "parameters": [], "src": "410:0:12" }, - "scope": 21055, + "scope": 21203, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" @@ -795,31 +795,31 @@ "baseContracts": [ { "baseName": { - "id": 21002, + "id": 21150, "name": "Script", "nodeType": "IdentifierPath", "referencedDeclaration": 1953, "src": "260:6:12" }, - "id": 21003, + "id": 21151, "nodeType": "InheritanceSpecifier", "src": "260:6:12" } ], "canonicalName": "DeployPrompty", "contractDependencies": [ - 20955, - 20992 + 21103, + 21140 ], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 21055, + 21203, 1953 ], "name": "DeployPrompty", "nameLocation": "243:13:12", - "scope": 21056, + "scope": 21204, "usedErrors": [] } ], diff --git a/packages/contracts-forge/out/IPrompty.sol/IPrompty.json b/packages/contracts-forge/out/IPrompty.sol/IPrompty.json index 92fdf90..1ed9496 100644 --- a/packages/contracts-forge/out/IPrompty.sol/IPrompty.json +++ b/packages/contracts-forge/out/IPrompty.sol/IPrompty.json @@ -54,11 +54,54 @@ "internalType": "string", "name": "name", "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isVisible", + "type": "bool" } ], "name": "InstanceCreated", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isVisible", + "type": "bool" + } + ], + "name": "InstanceUpdated", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -166,12 +209,12 @@ "type": "uint256" }, { - "internalType": "address", - "name": "responder", - "type": "address" + "internalType": "address[]", + "name": "allowedResponders", + "type": "address[]" } ], - "name": "addResponder", + "name": "addResponders", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -187,6 +230,16 @@ "internalType": "string", "name": "name", "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "internalType": "bool", + "name": "isVisible", + "type": "bool" } ], "name": "createInstance", @@ -229,6 +282,11 @@ }, { "inputs": [ + { + "internalType": "uint256", + "name": "instanceId", + "type": "uint256" + }, { "internalType": "uint256", "name": "promptId", @@ -244,6 +302,39 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "instanceId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "newName", + "type": "string" + }, + { + "internalType": "string", + "name": "newDescription", + "type": "string" + }, + { + "internalType": "bool", + "name": "newIsVisible", + "type": "bool" + }, + { + "internalType": "address[]", + "name": "newAllowedResponders", + "type": "address[]" + } + ], + "name": "updateSettings", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" } ], "bytecode": { @@ -257,21 +348,22 @@ "linkReferences": {} }, "methodIdentifiers": { - "addResponder(uint256,address)": "a836afab", - "createInstance(address[],string)": "d715bc76", + "addResponders(uint256,address[])": "f61044da", + "createInstance(address[],string,string,bool)": "f2e7162d", "createPrompt(uint256,string,uint256,uint128,uint128)": "5542bbae", - "respond(uint256,string)": "d8fcb578" + "respond(uint256,uint256,string)": "c0b93167", + "updateSettings(uint256,string,string,bool,address[])": "493d5fe5" }, "ast": { "absolutePath": "src/IPrompty.sol", - "id": 20647, + "id": 20686, "exportedSymbols": { "IPrompty": [ - 20646 + 20685 ] }, "nodeType": "SourceUnit", - "src": "36:1461:9", + "src": "36:2079:9", "nodes": [ { "id": 20534, @@ -285,14 +377,14 @@ ] }, { - "id": 20646, + "id": 20685, "nodeType": "ContractDefinition", - "src": "61:1435:9", + "src": "61:2053:9", "nodes": [ { - "id": 20543, + "id": 20547, "nodeType": "StructDefinition", - "src": "86:123:9", + "src": "86:175:9", "canonicalName": "IPrompty.PromptyInstance", "members": [ { @@ -302,7 +394,7 @@ "name": "id", "nameLocation": "127:2:9", "nodeType": "VariableDeclaration", - "scope": 20543, + "scope": 20547, "src": "119:10:9", "stateVariable": false, "storageLocation": "default", @@ -329,7 +421,7 @@ "name": "name", "nameLocation": "146:4:9", "nodeType": "VariableDeclaration", - "scope": 20543, + "scope": 20547, "src": "139:11:9", "stateVariable": false, "storageLocation": "default", @@ -349,15 +441,69 @@ }, "visibility": "internal" }, + { + "constant": false, + "id": 20540, + "mutability": "mutable", + "name": "isVisible", + "nameLocation": "165:9:9", + "nodeType": "VariableDeclaration", + "scope": 20547, + "src": "160:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "160:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, { "constant": false, "id": 20542, "mutability": "mutable", + "name": "description", + "nameLocation": "191:11:9", + "nodeType": "VariableDeclaration", + "scope": 20547, + "src": "184:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20541, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "184:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20546, + "mutability": "mutable", "name": "allowedResponders", - "nameLocation": "185:17:9", + "nameLocation": "237:17:9", "nodeType": "VariableDeclaration", - "scope": 20543, - "src": "160:42:9", + "scope": 20547, + "src": "212:42:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -365,28 +511,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 20541, + "id": 20545, "keyType": { - "id": 20539, + "id": 20543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "168:7:9", + "src": "220:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "160:24:9", + "src": "212:24:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 20540, + "id": 20544, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "179:4:9", + "src": "231:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -398,24 +544,24 @@ ], "name": "PromptyInstance", "nameLocation": "93:15:9", - "scope": 20646, + "scope": 20685, "visibility": "public" }, { - "id": 20556, + "id": 20560, "nodeType": "StructDefinition", - "src": "215:169:9", + "src": "267:169:9", "canonicalName": "IPrompty.Prompt", "members": [ { "constant": false, - "id": 20545, + "id": 20549, "mutability": "mutable", "name": "startTime", - "nameLocation": "247:9:9", + "nameLocation": "299:9:9", "nodeType": "VariableDeclaration", - "scope": 20556, - "src": "239:17:9", + "scope": 20560, + "src": "291:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -423,10 +569,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20544, + "id": 20548, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "239:7:9", + "src": "291:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -436,13 +582,13 @@ }, { "constant": false, - "id": 20547, + "id": 20551, "mutability": "mutable", "name": "endTime", - "nameLocation": "274:7:9", + "nameLocation": "326:7:9", "nodeType": "VariableDeclaration", - "scope": 20556, - "src": "266:15:9", + "scope": 20560, + "src": "318:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -450,10 +596,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20546, + "id": 20550, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "266:7:9", + "src": "318:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -463,13 +609,13 @@ }, { "constant": false, - "id": 20549, + "id": 20553, "mutability": "mutable", "name": "minChars", - "nameLocation": "299:8:9", + "nameLocation": "351:8:9", "nodeType": "VariableDeclaration", - "scope": 20556, - "src": "291:16:9", + "scope": 20560, + "src": "343:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -477,10 +623,10 @@ "typeString": "uint128" }, "typeName": { - "id": 20548, + "id": 20552, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "291:7:9", + "src": "343:7:9", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -490,13 +636,13 @@ }, { "constant": false, - "id": 20551, + "id": 20555, "mutability": "mutable", "name": "maxChars", - "nameLocation": "325:8:9", + "nameLocation": "377:8:9", "nodeType": "VariableDeclaration", - "scope": 20556, - "src": "317:16:9", + "scope": 20560, + "src": "369:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -504,10 +650,10 @@ "typeString": "uint128" }, "typeName": { - "id": 20550, + "id": 20554, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "317:7:9", + "src": "369:7:9", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -517,13 +663,13 @@ }, { "constant": false, - "id": 20555, + "id": 20559, "mutability": "mutable", "name": "responses", - "nameLocation": "368:9:9", + "nameLocation": "420:9:9", "nodeType": "VariableDeclaration", - "scope": 20556, - "src": "343:34:9", + "scope": 20560, + "src": "395:34:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -531,28 +677,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 20554, + "id": 20558, "keyType": { - "id": 20552, + "id": 20556, "name": "address", "nodeType": "ElementaryTypeName", - "src": "351:7:9", + "src": "403:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "343:24:9", + "src": "395:24:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 20553, + "id": 20557, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "362:4:9", + "src": "414:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -563,32 +709,32 @@ } ], "name": "Prompt", - "nameLocation": "222:6:9", - "scope": 20646, + "nameLocation": "274:6:9", + "scope": 20685, "visibility": "public" }, { - "id": 20574, + "id": 20578, "nodeType": "EventDefinition", - "src": "390:232:9", + "src": "442:232:9", "anonymous": false, "eventSelector": "70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f", "name": "PromptCreated", - "nameLocation": "396:13:9", + "nameLocation": "448:13:9", "parameters": { - "id": 20573, + "id": 20577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 20558, + "id": 20562, "indexed": false, "mutability": "mutable", "name": "instanceId", - "nameLocation": "427:10:9", + "nameLocation": "479:10:9", "nodeType": "VariableDeclaration", - "scope": 20574, - "src": "419:18:9", + "scope": 20578, + "src": "471:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -596,10 +742,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20557, + "id": 20561, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "419:7:9", + "src": "471:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -609,14 +755,14 @@ }, { "constant": false, - "id": 20560, + "id": 20564, "indexed": false, "mutability": "mutable", "name": "promptId", - "nameLocation": "455:8:9", + "nameLocation": "507:8:9", "nodeType": "VariableDeclaration", - "scope": 20574, - "src": "447:16:9", + "scope": 20578, + "src": "499:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -624,10 +770,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20559, + "id": 20563, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "447:7:9", + "src": "499:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -637,14 +783,14 @@ }, { "constant": false, - "id": 20562, + "id": 20566, "indexed": false, "mutability": "mutable", "name": "creator", - "nameLocation": "481:7:9", + "nameLocation": "533:7:9", "nodeType": "VariableDeclaration", - "scope": 20574, - "src": "473:15:9", + "scope": 20578, + "src": "525:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -652,10 +798,10 @@ "typeString": "address" }, "typeName": { - "id": 20561, + "id": 20565, "name": "address", "nodeType": "ElementaryTypeName", - "src": "473:7:9", + "src": "525:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -666,14 +812,14 @@ }, { "constant": false, - "id": 20564, + "id": 20568, "indexed": false, "mutability": "mutable", "name": "prompt", - "nameLocation": "505:6:9", + "nameLocation": "557:6:9", "nodeType": "VariableDeclaration", - "scope": 20574, - "src": "498:13:9", + "scope": 20578, + "src": "550:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -681,10 +827,10 @@ "typeString": "string" }, "typeName": { - "id": 20563, + "id": 20567, "name": "string", "nodeType": "ElementaryTypeName", - "src": "498:6:9", + "src": "550:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -694,14 +840,14 @@ }, { "constant": false, - "id": 20566, + "id": 20570, "indexed": false, "mutability": "mutable", "name": "startTime", - "nameLocation": "529:9:9", + "nameLocation": "581:9:9", "nodeType": "VariableDeclaration", - "scope": 20574, - "src": "521:17:9", + "scope": 20578, + "src": "573:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -709,10 +855,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20565, + "id": 20569, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "521:7:9", + "src": "573:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -722,14 +868,14 @@ }, { "constant": false, - "id": 20568, + "id": 20572, "indexed": false, "mutability": "mutable", "name": "endTime", - "nameLocation": "556:7:9", + "nameLocation": "608:7:9", "nodeType": "VariableDeclaration", - "scope": 20574, - "src": "548:15:9", + "scope": 20578, + "src": "600:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -737,10 +883,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20567, + "id": 20571, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "548:7:9", + "src": "600:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -750,14 +896,14 @@ }, { "constant": false, - "id": 20570, + "id": 20574, "indexed": false, "mutability": "mutable", "name": "minChars", - "nameLocation": "581:8:9", + "nameLocation": "633:8:9", "nodeType": "VariableDeclaration", - "scope": 20574, - "src": "573:16:9", + "scope": 20578, + "src": "625:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -765,10 +911,10 @@ "typeString": "uint128" }, "typeName": { - "id": 20569, + "id": 20573, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "573:7:9", + "src": "625:7:9", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -778,14 +924,14 @@ }, { "constant": false, - "id": 20572, + "id": 20576, "indexed": false, "mutability": "mutable", "name": "maxChars", - "nameLocation": "607:8:9", + "nameLocation": "659:8:9", "nodeType": "VariableDeclaration", - "scope": 20574, - "src": "599:16:9", + "scope": 20578, + "src": "651:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -793,10 +939,10 @@ "typeString": "uint128" }, "typeName": { - "id": 20571, + "id": 20575, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "599:7:9", + "src": "651:7:9", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -805,31 +951,31 @@ "visibility": "internal" } ], - "src": "409:212:9" + "src": "461:212:9" } }, { - "id": 20582, + "id": 20586, "nodeType": "EventDefinition", - "src": "627:75:9", + "src": "680:75:9", "anonymous": false, "eventSelector": "be9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e5880", "name": "PromptResponse", - "nameLocation": "633:14:9", + "nameLocation": "686:14:9", "parameters": { - "id": 20581, + "id": 20585, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 20576, + "id": 20580, "indexed": false, "mutability": "mutable", "name": "promptId", - "nameLocation": "656:8:9", + "nameLocation": "709:8:9", "nodeType": "VariableDeclaration", - "scope": 20582, - "src": "648:16:9", + "scope": 20586, + "src": "701:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -837,10 +983,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20575, + "id": 20579, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "648:7:9", + "src": "701:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -850,14 +996,14 @@ }, { "constant": false, - "id": 20578, + "id": 20582, "indexed": false, "mutability": "mutable", "name": "responder", - "nameLocation": "674:9:9", + "nameLocation": "727:9:9", "nodeType": "VariableDeclaration", - "scope": 20582, - "src": "666:17:9", + "scope": 20586, + "src": "719:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -865,10 +1011,10 @@ "typeString": "address" }, "typeName": { - "id": 20577, + "id": 20581, "name": "address", "nodeType": "ElementaryTypeName", - "src": "666:7:9", + "src": "719:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -879,14 +1025,14 @@ }, { "constant": false, - "id": 20580, + "id": 20584, "indexed": false, "mutability": "mutable", "name": "response", - "nameLocation": "692:8:9", + "nameLocation": "745:8:9", "nodeType": "VariableDeclaration", - "scope": 20582, - "src": "685:15:9", + "scope": 20586, + "src": "738:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -894,10 +1040,10 @@ "typeString": "string" }, "typeName": { - "id": 20579, + "id": 20583, "name": "string", "nodeType": "ElementaryTypeName", - "src": "685:6:9", + "src": "738:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -906,31 +1052,31 @@ "visibility": "internal" } ], - "src": "647:54:9" + "src": "700:54:9" } }, { - "id": 20588, + "id": 20592, "nodeType": "EventDefinition", - "src": "707:60:9", + "src": "760:60:9", "anonymous": false, "eventSelector": "20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f38", "name": "ResponderAdded", - "nameLocation": "713:14:9", + "nameLocation": "766:14:9", "parameters": { - "id": 20587, + "id": 20591, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 20584, + "id": 20588, "indexed": false, "mutability": "mutable", "name": "instanceId", - "nameLocation": "736:10:9", + "nameLocation": "789:10:9", "nodeType": "VariableDeclaration", - "scope": 20588, - "src": "728:18:9", + "scope": 20592, + "src": "781:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -938,10 +1084,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20583, + "id": 20587, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "728:7:9", + "src": "781:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -951,14 +1097,14 @@ }, { "constant": false, - "id": 20586, + "id": 20590, "indexed": false, "mutability": "mutable", "name": "responder", - "nameLocation": "756:9:9", + "nameLocation": "809:9:9", "nodeType": "VariableDeclaration", - "scope": 20588, - "src": "748:17:9", + "scope": 20592, + "src": "801:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -966,10 +1112,10 @@ "typeString": "address" }, "typeName": { - "id": 20585, + "id": 20589, "name": "address", "nodeType": "ElementaryTypeName", - "src": "748:7:9", + "src": "801:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -979,31 +1125,31 @@ "visibility": "internal" } ], - "src": "727:39:9" + "src": "780:39:9" } }, { - "id": 20594, + "id": 20602, "nodeType": "EventDefinition", - "src": "772:47:9", + "src": "825:121:9", "anonymous": false, - "eventSelector": "12a37195fcb94c4dd39071e7d48a098630635e5ad29d4bcc83a4393278045b7a", + "eventSelector": "344a4ee11c050981b3cfdbc9ebfb417404a057d40c7f019607da26a367b63e92", "name": "InstanceCreated", - "nameLocation": "778:15:9", + "nameLocation": "831:15:9", "parameters": { - "id": 20593, + "id": 20601, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 20590, + "id": 20594, "indexed": false, "mutability": "mutable", "name": "id", - "nameLocation": "802:2:9", + "nameLocation": "864:2:9", "nodeType": "VariableDeclaration", - "scope": 20594, - "src": "794:10:9", + "scope": 20602, + "src": "856:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1011,10 +1157,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20589, + "id": 20593, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "794:7:9", + "src": "856:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1024,14 +1170,42 @@ }, { "constant": false, - "id": 20592, + "id": 20596, "indexed": false, "mutability": "mutable", "name": "name", - "nameLocation": "813:4:9", + "nameLocation": "883:4:9", + "nodeType": "VariableDeclaration", + "scope": 20602, + "src": "876:11:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20595, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "876:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20598, + "indexed": false, + "mutability": "mutable", + "name": "description", + "nameLocation": "904:11:9", "nodeType": "VariableDeclaration", - "scope": 20594, - "src": "806:11:9", + "scope": 20602, + "src": "897:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1039,156 +1213,312 @@ "typeString": "string" }, "typeName": { - "id": 20591, + "id": 20597, "name": "string", "nodeType": "ElementaryTypeName", - "src": "806:6:9", + "src": "897:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" + }, + { + "constant": false, + "id": 20600, + "indexed": false, + "mutability": "mutable", + "name": "isVisible", + "nameLocation": "930:9:9", + "nodeType": "VariableDeclaration", + "scope": 20602, + "src": "925:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20599, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "925:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" } ], - "src": "793:25:9" - } - }, - { - "id": 20596, - "nodeType": "ErrorDefinition", - "src": "825:22:9", - "errorSelector": "8bbe2dc6", - "name": "InvalidPrompt", - "nameLocation": "831:13:9", - "parameters": { - "id": 20595, - "nodeType": "ParameterList", - "parameters": [], - "src": "844:2:9" - } - }, - { - "id": 20598, - "nodeType": "ErrorDefinition", - "src": "852:28:9", - "errorSelector": "f9d03ecc", - "name": "InvalidPromptParams", - "nameLocation": "858:19:9", - "parameters": { - "id": 20597, - "nodeType": "ParameterList", - "parameters": [], - "src": "877:2:9" - } - }, - { - "id": 20600, - "nodeType": "ErrorDefinition", - "src": "885:24:9", - "errorSelector": "bad818f3", - "name": "InvalidPromptID", - "nameLocation": "891:15:9", - "parameters": { - "id": 20599, - "nodeType": "ParameterList", - "parameters": [], - "src": "906:2:9" + "src": "846:99:9" } }, { - "id": 20602, - "nodeType": "ErrorDefinition", - "src": "914:22:9", - "errorSelector": "bf75c958", - "name": "PromptExpired", - "nameLocation": "920:13:9", + "id": 20612, + "nodeType": "EventDefinition", + "src": "951:121:9", + "anonymous": false, + "eventSelector": "684102838bf7c97f957e6c1fe2f1e0316964904f1575bf7de9a493b8fdab1f7d", + "name": "InstanceUpdated", + "nameLocation": "957:15:9", "parameters": { - "id": 20601, + "id": 20611, "nodeType": "ParameterList", - "parameters": [], - "src": "933:2:9" - } - }, - { - "id": 20604, - "nodeType": "ErrorDefinition", - "src": "941:25:9", - "errorSelector": "4a3574d2", + "parameters": [ + { + "constant": false, + "id": 20604, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nameLocation": "990:2:9", + "nodeType": "VariableDeclaration", + "scope": 20612, + "src": "982:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "982:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20606, + "indexed": false, + "mutability": "mutable", + "name": "name", + "nameLocation": "1009:4:9", + "nodeType": "VariableDeclaration", + "scope": 20612, + "src": "1002:11:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20605, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1002:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20608, + "indexed": false, + "mutability": "mutable", + "name": "description", + "nameLocation": "1030:11:9", + "nodeType": "VariableDeclaration", + "scope": 20612, + "src": "1023:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20607, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1023:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20610, + "indexed": false, + "mutability": "mutable", + "name": "isVisible", + "nameLocation": "1056:9:9", + "nodeType": "VariableDeclaration", + "scope": 20612, + "src": "1051:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1051:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "972:99:9" + } + }, + { + "id": 20614, + "nodeType": "ErrorDefinition", + "src": "1078:22:9", + "errorSelector": "8bbe2dc6", + "name": "InvalidPrompt", + "nameLocation": "1084:13:9", + "parameters": { + "id": 20613, + "nodeType": "ParameterList", + "parameters": [], + "src": "1097:2:9" + } + }, + { + "id": 20616, + "nodeType": "ErrorDefinition", + "src": "1105:28:9", + "errorSelector": "f9d03ecc", + "name": "InvalidPromptParams", + "nameLocation": "1111:19:9", + "parameters": { + "id": 20615, + "nodeType": "ParameterList", + "parameters": [], + "src": "1130:2:9" + } + }, + { + "id": 20618, + "nodeType": "ErrorDefinition", + "src": "1138:24:9", + "errorSelector": "bad818f3", + "name": "InvalidPromptID", + "nameLocation": "1144:15:9", + "parameters": { + "id": 20617, + "nodeType": "ParameterList", + "parameters": [], + "src": "1159:2:9" + } + }, + { + "id": 20620, + "nodeType": "ErrorDefinition", + "src": "1167:22:9", + "errorSelector": "bf75c958", + "name": "PromptExpired", + "nameLocation": "1173:13:9", + "parameters": { + "id": 20619, + "nodeType": "ParameterList", + "parameters": [], + "src": "1186:2:9" + } + }, + { + "id": 20622, + "nodeType": "ErrorDefinition", + "src": "1194:25:9", + "errorSelector": "4a3574d2", "name": "AlreadyResponded", - "nameLocation": "947:16:9", + "nameLocation": "1200:16:9", "parameters": { - "id": 20603, + "id": 20621, "nodeType": "ParameterList", "parameters": [], - "src": "963:2:9" + "src": "1216:2:9" } }, { - "id": 20606, + "id": 20624, "nodeType": "ErrorDefinition", - "src": "971:25:9", + "src": "1224:25:9", "errorSelector": "4a8105ba", "name": "ResponseTooShort", - "nameLocation": "977:16:9", + "nameLocation": "1230:16:9", "parameters": { - "id": 20605, + "id": 20623, "nodeType": "ParameterList", "parameters": [], - "src": "993:2:9" + "src": "1246:2:9" } }, { - "id": 20608, + "id": 20626, "nodeType": "ErrorDefinition", - "src": "1001:24:9", + "src": "1254:24:9", "errorSelector": "4e0f0f36", "name": "ResponseTooLong", - "nameLocation": "1007:15:9", + "nameLocation": "1260:15:9", "parameters": { - "id": 20607, + "id": 20625, "nodeType": "ParameterList", "parameters": [], - "src": "1022:2:9" + "src": "1275:2:9" } }, { - "id": 20610, + "id": 20628, "nodeType": "ErrorDefinition", - "src": "1030:19:9", + "src": "1283:19:9", "errorSelector": "3d693ada", "name": "NotAllowed", - "nameLocation": "1036:10:9", + "nameLocation": "1289:10:9", "parameters": { - "id": 20609, + "id": 20627, "nodeType": "ParameterList", "parameters": [], - "src": "1046:2:9" + "src": "1299:2:9" } }, { - "id": 20618, + "id": 20640, "nodeType": "FunctionDefinition", - "src": "1055:111:9", - "functionSelector": "d715bc76", + "src": "1308:170:9", + "functionSelector": "f2e7162d", "implemented": false, "kind": "function", "modifiers": [], "name": "createInstance", - "nameLocation": "1064:14:9", + "nameLocation": "1317:14:9", "parameters": { - "id": 20616, + "id": 20638, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 20613, + "id": 20631, "mutability": "mutable", "name": "allowedResponders", - "nameLocation": "1105:17:9", + "nameLocation": "1358:17:9", "nodeType": "VariableDeclaration", - "scope": 20618, - "src": "1088:34:9", + "scope": 20640, + "src": "1341:34:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1197,19 +1527,19 @@ }, "typeName": { "baseType": { - "id": 20611, + "id": 20629, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1088:7:9", + "src": "1341:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 20612, + "id": 20630, "nodeType": "ArrayTypeName", - "src": "1088:9:9", + "src": "1341:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1219,13 +1549,13 @@ }, { "constant": false, - "id": 20615, + "id": 20633, "mutability": "mutable", "name": "name", - "nameLocation": "1146:4:9", + "nameLocation": "1399:4:9", "nodeType": "VariableDeclaration", - "scope": 20618, - "src": "1132:18:9", + "scope": 20640, + "src": "1385:18:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1233,54 +1563,108 @@ "typeString": "string" }, "typeName": { - "id": 20614, + "id": 20632, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1385:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20635, + "mutability": "mutable", + "name": "description", + "nameLocation": "1427:11:9", + "nodeType": "VariableDeclaration", + "scope": 20640, + "src": "1413:25:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20634, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1132:6:9", + "src": "1413:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" + }, + { + "constant": false, + "id": 20637, + "mutability": "mutable", + "name": "isVisible", + "nameLocation": "1453:9:9", + "nodeType": "VariableDeclaration", + "scope": 20640, + "src": "1448:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20636, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1448:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" } ], - "src": "1078:78:9" + "src": "1331:137:9" }, "returnParameters": { - "id": 20617, + "id": 20639, "nodeType": "ParameterList", "parameters": [], - "src": "1165:0:9" + "src": "1477:0:9" }, - "scope": 20646, + "scope": 20685, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 20625, + "id": 20654, "nodeType": "FunctionDefinition", - "src": "1172:70:9", - "functionSelector": "a836afab", + "src": "1484:210:9", + "functionSelector": "493d5fe5", "implemented": false, "kind": "function", "modifiers": [], - "name": "addResponder", - "nameLocation": "1181:12:9", + "name": "updateSettings", + "nameLocation": "1493:14:9", "parameters": { - "id": 20623, + "id": 20652, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 20620, + "id": 20642, "mutability": "mutable", - "name": "instanceID", - "nameLocation": "1202:10:9", + "name": "instanceId", + "nameLocation": "1525:10:9", "nodeType": "VariableDeclaration", - "scope": 20625, - "src": "1194:18:9", + "scope": 20654, + "src": "1517:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1288,10 +1672,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20619, + "id": 20641, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1194:7:9", + "src": "1517:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1301,69 +1685,251 @@ }, { "constant": false, - "id": 20622, + "id": 20644, "mutability": "mutable", - "name": "responder", - "nameLocation": "1222:9:9", + "name": "newName", + "nameLocation": "1559:7:9", "nodeType": "VariableDeclaration", - "scope": 20625, - "src": "1214:17:9", + "scope": 20654, + "src": "1545:21:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20643, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1545:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20646, + "mutability": "mutable", + "name": "newDescription", + "nameLocation": "1590:14:9", + "nodeType": "VariableDeclaration", + "scope": 20654, + "src": "1576:28:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20645, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1576:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20648, + "mutability": "mutable", + "name": "newIsVisible", + "nameLocation": "1619:12:9", + "nodeType": "VariableDeclaration", + "scope": 20654, + "src": "1614:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" }, "typeName": { - "id": 20621, - "name": "address", + "id": 20647, + "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1214:7:9", - "stateMutability": "nonpayable", + "src": "1614:4:9", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20651, + "mutability": "mutable", + "name": "newAllowedResponders", + "nameLocation": "1658:20:9", + "nodeType": "VariableDeclaration", + "scope": 20654, + "src": "1641:37:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 20649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1641:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 20650, + "nodeType": "ArrayTypeName", + "src": "1641:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "1507:177:9" + }, + "returnParameters": { + "id": 20653, + "nodeType": "ParameterList", + "parameters": [], + "src": "1693:0:9" + }, + "scope": 20685, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 20662, + "nodeType": "FunctionDefinition", + "src": "1700:110:9", + "functionSelector": "f61044da", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "addResponders", + "nameLocation": "1709:13:9", + "parameters": { + "id": 20660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20656, + "mutability": "mutable", + "name": "instanceID", + "nameLocation": "1740:10:9", + "nodeType": "VariableDeclaration", + "scope": 20662, + "src": "1732:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1732:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20659, + "mutability": "mutable", + "name": "allowedResponders", + "nameLocation": "1777:17:9", + "nodeType": "VariableDeclaration", + "scope": 20662, + "src": "1760:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 20657, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1760:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 20658, + "nodeType": "ArrayTypeName", + "src": "1760:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "visibility": "internal" } ], - "src": "1193:39:9" + "src": "1722:78:9" }, "returnParameters": { - "id": 20624, + "id": 20661, "nodeType": "ParameterList", "parameters": [], - "src": "1241:0:9" + "src": "1809:0:9" }, - "scope": 20646, + "scope": 20685, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 20638, + "id": 20675, "nodeType": "FunctionDefinition", - "src": "1248:172:9", + "src": "1816:172:9", "functionSelector": "5542bbae", "implemented": false, "kind": "function", "modifiers": [], "name": "createPrompt", - "nameLocation": "1257:12:9", + "nameLocation": "1825:12:9", "parameters": { - "id": 20636, + "id": 20673, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 20627, + "id": 20664, "mutability": "mutable", "name": "instanceId", - "nameLocation": "1287:10:9", + "nameLocation": "1855:10:9", "nodeType": "VariableDeclaration", - "scope": 20638, - "src": "1279:18:9", + "scope": 20675, + "src": "1847:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1371,10 +1937,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20626, + "id": 20663, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1279:7:9", + "src": "1847:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1384,13 +1950,13 @@ }, { "constant": false, - "id": 20629, + "id": 20666, "mutability": "mutable", "name": "prompt", - "nameLocation": "1321:6:9", + "nameLocation": "1889:6:9", "nodeType": "VariableDeclaration", - "scope": 20638, - "src": "1307:20:9", + "scope": 20675, + "src": "1875:20:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1398,10 +1964,10 @@ "typeString": "string" }, "typeName": { - "id": 20628, + "id": 20665, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1307:6:9", + "src": "1875:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1411,13 +1977,13 @@ }, { "constant": false, - "id": 20631, + "id": 20668, "mutability": "mutable", "name": "endTime", - "nameLocation": "1345:7:9", + "nameLocation": "1913:7:9", "nodeType": "VariableDeclaration", - "scope": 20638, - "src": "1337:15:9", + "scope": 20675, + "src": "1905:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1425,10 +1991,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20630, + "id": 20667, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1337:7:9", + "src": "1905:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1438,13 +2004,13 @@ }, { "constant": false, - "id": 20633, + "id": 20670, "mutability": "mutable", "name": "minChars", - "nameLocation": "1370:8:9", + "nameLocation": "1938:8:9", "nodeType": "VariableDeclaration", - "scope": 20638, - "src": "1362:16:9", + "scope": 20675, + "src": "1930:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1452,10 +2018,10 @@ "typeString": "uint128" }, "typeName": { - "id": 20632, + "id": 20669, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1362:7:9", + "src": "1930:7:9", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -1465,13 +2031,13 @@ }, { "constant": false, - "id": 20635, + "id": 20672, "mutability": "mutable", "name": "maxChars", - "nameLocation": "1396:8:9", + "nameLocation": "1964:8:9", "nodeType": "VariableDeclaration", - "scope": 20638, - "src": "1388:16:9", + "scope": 20675, + "src": "1956:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1479,10 +2045,10 @@ "typeString": "uint128" }, "typeName": { - "id": 20634, + "id": 20671, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1388:7:9", + "src": "1956:7:9", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -1491,42 +2057,69 @@ "visibility": "internal" } ], - "src": "1269:141:9" + "src": "1837:141:9" }, "returnParameters": { - "id": 20637, + "id": 20674, "nodeType": "ParameterList", "parameters": [], - "src": "1419:0:9" + "src": "1987:0:9" }, - "scope": 20646, + "scope": 20685, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 20645, + "id": 20684, "nodeType": "FunctionDefinition", - "src": "1426:68:9", - "functionSelector": "d8fcb578", + "src": "1994:118:9", + "functionSelector": "c0b93167", "implemented": false, "kind": "function", "modifiers": [], "name": "respond", - "nameLocation": "1435:7:9", + "nameLocation": "2003:7:9", "parameters": { - "id": 20643, + "id": 20682, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 20640, + "id": 20677, + "mutability": "mutable", + "name": "instanceId", + "nameLocation": "2028:10:9", + "nodeType": "VariableDeclaration", + "scope": 20684, + "src": "2020:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2020:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20679, "mutability": "mutable", "name": "promptId", - "nameLocation": "1451:8:9", + "nameLocation": "2056:8:9", "nodeType": "VariableDeclaration", - "scope": 20645, - "src": "1443:16:9", + "scope": 20684, + "src": "2048:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1534,10 +2127,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20639, + "id": 20678, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1443:7:9", + "src": "2048:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1547,13 +2140,13 @@ }, { "constant": false, - "id": 20642, + "id": 20681, "mutability": "mutable", "name": "response", - "nameLocation": "1475:8:9", + "nameLocation": "2088:8:9", "nodeType": "VariableDeclaration", - "scope": 20645, - "src": "1461:22:9", + "scope": 20684, + "src": "2074:22:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1561,10 +2154,10 @@ "typeString": "string" }, "typeName": { - "id": 20641, + "id": 20680, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1461:6:9", + "src": "2074:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1573,15 +2166,15 @@ "visibility": "internal" } ], - "src": "1442:42:9" + "src": "2010:92:9" }, "returnParameters": { - "id": 20644, + "id": 20683, "nodeType": "ParameterList", "parameters": [], - "src": "1493:0:9" + "src": "2111:0:9" }, - "scope": 20646, + "scope": 20685, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -1594,20 +2187,20 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 20646 + 20685 ], "name": "IPrompty", "nameLocation": "71:8:9", - "scope": 20647, + "scope": 20686, "usedErrors": [ - 20596, - 20598, - 20600, - 20602, - 20604, - 20606, - 20608, - 20610 + 20614, + 20616, + 20618, + 20620, + 20622, + 20624, + 20626, + 20628 ] } ], diff --git a/packages/contracts-forge/out/Prompty.sol/Prompty.json b/packages/contracts-forge/out/Prompty.sol/Prompty.json index 5edbade..00c7df9 100644 --- a/packages/contracts-forge/out/Prompty.sol/Prompty.json +++ b/packages/contracts-forge/out/Prompty.sol/Prompty.json @@ -54,11 +54,54 @@ "internalType": "string", "name": "name", "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isVisible", + "type": "bool" } ], "name": "InstanceCreated", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isVisible", + "type": "bool" + } + ], + "name": "InstanceUpdated", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -166,12 +209,12 @@ "type": "uint256" }, { - "internalType": "address", - "name": "responder", - "type": "address" + "internalType": "address[]", + "name": "allowedResponders", + "type": "address[]" } ], - "name": "addResponder", + "name": "addResponders", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -187,6 +230,16 @@ "internalType": "string", "name": "name", "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "internalType": "bool", + "name": "isVisible", + "type": "bool" } ], "name": "createInstance", @@ -259,6 +312,16 @@ "internalType": "string", "name": "name", "type": "string" + }, + { + "internalType": "bool", + "name": "isVisible", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" } ], "stateMutability": "view", @@ -300,6 +363,11 @@ }, { "inputs": [ + { + "internalType": "uint256", + "name": "instanceId", + "type": "uint256" + }, { "internalType": "uint256", "name": "promptId", @@ -315,43 +383,77 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "instanceId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "newName", + "type": "string" + }, + { + "internalType": "string", + "name": "newDescription", + "type": "string" + }, + { + "internalType": "bool", + "name": "newIsVisible", + "type": "bool" + }, + { + "internalType": "address[]", + "name": "newAllowedResponders", + "type": "address[]" + } + ], + "name": "updateSettings", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" } ], "bytecode": { - "object": "0x60806040526000805534801561001457600080fd5b50610c24806100246000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a836afab1161005b578063a836afab146100d4578063d4cf9af7146100e7578063d715bc7614610158578063d8fcb5781461016b57600080fd5b806317e7d99d146100825780635542bbae1461009e578063a2f7b3a5146100b3575b600080fd5b61008b60005481565b6040519081526020015b60405180910390f35b6100b16100ac366004610879565b61017e565b005b6100c66100c13660046108eb565b610303565b604051610095929190610951565b6100b16100e2366004610989565b6103a8565b6101296100f53660046108eb565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b0391821692840192909252166060820152608001610095565b6100b16101663660046109b5565b61043c565b6100b1610179366004610a84565b61058d565b6000858152600260208181526040808420338552909201905281205460ff16151590036101be57604051631eb49d6d60e11b815260040160405180910390fd5b83516000036101e0576040516345df16e360e11b815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561021357604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161023d57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b03161061026857604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517f70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f926102dc928a92909133918b91908b908b908b90610ac1565b60405180910390a160016000808282546102f69190610b3a565b9091555050505050505050565b6002602052600090815260409020805460018201805491929161032590610b52565b80601f016020809104026020016040519081016040528092919081815260200182805461035190610b52565b801561039e5780601f106103735761010080835404028352916020019161039e565b820191906000526020600020905b81548152906001019060200180831161038157829003601f168201915b5050505050905082565b60008281526002602081815260408084206001600160a01b03861685529283019091529091205460ff16610437576001600160a01b0382166000818152600283016020908152604091829020805460ff191660011790558151868152908101929092527f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f38910160405180910390a15b505050565b60035460009081526002602090815260409091208251909161046591600184019185019061070d565b507f12a37195fcb94c4dd39071e7d48a098630635e5ad29d4bcc83a4393278045b7a60035483604051610499929190610951565b60405180910390a160005b835181101561057e5760018260020160008684815181106104c7576104c7610b8c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f3860035485838151811061053c5761053c610b8c565b60200260200101516040516105649291909182526001600160a01b0316602082015260400190565b60405180910390a18061057681610ba2565b9150506104a4565b50506003805460010190555050565b60005482106105af5760405163bad818f360e01b815260040160405180910390fd5b600082815260016020819052604090912001544211156105e2576040516317eeb92b60e31b815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff16156106205760405163251aba6960e11b815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b03909116111561065e5760405163254082dd60e11b815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b031610156106a257604051632707879b60e11b815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e588091610701918591908590610bbb565b60405180910390a15050565b82805461071990610b52565b90600052602060002090601f01602090048101928261073b5760008555610781565b82601f1061075457805160ff1916838001178555610781565b82800160010185558215610781579182015b82811115610781578251825591602001919060010190610766565b5061078d929150610791565b5090565b5b8082111561078d5760008155600101610792565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156107e5576107e56107a6565b604052919050565b600082601f8301126107fe57600080fd5b813567ffffffffffffffff811115610818576108186107a6565b61082b601f8201601f19166020016107bc565b81815284602083860101111561084057600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160801b038116811461087457600080fd5b919050565b600080600080600060a0868803121561089157600080fd5b85359450602086013567ffffffffffffffff8111156108af57600080fd5b6108bb888289016107ed565b945050604086013592506108d16060870161085d565b91506108df6080870161085d565b90509295509295909350565b6000602082840312156108fd57600080fd5b5035919050565b6000815180845260005b8181101561092a5760208185018101518683018201520161090e565b8181111561093c576000602083870101525b50601f01601f19169290920160200192915050565b82815260406020820152600061096a6040830184610904565b949350505050565b80356001600160a01b038116811461087457600080fd5b6000806040838503121561099c57600080fd5b823591506109ac60208401610972565b90509250929050565b600080604083850312156109c857600080fd5b823567ffffffffffffffff808211156109e057600080fd5b818501915085601f8301126109f457600080fd5b8135602082821115610a0857610a086107a6565b8160051b610a178282016107bc565b928352848101820192828101908a851115610a3157600080fd5b958301955b84871015610a5657610a4787610972565b82529583019590830190610a36565b9750505086013592505080821115610a6d57600080fd5b50610a7a858286016107ed565b9150509250929050565b60008060408385031215610a9757600080fd5b82359150602083013567ffffffffffffffff811115610ab557600080fd5b610a7a858286016107ed565b888152602081018890526001600160a01b038716604082015261010060608201819052600090610af383820189610904565b6080840197909752505060a08101939093526001600160801b0391821660c08401521660e090910152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610b4d57610b4d610b24565b500190565b600181811c90821680610b6657607f821691505b602082108103610b8657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060018201610bb457610bb4610b24565b5060010190565b8381526001600160a01b0383166020820152606060408201819052600090610be590830184610904565b9594505050505056fea26469706673582212207bef5fdd5ea939eaefc8e29369db06401634e0717757f06d0bb0646768bcfef064736f6c634300080d0033", - "sourceMap": "104:2738:10:-:0;;;172:1;139:34;;104:2738;;;;;;;;;;;;;;;;", + "object": "0x60806040526000805534801561001457600080fd5b506110c2806100246000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c0b931671161005b578063c0b93167146100f4578063d4cf9af714610107578063f2e7162d14610178578063f61044da1461018b57600080fd5b806317e7d99d1461008d578063493d5fe5146100a95780635542bbae146100be578063a2f7b3a5146100d1575b600080fd5b61009660005481565b6040519081526020015b60405180910390f35b6100bc6100b7366004610b61565b61019e565b005b6100bc6100cc366004610c1b565b61027d565b6100e46100df366004610c8d565b610403565b6040516100a09493929190610cf3565b6100bc610102366004610d26565b610545565b610149610115366004610c8d565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b03918216928401929092521660608201526080016100a0565b6100bc610186366004610d76565b610707565b6100bc610199366004610e0f565b610876565b600085815260026020908152604080832033845260048101909252822054909160ff909116151590036101e457604051631eb49d6d60e11b815260040160405180910390fd5b84516101f99060018301906020880190610966565b50835161020f9060038301906020870190610966565b5060028101805460ff191684151517905561022a8683610876565b60028101546040517f684102838bf7c97f957e6c1fe2f1e0316964904f1575bf7de9a493b8fdab1f7d9161026d9189916001860191600387019160ff1690610f2f565b60405180910390a1505050505050565b600085815260026020908152604080832033845260040190915281205460ff16151590036102be57604051631eb49d6d60e11b815260040160405180910390fd5b83516000036102e0576040516345df16e360e11b815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561031357604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161033d57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b03161061036857604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517f70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f926103dc928a92909133918b91908b908b908b90610f6e565b60405180910390a160016000808282546103f69190610fe7565b9091555050505050505050565b6002602052600090815260409020805460018201805491929161042590610e56565b80601f016020809104026020016040519081016040528092919081815260200182805461045190610e56565b801561049e5780601f106104735761010080835404028352916020019161049e565b820191906000526020600020905b81548152906001019060200180831161048157829003601f168201915b5050506002840154600385018054949560ff9092169491935091506104c290610e56565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee90610e56565b801561053b5780601f106105105761010080835404028352916020019161053b565b820191906000526020600020905b81548152906001019060200180831161051e57829003601f168201915b5050505050905084565b600083815260026020908152604080832033845260040190915281205460ff161515900361058657604051631eb49d6d60e11b815260040160405180910390fd5b60005482106105a85760405163bad818f360e01b815260040160405180910390fd5b600082815260016020819052604090912001544211156105db576040516317eeb92b60e31b815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff16156106195760405163251aba6960e11b815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b0390911611156106575760405163254082dd60e11b815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b0316101561069b57604051632707879b60e11b815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e5880916106fa918591908590610fff565b60405180910390a1505050565b600354600090815260026020908152604090912084519091610730916001840191870190610966565b5060028101805460ff19168315159081179091556003546040517f344a4ee11c050981b3cfdbc9ebfb417404a057d40c7f019607da26a367b63e929261078092918891889160ff90911690611032565b60405180910390a160005b85518110156108655760018260040160008884815181106107ae576107ae61105d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f386003548783815181106108235761082361105d565b602002602001015160405161084b9291909182526001600160a01b0316602082015260400190565b60405180910390a18061085d81611073565b91505061078b565b505060038054600101905550505050565b6000828152600260205260408120905b82518110156109605760018260040160008584815181106108a9576108a961105d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f3860035484838151811061091e5761091e61105d565b60200260200101516040516109469291909182526001600160a01b0316602082015260400190565b60405180910390a18061095881611073565b915050610886565b50505050565b82805461097290610e56565b90600052602060002090601f01602090048101928261099457600085556109da565b82601f106109ad57805160ff19168380011785556109da565b828001600101855582156109da579182015b828111156109da5782518255916020019190600101906109bf565b506109e69291506109ea565b5090565b5b808211156109e657600081556001016109eb565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610a3e57610a3e6109ff565b604052919050565b600082601f830112610a5757600080fd5b813567ffffffffffffffff811115610a7157610a716109ff565b610a84601f8201601f1916602001610a15565b818152846020838601011115610a9957600080fd5b816020850160208301376000918101602001919091529392505050565b80358015158114610ac657600080fd5b919050565b600082601f830112610adc57600080fd5b8135602067ffffffffffffffff821115610af857610af86109ff565b8160051b610b07828201610a15565b9283528481018201928281019087851115610b2157600080fd5b83870192505b84831015610b565782356001600160a01b0381168114610b475760008081fd5b82529183019190830190610b27565b979650505050505050565b600080600080600060a08688031215610b7957600080fd5b85359450602086013567ffffffffffffffff80821115610b9857600080fd5b610ba489838a01610a46565b95506040880135915080821115610bba57600080fd5b610bc689838a01610a46565b9450610bd460608901610ab6565b93506080880135915080821115610bea57600080fd5b50610bf788828901610acb565b9150509295509295909350565b80356001600160801b0381168114610ac657600080fd5b600080600080600060a08688031215610c3357600080fd5b85359450602086013567ffffffffffffffff811115610c5157600080fd5b610c5d88828901610a46565b94505060408601359250610c7360608701610c04565b9150610c8160808701610c04565b90509295509295909350565b600060208284031215610c9f57600080fd5b5035919050565b6000815180845260005b81811015610ccc57602081850181015186830182015201610cb0565b81811115610cde576000602083870101525b50601f01601f19169290920160200192915050565b848152608060208201526000610d0c6080830186610ca6565b84151560408401528281036060840152610b568185610ca6565b600080600060608486031215610d3b57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115610d6057600080fd5b610d6c86828701610a46565b9150509250925092565b60008060008060808587031215610d8c57600080fd5b843567ffffffffffffffff80821115610da457600080fd5b610db088838901610acb565b95506020870135915080821115610dc657600080fd5b610dd288838901610a46565b94506040870135915080821115610de857600080fd5b50610df587828801610a46565b925050610e0460608601610ab6565b905092959194509250565b60008060408385031215610e2257600080fd5b82359150602083013567ffffffffffffffff811115610e4057600080fd5b610e4c85828601610acb565b9150509250929050565b600181811c90821680610e6a57607f821691505b602082108103610e8a57634e487b7160e01b600052602260045260246000fd5b50919050565b8054600090600181811c9080831680610eaa57607f831692505b60208084108203610ecb57634e487b7160e01b600052602260045260246000fd5b83885260208801828015610ee65760018114610ef757610f22565b60ff19871682528282019750610f22565b60008981526020902060005b87811015610f1c57815484820152908601908401610f03565b83019850505b5050505050505092915050565b848152608060208201526000610f486080830186610e90565b8281036040840152610f5a8186610e90565b915050821515606083015295945050505050565b888152602081018890526001600160a01b038716604082015261010060608201819052600090610fa083820189610ca6565b6080840197909752505060a08101939093526001600160801b0391821660c08401521660e090910152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610ffa57610ffa610fd1565b500190565b8381526001600160a01b038316602082015260606040820181905260009061102990830184610ca6565b95945050505050565b84815260806020820152600061104b6080830186610ca6565b8281036040840152610f5a8186610ca6565b634e487b7160e01b600052603260045260246000fd5b60006001820161108557611085610fd1565b506001019056fea26469706673582212209ff91a7a28fa069deea61ec420562369a941ece1ddaab34d1dfaca1c6e50320a64736f6c634300080d0033", + "sourceMap": "104:3920:10:-:0;;;172:1;139:34;;104:3920;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a836afab1161005b578063a836afab146100d4578063d4cf9af7146100e7578063d715bc7614610158578063d8fcb5781461016b57600080fd5b806317e7d99d146100825780635542bbae1461009e578063a2f7b3a5146100b3575b600080fd5b61008b60005481565b6040519081526020015b60405180910390f35b6100b16100ac366004610879565b61017e565b005b6100c66100c13660046108eb565b610303565b604051610095929190610951565b6100b16100e2366004610989565b6103a8565b6101296100f53660046108eb565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b0391821692840192909252166060820152608001610095565b6100b16101663660046109b5565b61043c565b6100b1610179366004610a84565b61058d565b6000858152600260208181526040808420338552909201905281205460ff16151590036101be57604051631eb49d6d60e11b815260040160405180910390fd5b83516000036101e0576040516345df16e360e11b815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561021357604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161023d57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b03161061026857604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517f70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f926102dc928a92909133918b91908b908b908b90610ac1565b60405180910390a160016000808282546102f69190610b3a565b9091555050505050505050565b6002602052600090815260409020805460018201805491929161032590610b52565b80601f016020809104026020016040519081016040528092919081815260200182805461035190610b52565b801561039e5780601f106103735761010080835404028352916020019161039e565b820191906000526020600020905b81548152906001019060200180831161038157829003601f168201915b5050505050905082565b60008281526002602081815260408084206001600160a01b03861685529283019091529091205460ff16610437576001600160a01b0382166000818152600283016020908152604091829020805460ff191660011790558151868152908101929092527f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f38910160405180910390a15b505050565b60035460009081526002602090815260409091208251909161046591600184019185019061070d565b507f12a37195fcb94c4dd39071e7d48a098630635e5ad29d4bcc83a4393278045b7a60035483604051610499929190610951565b60405180910390a160005b835181101561057e5760018260020160008684815181106104c7576104c7610b8c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f3860035485838151811061053c5761053c610b8c565b60200260200101516040516105649291909182526001600160a01b0316602082015260400190565b60405180910390a18061057681610ba2565b9150506104a4565b50506003805460010190555050565b60005482106105af5760405163bad818f360e01b815260040160405180910390fd5b600082815260016020819052604090912001544211156105e2576040516317eeb92b60e31b815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff16156106205760405163251aba6960e11b815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b03909116111561065e5760405163254082dd60e11b815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b031610156106a257604051632707879b60e11b815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e588091610701918591908590610bbb565b60405180910390a15050565b82805461071990610b52565b90600052602060002090601f01602090048101928261073b5760008555610781565b82601f1061075457805160ff1916838001178555610781565b82800160010185558215610781579182015b82811115610781578251825591602001919060010190610766565b5061078d929150610791565b5090565b5b8082111561078d5760008155600101610792565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156107e5576107e56107a6565b604052919050565b600082601f8301126107fe57600080fd5b813567ffffffffffffffff811115610818576108186107a6565b61082b601f8201601f19166020016107bc565b81815284602083860101111561084057600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160801b038116811461087457600080fd5b919050565b600080600080600060a0868803121561089157600080fd5b85359450602086013567ffffffffffffffff8111156108af57600080fd5b6108bb888289016107ed565b945050604086013592506108d16060870161085d565b91506108df6080870161085d565b90509295509295909350565b6000602082840312156108fd57600080fd5b5035919050565b6000815180845260005b8181101561092a5760208185018101518683018201520161090e565b8181111561093c576000602083870101525b50601f01601f19169290920160200192915050565b82815260406020820152600061096a6040830184610904565b949350505050565b80356001600160a01b038116811461087457600080fd5b6000806040838503121561099c57600080fd5b823591506109ac60208401610972565b90509250929050565b600080604083850312156109c857600080fd5b823567ffffffffffffffff808211156109e057600080fd5b818501915085601f8301126109f457600080fd5b8135602082821115610a0857610a086107a6565b8160051b610a178282016107bc565b928352848101820192828101908a851115610a3157600080fd5b958301955b84871015610a5657610a4787610972565b82529583019590830190610a36565b9750505086013592505080821115610a6d57600080fd5b50610a7a858286016107ed565b9150509250929050565b60008060408385031215610a9757600080fd5b82359150602083013567ffffffffffffffff811115610ab557600080fd5b610a7a858286016107ed565b888152602081018890526001600160a01b038716604082015261010060608201819052600090610af383820189610904565b6080840197909752505060a08101939093526001600160801b0391821660c08401521660e090910152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610b4d57610b4d610b24565b500190565b600181811c90821680610b6657607f821691505b602082108103610b8657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060018201610bb457610bb4610b24565b5060010190565b8381526001600160a01b0383166020820152606060408201819052600090610be590830184610904565b9594505050505056fea26469706673582212207bef5fdd5ea939eaefc8e29369db06401634e0717757f06d0bb0646768bcfef064736f6c634300080d0033", - "sourceMap": "104:2738:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;139:34;;;;;;;;;160:25:15;;;148:2;133:18;139:34:10;;;;;;;;1188:984;;;;;;:::i;:::-;;:::i;:::-;;227:52;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;862:320::-;;;;;;:::i;:::-;;:::i;179:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;179:41:10;;;;-1:-1:-1;;;179:41:10;;;;;;;;;3576:25:15;;;3632:2;3617:18;;3610:34;;;;-1:-1:-1;;;;;3733:15:15;;;3713:18;;;3706:43;;;;3785:15;3780:2;3765:18;;3758:43;3563:3;3548:19;179:41:10;3345:462:15;313:543:10;;;;;;:::i;:::-;;:::i;2178:626::-;;;;;;:::i;:::-;;:::i;1188:984::-;1372:21;;;;:9;:21;;;;;;;;1412:10;1372:51;;:39;;;:51;;;;;;;:60;;;;1368:110;;1455:12;;-1:-1:-1;;;1455:12:10;;;;;;;;;;;1368:110;1498:6;1492:20;1516:1;1492:25;1488:53;;1526:15;;-1:-1:-1;;;1526:15:10;;;;;;;;;;;1488:53;1566:8;-1:-1:-1;;;;;1555:19:10;:8;-1:-1:-1;;;;;1555:19:10;;1551:53;;;1583:21;;-1:-1:-1;;;1583:21:10;;;;;;;;;;;1551:53;1630:1;1618:8;-1:-1:-1;;;;;1618:13:10;;1614:47;;1640:21;;-1:-1:-1;;;1640:21:10;;;;;;;;;;;1614:47;1687:4;1675:8;-1:-1:-1;;;;;1675:16:10;;1671:50;;1700:21;;-1:-1:-1;;;1700:21:10;;;;;;;;;;;1671:50;1732:16;1759:15;;1751:24;;:7;:24;;;;;;;;1799:15;1785:29;;;1824:9;;;:19;;;-1:-1:-1;;;;;1884:21:10;;;-1:-1:-1;;;1884:21:10;1853;;;1884;1853:10;;;1884:21;1972:15;;1921:214;;;;;;1948:10;;1972:15;;2001:10;;2025:6;;1799:15;1836:7;;1866:8;;1897;;1921:214;:::i;:::-;;;;;;;;2164:1;2145:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;1188:984:10:o;227:52::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;862:320::-;940:32;975:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;1012:37:10;;;;:26;;;:37;;;;;;;;;1007:169;;-1:-1:-1;;;;;1065:37:10;;;;;;:26;;;:37;;;;;;;;;:44;;-1:-1:-1;;1065:44:10;1105:4;1065:44;;;1128:37;;7035:25:15;;;7076:18;;;7069:60;;;;1128:37:10;;7008:18:15;1128:37:10;;;;;;;1007:169;930:252;862:320;;:::o;313:543::-;477:13;;432:32;467:24;;;:9;:24;;;;;;;;502:20;;467:24;;502:20;;:13;;;;:20;;;;:::i;:::-;;538:36;554:13;;569:4;538:36;;;;;;;:::i;:::-;;;;;;;;590:9;585:205;609:17;:24;605:1;:28;585:205;;;705:4;654:8;:26;;:48;681:17;699:1;681:20;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;654:48:10;-1:-1:-1;;;;;654:48:10;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;728:51;743:13;;758:17;776:1;758:20;;;;;;;;:::i;:::-;;;;;;;728:51;;;;;;7035:25:15;;;-1:-1:-1;;;;;7096:32:15;7091:2;7076:18;;7069:60;7023:2;7008:18;;6861:274;728:51:10;;;;;;;;635:3;;;;:::i;:::-;;;;585:205;;;-1:-1:-1;;824:13:10;:15;;;;;;-1:-1:-1;;313:543:10:o;2178:626::-;2270:15;;2258:8;:27;2254:57;;2294:17;;-1:-1:-1;;;2294:17:10;;;;;;;;;;;2254:57;2325:17;;;;:7;:17;;;;;;;;:25;;2353:15;-1:-1:-1;2321:71:10;;;2377:15;;-1:-1:-1;;;2377:15:10;;;;;;;;;;;2321:71;2406:17;;;;:7;:17;;;;;;;;2434:10;2406:39;;:27;;:39;;;;;;;;2402:70;;;2454:18;;-1:-1:-1;;;2454:18:10;;;;;;;;;;;2402:70;2511:17;;;;:7;:17;;;;;:26;;;2486:22;;-1:-1:-1;;;;;2511:26:10;;;-1:-1:-1;2482:94:10;;;2558:18;;-1:-1:-1;;;2558:18:10;;;;;;;;;;;2482:94;2615:17;;;;:7;:17;;;;;:26;;;2590:22;;-1:-1:-1;;;2615:26:10;;;-1:-1:-1;;;;;2615:26:10;-1:-1:-1;2586:93:10;;;2662:17;;-1:-1:-1;;;2662:17:10;;;;;;;;;;;2586:93;2690:17;;;;2732:4;2690:17;;;;;;;;2718:10;2690:39;;;:27;;;;:39;;;;;;;:46;;-1:-1:-1;;2690:46:10;;;;;;;2751;;;;;;2698:8;;2718:10;2788:8;;2751:46;:::i;:::-;;;;;;;;2178:626;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;196:127:15;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:275;399:2;393:9;464:2;445:13;;-1:-1:-1;;441:27:15;429:40;;499:18;484:34;;520:22;;;481:62;478:88;;;546:18;;:::i;:::-;582:2;575:22;328:275;;-1:-1:-1;328:275:15:o;608:531::-;651:5;704:3;697:4;689:6;685:17;681:27;671:55;;722:1;719;712:12;671:55;758:6;745:20;784:18;780:2;777:26;774:52;;;806:18;;:::i;:::-;850:55;893:2;874:13;;-1:-1:-1;;870:27:15;899:4;866:38;850:55;:::i;:::-;930:2;921:7;914:19;976:3;969:4;964:2;956:6;952:15;948:26;945:35;942:55;;;993:1;990;983:12;942:55;1058:2;1051:4;1043:6;1039:17;1032:4;1023:7;1019:18;1006:55;1106:1;1081:16;;;1099:4;1077:27;1070:38;;;;1085:7;608:531;-1:-1:-1;;;608:531:15:o;1144:188::-;1212:20;;-1:-1:-1;;;;;1261:46:15;;1251:57;;1241:85;;1322:1;1319;1312:12;1241:85;1144:188;;;:::o;1337:608::-;1442:6;1450;1458;1466;1474;1527:3;1515:9;1506:7;1502:23;1498:33;1495:53;;;1544:1;1541;1534:12;1495:53;1580:9;1567:23;1557:33;;1641:2;1630:9;1626:18;1613:32;1668:18;1660:6;1657:30;1654:50;;;1700:1;1697;1690:12;1654:50;1723;1765:7;1756:6;1745:9;1741:22;1723:50;:::i;:::-;1713:60;;;1820:2;1809:9;1805:18;1792:32;1782:42;;1843:38;1877:2;1866:9;1862:18;1843:38;:::i;:::-;1833:48;;1900:39;1934:3;1923:9;1919:19;1900:39;:::i;:::-;1890:49;;1337:608;;;;;;;;:::o;1950:180::-;2009:6;2062:2;2050:9;2041:7;2037:23;2033:32;2030:52;;;2078:1;2075;2068:12;2030:52;-1:-1:-1;2101:23:15;;1950:180;-1:-1:-1;1950:180:15:o;2135:472::-;2177:3;2215:5;2209:12;2242:6;2237:3;2230:19;2267:1;2277:162;2291:6;2288:1;2285:13;2277:162;;;2353:4;2409:13;;;2405:22;;2399:29;2381:11;;;2377:20;;2370:59;2306:12;2277:162;;;2457:6;2454:1;2451:13;2448:87;;;2523:1;2516:4;2507:6;2502:3;2498:16;2494:27;2487:38;2448:87;-1:-1:-1;2589:2:15;2568:15;-1:-1:-1;;2564:29:15;2555:39;;;;2596:4;2551:50;;2135:472;-1:-1:-1;;2135:472:15:o;2612:291::-;2789:6;2778:9;2771:25;2832:2;2827;2816:9;2812:18;2805:30;2752:4;2852:45;2893:2;2882:9;2878:18;2870:6;2852:45;:::i;:::-;2844:53;2612:291;-1:-1:-1;;;;2612:291:15:o;2908:173::-;2976:20;;-1:-1:-1;;;;;3025:31:15;;3015:42;;3005:70;;3071:1;3068;3061:12;3086:254;3154:6;3162;3215:2;3203:9;3194:7;3190:23;3186:32;3183:52;;;3231:1;3228;3221:12;3183:52;3267:9;3254:23;3244:33;;3296:38;3330:2;3319:9;3315:18;3296:38;:::i;:::-;3286:48;;3086:254;;;;;:::o;3812:1154::-;3915:6;3923;3976:2;3964:9;3955:7;3951:23;3947:32;3944:52;;;3992:1;3989;3982:12;3944:52;4032:9;4019:23;4061:18;4102:2;4094:6;4091:14;4088:34;;;4118:1;4115;4108:12;4088:34;4156:6;4145:9;4141:22;4131:32;;4201:7;4194:4;4190:2;4186:13;4182:27;4172:55;;4223:1;4220;4213:12;4172:55;4259:2;4246:16;4281:4;4304:2;4300;4297:10;4294:36;;;4310:18;;:::i;:::-;4356:2;4353:1;4349:10;4379:28;4403:2;4399;4395:11;4379:28;:::i;:::-;4441:15;;;4511:11;;;4507:20;;;4472:12;;;;4539:19;;;4536:39;;;4571:1;4568;4561:12;4536:39;4595:11;;;;4615:148;4631:6;4626:3;4623:15;4615:148;;;4697:23;4716:3;4697:23;:::i;:::-;4685:36;;4648:12;;;;4741;;;;4615:148;;;4782:5;-1:-1:-1;;;4825:18:15;;4812:32;;-1:-1:-1;;4856:16:15;;;4853:36;;;4885:1;4882;4875:12;4853:36;;4908:52;4952:7;4941:8;4930:9;4926:24;4908:52;:::i;:::-;4898:62;;;3812:1154;;;;;:::o;4971:390::-;5049:6;5057;5110:2;5098:9;5089:7;5085:23;5081:32;5078:52;;;5126:1;5123;5116:12;5078:52;5162:9;5149:23;5139:33;;5223:2;5212:9;5208:18;5195:32;5250:18;5242:6;5239:30;5236:50;;;5282:1;5279;5272:12;5236:50;5305;5347:7;5338:6;5327:9;5323:22;5305:50;:::i;5366:840::-;5715:25;;;5771:2;5756:18;;5749:34;;;-1:-1:-1;;;;;5819:32:15;;5814:2;5799:18;;5792:60;5703:3;5883:2;5868:18;;5861:30;;;5674:4;;5908:45;5934:18;;;5926:6;5908:45;:::i;:::-;5984:3;5969:19;;5962:35;;;;-1:-1:-1;;6028:3:15;6013:19;;6006:35;;;;-1:-1:-1;;;;;6131:15:15;;;6125:3;6110:19;;6103:44;6184:15;6178:3;6163:19;;;6156:44;5900:53;5366:840;-1:-1:-1;;;;5366:840:15:o;6211:127::-;6272:10;6267:3;6263:20;6260:1;6253:31;6303:4;6300:1;6293:15;6327:4;6324:1;6317:15;6343:128;6383:3;6414:1;6410:6;6407:1;6404:13;6401:39;;;6420:18;;:::i;:::-;-1:-1:-1;6456:9:15;;6343:128::o;6476:380::-;6555:1;6551:12;;;;6598;;;6619:61;;6673:4;6665:6;6661:17;6651:27;;6619:61;6726:2;6718:6;6715:14;6695:18;6692:38;6689:161;;6772:10;6767:3;6763:20;6760:1;6753:31;6807:4;6804:1;6797:15;6835:4;6832:1;6825:15;6689:161;;6476:380;;;:::o;7140:127::-;7201:10;7196:3;7192:20;7189:1;7182:31;7232:4;7229:1;7222:15;7256:4;7253:1;7246:15;7272:135;7311:3;7332:17;;;7329:43;;7352:18;;:::i;:::-;-1:-1:-1;7399:1:15;7388:13;;7272:135::o;7412:388::-;7599:25;;;-1:-1:-1;;;;;7660:32:15;;7655:2;7640:18;;7633:60;7729:2;7724;7709:18;;7702:30;;;-1:-1:-1;;7749:45:15;;7775:18;;7767:6;7749:45;:::i;:::-;7741:53;7412:388;-1:-1:-1;;;;;7412:388:15:o", + "object": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063c0b931671161005b578063c0b93167146100f4578063d4cf9af714610107578063f2e7162d14610178578063f61044da1461018b57600080fd5b806317e7d99d1461008d578063493d5fe5146100a95780635542bbae146100be578063a2f7b3a5146100d1575b600080fd5b61009660005481565b6040519081526020015b60405180910390f35b6100bc6100b7366004610b61565b61019e565b005b6100bc6100cc366004610c1b565b61027d565b6100e46100df366004610c8d565b610403565b6040516100a09493929190610cf3565b6100bc610102366004610d26565b610545565b610149610115366004610c8d565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b03918216928401929092521660608201526080016100a0565b6100bc610186366004610d76565b610707565b6100bc610199366004610e0f565b610876565b600085815260026020908152604080832033845260048101909252822054909160ff909116151590036101e457604051631eb49d6d60e11b815260040160405180910390fd5b84516101f99060018301906020880190610966565b50835161020f9060038301906020870190610966565b5060028101805460ff191684151517905561022a8683610876565b60028101546040517f684102838bf7c97f957e6c1fe2f1e0316964904f1575bf7de9a493b8fdab1f7d9161026d9189916001860191600387019160ff1690610f2f565b60405180910390a1505050505050565b600085815260026020908152604080832033845260040190915281205460ff16151590036102be57604051631eb49d6d60e11b815260040160405180910390fd5b83516000036102e0576040516345df16e360e11b815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561031357604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161033d57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b03161061036857604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517f70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f926103dc928a92909133918b91908b908b908b90610f6e565b60405180910390a160016000808282546103f69190610fe7565b9091555050505050505050565b6002602052600090815260409020805460018201805491929161042590610e56565b80601f016020809104026020016040519081016040528092919081815260200182805461045190610e56565b801561049e5780601f106104735761010080835404028352916020019161049e565b820191906000526020600020905b81548152906001019060200180831161048157829003601f168201915b5050506002840154600385018054949560ff9092169491935091506104c290610e56565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee90610e56565b801561053b5780601f106105105761010080835404028352916020019161053b565b820191906000526020600020905b81548152906001019060200180831161051e57829003601f168201915b5050505050905084565b600083815260026020908152604080832033845260040190915281205460ff161515900361058657604051631eb49d6d60e11b815260040160405180910390fd5b60005482106105a85760405163bad818f360e01b815260040160405180910390fd5b600082815260016020819052604090912001544211156105db576040516317eeb92b60e31b815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff16156106195760405163251aba6960e11b815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b0390911611156106575760405163254082dd60e11b815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b0316101561069b57604051632707879b60e11b815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e5880916106fa918591908590610fff565b60405180910390a1505050565b600354600090815260026020908152604090912084519091610730916001840191870190610966565b5060028101805460ff19168315159081179091556003546040517f344a4ee11c050981b3cfdbc9ebfb417404a057d40c7f019607da26a367b63e929261078092918891889160ff90911690611032565b60405180910390a160005b85518110156108655760018260040160008884815181106107ae576107ae61105d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f386003548783815181106108235761082361105d565b602002602001015160405161084b9291909182526001600160a01b0316602082015260400190565b60405180910390a18061085d81611073565b91505061078b565b505060038054600101905550505050565b6000828152600260205260408120905b82518110156109605760018260040160008584815181106108a9576108a961105d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f3860035484838151811061091e5761091e61105d565b60200260200101516040516109469291909182526001600160a01b0316602082015260400190565b60405180910390a18061095881611073565b915050610886565b50505050565b82805461097290610e56565b90600052602060002090601f01602090048101928261099457600085556109da565b82601f106109ad57805160ff19168380011785556109da565b828001600101855582156109da579182015b828111156109da5782518255916020019190600101906109bf565b506109e69291506109ea565b5090565b5b808211156109e657600081556001016109eb565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610a3e57610a3e6109ff565b604052919050565b600082601f830112610a5757600080fd5b813567ffffffffffffffff811115610a7157610a716109ff565b610a84601f8201601f1916602001610a15565b818152846020838601011115610a9957600080fd5b816020850160208301376000918101602001919091529392505050565b80358015158114610ac657600080fd5b919050565b600082601f830112610adc57600080fd5b8135602067ffffffffffffffff821115610af857610af86109ff565b8160051b610b07828201610a15565b9283528481018201928281019087851115610b2157600080fd5b83870192505b84831015610b565782356001600160a01b0381168114610b475760008081fd5b82529183019190830190610b27565b979650505050505050565b600080600080600060a08688031215610b7957600080fd5b85359450602086013567ffffffffffffffff80821115610b9857600080fd5b610ba489838a01610a46565b95506040880135915080821115610bba57600080fd5b610bc689838a01610a46565b9450610bd460608901610ab6565b93506080880135915080821115610bea57600080fd5b50610bf788828901610acb565b9150509295509295909350565b80356001600160801b0381168114610ac657600080fd5b600080600080600060a08688031215610c3357600080fd5b85359450602086013567ffffffffffffffff811115610c5157600080fd5b610c5d88828901610a46565b94505060408601359250610c7360608701610c04565b9150610c8160808701610c04565b90509295509295909350565b600060208284031215610c9f57600080fd5b5035919050565b6000815180845260005b81811015610ccc57602081850181015186830182015201610cb0565b81811115610cde576000602083870101525b50601f01601f19169290920160200192915050565b848152608060208201526000610d0c6080830186610ca6565b84151560408401528281036060840152610b568185610ca6565b600080600060608486031215610d3b57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115610d6057600080fd5b610d6c86828701610a46565b9150509250925092565b60008060008060808587031215610d8c57600080fd5b843567ffffffffffffffff80821115610da457600080fd5b610db088838901610acb565b95506020870135915080821115610dc657600080fd5b610dd288838901610a46565b94506040870135915080821115610de857600080fd5b50610df587828801610a46565b925050610e0460608601610ab6565b905092959194509250565b60008060408385031215610e2257600080fd5b82359150602083013567ffffffffffffffff811115610e4057600080fd5b610e4c85828601610acb565b9150509250929050565b600181811c90821680610e6a57607f821691505b602082108103610e8a57634e487b7160e01b600052602260045260246000fd5b50919050565b8054600090600181811c9080831680610eaa57607f831692505b60208084108203610ecb57634e487b7160e01b600052602260045260246000fd5b83885260208801828015610ee65760018114610ef757610f22565b60ff19871682528282019750610f22565b60008981526020902060005b87811015610f1c57815484820152908601908401610f03565b83019850505b5050505050505092915050565b848152608060208201526000610f486080830186610e90565b8281036040840152610f5a8186610e90565b915050821515606083015295945050505050565b888152602081018890526001600160a01b038716604082015261010060608201819052600090610fa083820189610ca6565b6080840197909752505060a08101939093526001600160801b0391821660c08401521660e090910152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610ffa57610ffa610fd1565b500190565b8381526001600160a01b038316602082015260606040820181905260009061102990830184610ca6565b95945050505050565b84815260806020820152600061104b6080830186610ca6565b8281036040840152610f5a8186610ca6565b634e487b7160e01b600052603260045260246000fd5b60006001820161108557611085610fd1565b506001019056fea26469706673582212209ff91a7a28fa069deea61ec420562369a941ece1ddaab34d1dfaca1c6e50320a64736f6c634300080d0033", + "sourceMap": "104:3920:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;139:34;;;;;;;;;160:25:15;;;148:2;133:18;139:34:10;;;;;;;;1454:740;;;;;;:::i;:::-;;:::i;:::-;;2200:984;;;;;;:::i;:::-;;:::i;227:52::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;3190:796::-;;;;;;:::i;:::-;;:::i;179:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;179:41:10;;;;-1:-1:-1;;;179:41:10;;;;;;;;;5981:25:15;;;6037:2;6022:18;;6015:34;;;;-1:-1:-1;;;;;6138:15:15;;;6118:18;;;6111:43;;;;6190:15;6185:2;6170:18;;6163:43;5968:3;5953:19;179:41:10;5750:462:15;313:733:10;;;;;;:::i;:::-;;:::i;1052:396::-;;;;;;:::i;:::-;;:::i;1454:740::-;1672:32;1707:21;;;:9;:21;;;;;;;;1783:10;1743:51;;:39;;;:51;;;;;;1707:21;;1743:51;;;;:60;;;;1739:110;;1826:12;;-1:-1:-1;;;1826:12:10;;;;;;;;;;;1739:110;1859:23;;;;:13;;;;:23;;;;;:::i;:::-;-1:-1:-1;1892:37:10;;;;:20;;;;:37;;;;;:::i;:::-;-1:-1:-1;1939:18:10;;;:33;;-1:-1:-1;;1939:33:10;;;;;;;1982:47;1996:10;2008:20;1982:13;:47::i;:::-;2159:18;;;;2045:142;;;;;;2074:10;;2098:13;;;;2125:20;;;;2159:18;;;2045:142;:::i;:::-;;;;;;;;1662:532;1454:740;;;;;:::o;2200:984::-;2384:21;;;;:9;:21;;;;;;;;2424:10;2384:51;;:39;;:51;;;;;;;;:60;;;;2380:110;;2467:12;;-1:-1:-1;;;2467:12:10;;;;;;;;;;;2380:110;2510:6;2504:20;2528:1;2504:25;2500:53;;2538:15;;-1:-1:-1;;;2538:15:10;;;;;;;;;;;2500:53;2578:8;-1:-1:-1;;;;;2567:19:10;:8;-1:-1:-1;;;;;2567:19:10;;2563:53;;;2595:21;;-1:-1:-1;;;2595:21:10;;;;;;;;;;;2563:53;2642:1;2630:8;-1:-1:-1;;;;;2630:13:10;;2626:47;;2652:21;;-1:-1:-1;;;2652:21:10;;;;;;;;;;;2626:47;2699:4;2687:8;-1:-1:-1;;;;;2687:16:10;;2683:50;;2712:21;;-1:-1:-1;;;2712:21:10;;;;;;;;;;;2683:50;2744:16;2771:15;;2763:24;;:7;:24;;;;;;;;2811:15;2797:29;;;2836:9;;;:19;;;-1:-1:-1;;;;;2896:21:10;;;-1:-1:-1;;;2896:21:10;2865;;;2896;2865:10;;;2896:21;2984:15;;2933:214;;;;;;2960:10;;2984:15;;3013:10;;3037:6;;2811:15;2848:7;;2878:8;;2909;;2933:214;:::i;:::-;;;;;;;;3176:1;3157:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;2200:984:10:o;227:52::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;227:52:10;;;;;;;;;;;;;;;;;;-1:-1:-1;227:52:10;-1:-1:-1;227:52:10;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3190:796::-;3320:21;;;;:9;:21;;;;;;;;3360:10;3320:51;;:39;;:51;;;;;;;;:60;;;;3316:110;;3403:12;;-1:-1:-1;;;3403:12:10;;;;;;;;;;;3316:110;3452:15;;3440:8;:27;3436:57;;3476:17;;-1:-1:-1;;;3476:17:10;;;;;;;;;;;3436:57;3507:17;;;;:7;:17;;;;;;;;:25;;3535:15;-1:-1:-1;3503:71:10;;;3559:15;;-1:-1:-1;;;3559:15:10;;;;;;;;;;;3503:71;3588:17;;;;:7;:17;;;;;;;;3616:10;3588:39;;:27;;:39;;;;;;;;3584:70;;;3636:18;;-1:-1:-1;;;3636:18:10;;;;;;;;;;;3584:70;3693:17;;;;:7;:17;;;;;:26;;;3668:22;;-1:-1:-1;;;;;3693:26:10;;;-1:-1:-1;3664:94:10;;;3740:18;;-1:-1:-1;;;3740:18:10;;;;;;;;;;;3664:94;3797:17;;;;:7;:17;;;;;:26;;;3772:22;;-1:-1:-1;;;3797:26:10;;;-1:-1:-1;;;;;3797:26:10;-1:-1:-1;3768:93:10;;;3844:17;;-1:-1:-1;;;3844:17:10;;;;;;;;;;;3768:93;3872:17;;;;3914:4;3872:17;;;;;;;;3900:10;3872:39;;;:27;;;;:39;;;;;;;:46;;-1:-1:-1;;3872:46:10;;;;;;;3933;;;;;;3880:8;;3900:10;3970:8;;3933:46;:::i;:::-;;;;;;;;3190:796;;;:::o;313:733::-;536:13;;491:32;526:24;;;:9;:24;;;;;;;;561:20;;526:24;;561:20;;:13;;;;:20;;;;:::i;:::-;-1:-1:-1;591:18:10;;;:30;;-1:-1:-1;;591:30:10;;;;;;;;;;666:13;;637:127;;;;;;666:13;693:4;;711:11;;591:30;736:18;;;;637:127;:::i;:::-;;;;;;;;780:9;775:205;799:17;:24;795:1;:28;775:205;;;895:4;844:8;:26;;:48;871:17;889:1;871:20;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;844:48:10;-1:-1:-1;;;;;844:48:10;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;918:51;933:13;;948:17;966:1;948:20;;;;;;;;:::i;:::-;;;;;;;918:51;;;;;;11942:25:15;;;-1:-1:-1;;;;;12003:32:15;11998:2;11983:18;;11976:60;11930:2;11915:18;;11768:274;918:51:10;;;;;;;;825:3;;;;:::i;:::-;;;;775:205;;;-1:-1:-1;;1014:13:10;:15;;;;;;-1:-1:-1;;;;313:733:10:o;1052:396::-;1170:32;1205:21;;;:9;:21;;;;;;1237:205;1261:17;:24;1257:1;:28;1237:205;;;1357:4;1306:8;:26;;:48;1333:17;1351:1;1333:20;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1306:48:10;-1:-1:-1;;;;;1306:48:10;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;1380:51;1395:13;;1410:17;1428:1;1410:20;;;;;;;;:::i;:::-;;;;;;;1380:51;;;;;;11942:25:15;;;-1:-1:-1;;;;;12003:32:15;11998:2;11983:18;;11976:60;11930:2;11915:18;;11768:274;1380:51:10;;;;;;;;1287:3;;;;:::i;:::-;;;;1237:205;;;;1160:288;1052:396;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;196:127:15;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:275;399:2;393:9;464:2;445:13;;-1:-1:-1;;441:27:15;429:40;;499:18;484:34;;520:22;;;481:62;478:88;;;546:18;;:::i;:::-;582:2;575:22;328:275;;-1:-1:-1;328:275:15:o;608:531::-;651:5;704:3;697:4;689:6;685:17;681:27;671:55;;722:1;719;712:12;671:55;758:6;745:20;784:18;780:2;777:26;774:52;;;806:18;;:::i;:::-;850:55;893:2;874:13;;-1:-1:-1;;870:27:15;899:4;866:38;850:55;:::i;:::-;930:2;921:7;914:19;976:3;969:4;964:2;956:6;952:15;948:26;945:35;942:55;;;993:1;990;983:12;942:55;1058:2;1051:4;1043:6;1039:17;1032:4;1023:7;1019:18;1006:55;1106:1;1081:16;;;1099:4;1077:27;1070:38;;;;1085:7;608:531;-1:-1:-1;;;608:531:15:o;1144:160::-;1209:20;;1265:13;;1258:21;1248:32;;1238:60;;1294:1;1291;1284:12;1238:60;1144:160;;;:::o;1309:896::-;1363:5;1416:3;1409:4;1401:6;1397:17;1393:27;1383:55;;1434:1;1431;1424:12;1383:55;1470:6;1457:20;1496:4;1519:18;1515:2;1512:26;1509:52;;;1541:18;;:::i;:::-;1587:2;1584:1;1580:10;1610:28;1634:2;1630;1626:11;1610:28;:::i;:::-;1672:15;;;1742;;;1738:24;;;1703:12;;;;1774:15;;;1771:35;;;1802:1;1799;1792:12;1771:35;1838:2;1830:6;1826:15;1815:26;;1850:326;1866:6;1861:3;1858:15;1850:326;;;1933:17;;-1:-1:-1;;;;;1983:31:15;;1973:42;;1963:140;;2057:1;2086:2;2082;2075:14;1963:140;2116:18;;1883:12;;;;2154;;;;1850:326;;;2194:5;1309:896;-1:-1:-1;;;;;;;1309:896:15:o;2210:907::-;2347:6;2355;2363;2371;2379;2432:3;2420:9;2411:7;2407:23;2403:33;2400:53;;;2449:1;2446;2439:12;2400:53;2485:9;2472:23;2462:33;;2546:2;2535:9;2531:18;2518:32;2569:18;2610:2;2602:6;2599:14;2596:34;;;2626:1;2623;2616:12;2596:34;2649:50;2691:7;2682:6;2671:9;2667:22;2649:50;:::i;:::-;2639:60;;2752:2;2741:9;2737:18;2724:32;2708:48;;2781:2;2771:8;2768:16;2765:36;;;2797:1;2794;2787:12;2765:36;2820:52;2864:7;2853:8;2842:9;2838:24;2820:52;:::i;:::-;2810:62;;2891:35;2922:2;2911:9;2907:18;2891:35;:::i;:::-;2881:45;;2979:3;2968:9;2964:19;2951:33;2935:49;;3009:2;2999:8;2996:16;2993:36;;;3025:1;3022;3015:12;2993:36;;3048:63;3103:7;3092:8;3081:9;3077:24;3048:63;:::i;:::-;3038:73;;;2210:907;;;;;;;;:::o;3122:188::-;3190:20;;-1:-1:-1;;;;;3239:46:15;;3229:57;;3219:85;;3300:1;3297;3290:12;3315:608;3420:6;3428;3436;3444;3452;3505:3;3493:9;3484:7;3480:23;3476:33;3473:53;;;3522:1;3519;3512:12;3473:53;3558:9;3545:23;3535:33;;3619:2;3608:9;3604:18;3591:32;3646:18;3638:6;3635:30;3632:50;;;3678:1;3675;3668:12;3632:50;3701;3743:7;3734:6;3723:9;3719:22;3701:50;:::i;:::-;3691:60;;;3798:2;3787:9;3783:18;3770:32;3760:42;;3821:38;3855:2;3844:9;3840:18;3821:38;:::i;:::-;3811:48;;3878:39;3912:3;3901:9;3897:19;3878:39;:::i;:::-;3868:49;;3315:608;;;;;;;;:::o;3928:180::-;3987:6;4040:2;4028:9;4019:7;4015:23;4011:32;4008:52;;;4056:1;4053;4046:12;4008:52;-1:-1:-1;4079:23:15;;3928:180;-1:-1:-1;3928:180:15:o;4268:472::-;4310:3;4348:5;4342:12;4375:6;4370:3;4363:19;4400:1;4410:162;4424:6;4421:1;4418:13;4410:162;;;4486:4;4542:13;;;4538:22;;4532:29;4514:11;;;4510:20;;4503:59;4439:12;4410:162;;;4590:6;4587:1;4584:13;4581:87;;;4656:1;4649:4;4640:6;4635:3;4631:16;4627:27;4620:38;4581:87;-1:-1:-1;4722:2:15;4701:15;-1:-1:-1;;4697:29:15;4688:39;;;;4729:4;4684:50;;4268:472;-1:-1:-1;;4268:472:15:o;4745:537::-;4992:6;4981:9;4974:25;5035:3;5030:2;5019:9;5015:18;5008:31;4955:4;5062:46;5103:3;5092:9;5088:19;5080:6;5062:46;:::i;:::-;5158:6;5151:14;5144:22;5139:2;5128:9;5124:18;5117:50;5215:9;5207:6;5203:22;5198:2;5187:9;5183:18;5176:50;5243:33;5269:6;5261;5243:33;:::i;5287:458::-;5374:6;5382;5390;5443:2;5431:9;5422:7;5418:23;5414:32;5411:52;;;5459:1;5456;5449:12;5411:52;5495:9;5482:23;5472:33;;5552:2;5541:9;5537:18;5524:32;5514:42;;5607:2;5596:9;5592:18;5579:32;5634:18;5626:6;5623:30;5620:50;;;5666:1;5663;5656:12;5620:50;5689;5731:7;5722:6;5711:9;5707:22;5689:50;:::i;:::-;5679:60;;;5287:458;;;;;:::o;6217:838::-;6345:6;6353;6361;6369;6422:3;6410:9;6401:7;6397:23;6393:33;6390:53;;;6439:1;6436;6429:12;6390:53;6479:9;6466:23;6508:18;6549:2;6541:6;6538:14;6535:34;;;6565:1;6562;6555:12;6535:34;6588:61;6641:7;6632:6;6621:9;6617:22;6588:61;:::i;:::-;6578:71;;6702:2;6691:9;6687:18;6674:32;6658:48;;6731:2;6721:8;6718:16;6715:36;;;6747:1;6744;6737:12;6715:36;6770:52;6814:7;6803:8;6792:9;6788:24;6770:52;:::i;:::-;6760:62;;6875:2;6864:9;6860:18;6847:32;6831:48;;6904:2;6894:8;6891:16;6888:36;;;6920:1;6917;6910:12;6888:36;;6943:52;6987:7;6976:8;6965:9;6961:24;6943:52;:::i;:::-;6933:62;;;7014:35;7045:2;7034:9;7030:18;7014:35;:::i;:::-;7004:45;;6217:838;;;;;;;:::o;7060:416::-;7153:6;7161;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;7266:9;7253:23;7243:33;;7327:2;7316:9;7312:18;7299:32;7354:18;7346:6;7343:30;7340:50;;;7386:1;7383;7376:12;7340:50;7409:61;7462:7;7453:6;7442:9;7438:22;7409:61;:::i;:::-;7399:71;;;7060:416;;;;;:::o;7481:380::-;7560:1;7556:12;;;;7603;;;7624:61;;7678:4;7670:6;7666:17;7656:27;;7624:61;7731:2;7723:6;7720:14;7700:18;7697:38;7694:161;;7777:10;7772:3;7768:20;7765:1;7758:31;7812:4;7809:1;7802:15;7840:4;7837:1;7830:15;7694:161;;7481:380;;;:::o;7992:1042::-;8077:12;;8042:3;;8132:1;8152:18;;;;8205;;;;8232:61;;8286:4;8278:6;8274:17;8264:27;;8232:61;8312:2;8360;8352:6;8349:14;8329:18;8326:38;8323:161;;8406:10;8401:3;8397:20;8394:1;8387:31;8441:4;8438:1;8431:15;8469:4;8466:1;8459:15;8323:161;4200:19;;;4252:4;4243:14;;8570:18;8597:104;;;;8715:1;8710:318;;;;8563:465;;8597:104;-1:-1:-1;;8632:24:15;;8618:39;;8677:14;;;;-1:-1:-1;8597:104:15;;8710:318;7939:1;7932:14;;;7976:4;7963:18;;8804:1;8818:167;8832:6;8829:1;8826:13;8818:167;;;8912:14;;8897:13;;;8890:37;8955:16;;;;8847:10;;8818:167;;;9005:13;;;-1:-1:-1;;8563:465:15;;;;;;;;7992:1042;;;;:::o;9039:547::-;9280:6;9269:9;9262:25;9323:3;9318:2;9307:9;9303:18;9296:31;9243:4;9350:54;9399:3;9388:9;9384:19;9376:6;9350:54;:::i;:::-;9452:9;9444:6;9440:22;9435:2;9424:9;9420:18;9413:50;9480:41;9514:6;9506;9480:41;:::i;:::-;9472:49;;;9571:6;9564:14;9557:22;9552:2;9541:9;9537:18;9530:50;9039:547;;;;;;;:::o;9591:840::-;9940:25;;;9996:2;9981:18;;9974:34;;;-1:-1:-1;;;;;10044:32:15;;10039:2;10024:18;;10017:60;9928:3;10108:2;10093:18;;10086:30;;;9899:4;;10133:45;10159:18;;;10151:6;10133:45;:::i;:::-;10209:3;10194:19;;10187:35;;;;-1:-1:-1;;10253:3:15;10238:19;;10231:35;;;;-1:-1:-1;;;;;10356:15:15;;;10350:3;10335:19;;10328:44;10409:15;10403:3;10388:19;;;10381:44;10125:53;9591:840;-1:-1:-1;;;;9591:840:15:o;10436:127::-;10497:10;10492:3;10488:20;10485:1;10478:31;10528:4;10525:1;10518:15;10552:4;10549:1;10542:15;10568:128;10608:3;10639:1;10635:6;10632:1;10629:13;10626:39;;;10645:18;;:::i;:::-;-1:-1:-1;10681:9:15;;10568:128::o;10701:388::-;10888:25;;;-1:-1:-1;;;;;10949:32:15;;10944:2;10929:18;;10922:60;11018:2;11013;10998:18;;10991:30;;;-1:-1:-1;;11038:45:15;;11064:18;;11056:6;11038:45;:::i;:::-;11030:53;10701:388;-1:-1:-1;;;;;10701:388:15:o;11094:537::-;11341:6;11330:9;11323:25;11384:3;11379:2;11368:9;11364:18;11357:31;11304:4;11411:46;11452:3;11441:9;11437:19;11429:6;11411:46;:::i;:::-;11505:9;11497:6;11493:22;11488:2;11477:9;11473:18;11466:50;11533:33;11559:6;11551;11533:33;:::i;11636:127::-;11697:10;11692:3;11688:20;11685:1;11678:31;11728:4;11725:1;11718:15;11752:4;11749:1;11742:15;12047:135;12086:3;12107:17;;;12104:43;;12127:18;;:::i;:::-;-1:-1:-1;12174:1:15;12163:13;;12047:135::o", "linkReferences": {} }, "methodIdentifiers": { - "addResponder(uint256,address)": "a836afab", - "createInstance(address[],string)": "d715bc76", + "addResponders(uint256,address[])": "f61044da", + "createInstance(address[],string,string,bool)": "f2e7162d", "createPrompt(uint256,string,uint256,uint128,uint128)": "5542bbae", "currentPromptId()": "17e7d99d", "instances(uint256)": "a2f7b3a5", "prompts(uint256)": "d4cf9af7", - "respond(uint256,string)": "d8fcb578" + "respond(uint256,uint256,string)": "c0b93167", + "updateSettings(uint256,string,string,bool,address[])": "493d5fe5" }, "ast": { "absolutePath": "src/Prompty.sol", - "id": 20956, + "id": 21104, "exportedSymbols": { "IPrompty": [ - 20646 + 20685 ], "Prompty": [ - 20955 + 21103 ] }, "nodeType": "SourceUnit", - "src": "37:2806:10", + "src": "37:3988:10", "nodes": [ { - "id": 20648, + "id": 20687, "nodeType": "PragmaDirective", "src": "37:23:10", "literals": [ @@ -362,22 +464,22 @@ ] }, { - "id": 20650, + "id": 20689, "nodeType": "ImportDirective", "src": "62:40:10", "absolutePath": "src/IPrompty.sol", "file": "./IPrompty.sol", "nameLocation": "-1:-1:-1", - "scope": 20956, - "sourceUnit": 20647, + "scope": 21104, + "sourceUnit": 20686, "symbolAliases": [ { "foreign": { - "id": 20649, + "id": 20688, "name": "IPrompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20646, + "referencedDeclaration": 20685, "src": "70:8:10", "typeDescriptions": {} }, @@ -387,12 +489,12 @@ "unitAlias": "" }, { - "id": 20955, + "id": 21103, "nodeType": "ContractDefinition", - "src": "104:2738:10", + "src": "104:3920:10", "nodes": [ { - "id": 20655, + "id": 20694, "nodeType": "VariableDeclaration", "src": "139:34:10", "constant": false, @@ -400,7 +502,7 @@ "mutability": "mutable", "name": "currentPromptId", "nameLocation": "154:15:10", - "scope": 20955, + "scope": 21103, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -408,7 +510,7 @@ "typeString": "uint256" }, "typeName": { - "id": 20653, + "id": 20692, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "139:7:10", @@ -419,7 +521,7 @@ }, "value": { "hexValue": "30", - "id": 20654, + "id": 20693, "isConstant": false, "isLValue": false, "isPure": true, @@ -436,7 +538,7 @@ "visibility": "public" }, { - "id": 20660, + "id": 20699, "nodeType": "VariableDeclaration", "src": "179:41:10", "constant": false, @@ -444,17 +546,17 @@ "mutability": "mutable", "name": "prompts", "nameLocation": "213:7:10", - "scope": 20955, + "scope": 21103, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20556_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20560_storage_$", "typeString": "mapping(uint256 => struct IPrompty.Prompt)" }, "typeName": { - "id": 20659, + "id": 20698, "keyType": { - "id": 20656, + "id": 20695, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "187:7:10", @@ -466,23 +568,23 @@ "nodeType": "Mapping", "src": "179:26:10", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20556_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20560_storage_$", "typeString": "mapping(uint256 => struct IPrompty.Prompt)" }, "valueType": { - "id": 20658, + "id": 20697, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 20657, + "id": 20696, "name": "Prompt", "nodeType": "IdentifierPath", - "referencedDeclaration": 20556, + "referencedDeclaration": 20560, "src": "198:6:10" }, - "referencedDeclaration": 20556, + "referencedDeclaration": 20560, "src": "198:6:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prompt_$20556_storage_ptr", + "typeIdentifier": "t_struct$_Prompt_$20560_storage_ptr", "typeString": "struct IPrompty.Prompt" } } @@ -490,7 +592,7 @@ "visibility": "public" }, { - "id": 20665, + "id": 20704, "nodeType": "VariableDeclaration", "src": "227:52:10", "constant": false, @@ -498,17 +600,17 @@ "mutability": "mutable", "name": "instances", "nameLocation": "270:9:10", - "scope": 20955, + "scope": 21103, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PromptyInstance_$20543_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PromptyInstance_$20547_storage_$", "typeString": "mapping(uint256 => struct IPrompty.PromptyInstance)" }, "typeName": { - "id": 20664, + "id": 20703, "keyType": { - "id": 20661, + "id": 20700, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "235:7:10", @@ -520,23 +622,23 @@ "nodeType": "Mapping", "src": "227:35:10", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PromptyInstance_$20543_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PromptyInstance_$20547_storage_$", "typeString": "mapping(uint256 => struct IPrompty.PromptyInstance)" }, "valueType": { - "id": 20663, + "id": 20702, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 20662, + "id": 20701, "name": "PromptyInstance", "nodeType": "IdentifierPath", - "referencedDeclaration": 20543, + "referencedDeclaration": 20547, "src": "246:15:10" }, - "referencedDeclaration": 20543, + "referencedDeclaration": 20547, "src": "246:15:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_PromptyInstance_$20543_storage_ptr", + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", "typeString": "struct IPrompty.PromptyInstance" } } @@ -544,14 +646,14 @@ "visibility": "public" }, { - "id": 20667, + "id": 20706, "nodeType": "VariableDeclaration", "src": "285:21:10", "constant": false, "mutability": "mutable", "name": "instanceCount", "nameLocation": "293:13:10", - "scope": 20955, + "scope": 21103, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -559,7 +661,7 @@ "typeString": "uint256" }, "typeName": { - "id": 20666, + "id": 20705, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "285:7:10", @@ -571,76 +673,76 @@ "visibility": "internal" }, { - "id": 20728, + "id": 20780, "nodeType": "FunctionDefinition", - "src": "313:543:10", + "src": "313:733:10", "body": { - "id": 20727, + "id": 20779, "nodeType": "Block", - "src": "422:434:10", + "src": "481:565:10", "statements": [ { "assignments": [ - 20677 + 20720 ], "declarations": [ { "constant": false, - "id": 20677, + "id": 20720, "mutability": "mutable", "name": "instance", - "nameLocation": "456:8:10", + "nameLocation": "515:8:10", "nodeType": "VariableDeclaration", - "scope": 20727, - "src": "432:32:10", + "scope": 20779, + "src": "491:32:10", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_PromptyInstance_$20543_storage_ptr", + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", "typeString": "struct IPrompty.PromptyInstance" }, "typeName": { - "id": 20676, + "id": 20719, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 20675, + "id": 20718, "name": "PromptyInstance", "nodeType": "IdentifierPath", - "referencedDeclaration": 20543, - "src": "432:15:10" + "referencedDeclaration": 20547, + "src": "491:15:10" }, - "referencedDeclaration": 20543, - "src": "432:15:10", + "referencedDeclaration": 20547, + "src": "491:15:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_PromptyInstance_$20543_storage_ptr", + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", "typeString": "struct IPrompty.PromptyInstance" } }, "visibility": "internal" } ], - "id": 20681, + "id": 20724, "initialValue": { "baseExpression": { - "id": 20678, + "id": 20721, "name": "instances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20665, - "src": "467:9:10", + "referencedDeclaration": 20704, + "src": "526:9:10", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PromptyInstance_$20543_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PromptyInstance_$20547_storage_$", "typeString": "mapping(uint256 => struct IPrompty.PromptyInstance storage ref)" } }, - "id": 20680, + "id": 20723, "indexExpression": { - "id": 20679, + "id": 20722, "name": "instanceCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20667, - "src": "477:13:10", + "referencedDeclaration": 20706, + "src": "536:13:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -651,36 +753,36 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "467:24:10", + "src": "526:24:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_PromptyInstance_$20543_storage", + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage", "typeString": "struct IPrompty.PromptyInstance storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "432:59:10" + "src": "491:59:10" }, { "expression": { - "id": 20686, + "id": 20729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 20682, + "id": 20725, "name": "instance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20677, - "src": "502:8:10", + "referencedDeclaration": 20720, + "src": "561:8:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_PromptyInstance_$20543_storage_ptr", + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", "typeString": "struct IPrompty.PromptyInstance storage pointer" } }, - "id": 20684, + "id": 20727, "isConstant": false, "isLValue": true, "isPure": false, @@ -688,7 +790,7 @@ "memberName": "name", "nodeType": "MemberAccess", "referencedDeclaration": 20538, - "src": "502:13:10", + "src": "561:13:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -697,53 +799,150 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 20685, + "id": 20728, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20672, - "src": "518:4:10", + "referencedDeclaration": 20711, + "src": "577:4:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "502:20:10", + "src": "561:20:10", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 20687, + "id": 20730, + "nodeType": "ExpressionStatement", + "src": "561:20:10" + }, + { + "expression": { + "id": 20735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 20731, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20720, + "src": "591:8:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", + "typeString": "struct IPrompty.PromptyInstance storage pointer" + } + }, + "id": 20733, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isVisible", + "nodeType": "MemberAccess", + "referencedDeclaration": 20540, + "src": "591:18:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 20734, + "name": "isVisible", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20715, + "src": "612:9:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "591:30:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 20736, "nodeType": "ExpressionStatement", - "src": "502:20:10" + "src": "591:30:10" }, { "eventCall": { "arguments": [ { - "id": 20689, + "id": 20738, "name": "instanceCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20667, - "src": "554:13:10", + "referencedDeclaration": 20706, + "src": "666:13:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 20690, + "id": 20739, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20672, - "src": "569:4:10", + "referencedDeclaration": 20711, + "src": "693:4:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 20740, + "name": "description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20713, + "src": "711:11:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } + }, + { + "expression": { + "id": 20741, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20720, + "src": "736:8:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", + "typeString": "struct IPrompty.PromptyInstance storage pointer" + } + }, + "id": 20742, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isVisible", + "nodeType": "MemberAccess", + "referencedDeclaration": 20540, + "src": "736:18:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } } ], "expression": { @@ -755,20 +954,28 @@ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "id": 20688, + "id": 20737, "name": "InstanceCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20594, - "src": "538:15:10", + "referencedDeclaration": 20602, + "src": "637:15:10", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,string memory)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$__$", + "typeString": "function (uint256,string memory,string memory,bool)" } }, - "id": 20691, + "id": 20743, "isConstant": false, "isLValue": false, "isPure": false, @@ -776,26 +983,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "538:36:10", + "src": "637:127:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20692, + "id": 20744, "nodeType": "EmitStatement", - "src": "533:41:10" + "src": "632:132:10" }, { "body": { - "id": 20721, + "id": 20773, "nodeType": "Block", - "src": "640:150:10", + "src": "830:150:10", "statements": [ { "expression": { - "id": 20712, + "id": 20764, "isConstant": false, "isLValue": false, "isPure": false, @@ -803,53 +1010,53 @@ "leftHandSide": { "baseExpression": { "expression": { - "id": 20704, + "id": 20756, "name": "instance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20677, - "src": "654:8:10", + "referencedDeclaration": 20720, + "src": "844:8:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_PromptyInstance_$20543_storage_ptr", + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", "typeString": "struct IPrompty.PromptyInstance storage pointer" } }, - "id": 20709, + "id": 20761, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allowedResponders", "nodeType": "MemberAccess", - "referencedDeclaration": 20542, - "src": "654:26:10", + "referencedDeclaration": 20546, + "src": "844:26:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 20710, + "id": 20762, "indexExpression": { "baseExpression": { - "id": 20706, + "id": 20758, "name": "allowedResponders", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20670, - "src": "681:17:10", + "referencedDeclaration": 20709, + "src": "871:17:10", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 20708, + "id": 20760, "indexExpression": { - "id": 20707, + "id": 20759, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20694, - "src": "699:1:10", + "referencedDeclaration": 20746, + "src": "889:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -860,7 +1067,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "681:20:10", + "src": "871:20:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -871,7 +1078,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "654:48:10", + "src": "844:48:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -881,40 +1088,40 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 20711, + "id": 20763, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "705:4:10", + "src": "895:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "654:55:10", + "src": "844:55:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 20713, + "id": 20765, "nodeType": "ExpressionStatement", - "src": "654:55:10" + "src": "844:55:10" }, { "eventCall": { "arguments": [ { - "id": 20715, + "id": 20767, "name": "instanceCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20667, - "src": "743:13:10", + "referencedDeclaration": 20706, + "src": "933:13:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -922,25 +1129,25 @@ }, { "baseExpression": { - "id": 20716, + "id": 20768, "name": "allowedResponders", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20670, - "src": "758:17:10", + "referencedDeclaration": 20709, + "src": "948:17:10", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 20718, + "id": 20770, "indexExpression": { - "id": 20717, + "id": 20769, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20694, - "src": "776:1:10", + "referencedDeclaration": 20746, + "src": "966:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -951,7 +1158,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "758:20:10", + "src": "948:20:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -969,18 +1176,18 @@ "typeString": "address" } ], - "id": 20714, + "id": 20766, "name": "ResponderAdded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20588, - "src": "728:14:10", + "referencedDeclaration": 20592, + "src": "918:14:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, - "id": 20719, + "id": 20771, "isConstant": false, "isLValue": false, "isPure": false, @@ -988,16 +1195,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "728:51:10", + "src": "918:51:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20720, + "id": 20772, "nodeType": "EmitStatement", - "src": "723:56:10" + "src": "913:56:10" } ] }, @@ -1006,18 +1213,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 20700, + "id": 20752, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 20697, + "id": 20749, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20694, - "src": "605:1:10", + "referencedDeclaration": 20746, + "src": "795:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1027,51 +1234,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 20698, + "id": 20750, "name": "allowedResponders", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20670, - "src": "609:17:10", + "referencedDeclaration": 20709, + "src": "799:17:10", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 20699, + "id": 20751, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "609:24:10", + "src": "799:24:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "605:28:10", + "src": "795:28:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 20722, + "id": 20774, "initializationExpression": { "assignments": [ - 20694 + 20746 ], "declarations": [ { "constant": false, - "id": 20694, + "id": 20746, "mutability": "mutable", "name": "i", - "nameLocation": "598:1:10", + "nameLocation": "788:1:10", "nodeType": "VariableDeclaration", - "scope": 20722, - "src": "590:9:10", + "scope": 20774, + "src": "780:9:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1079,10 +1286,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20693, + "id": 20745, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "590:7:10", + "src": "780:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1091,17 +1298,17 @@ "visibility": "internal" } ], - "id": 20696, + "id": 20748, "initialValue": { "hexValue": "30", - "id": 20695, + "id": 20747, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "602:1:10", + "src": "792:1:10", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1109,11 +1316,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "590:13:10" + "src": "780:13:10" }, "loopExpression": { "expression": { - "id": 20702, + "id": 20754, "isConstant": false, "isLValue": false, "isPure": false, @@ -1121,14 +1328,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "635:3:10", + "src": "825:3:10", "subExpression": { - "id": 20701, + "id": 20753, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20694, - "src": "635:1:10", + "referencedDeclaration": 20746, + "src": "825:1:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1139,21 +1346,21 @@ "typeString": "uint256" } }, - "id": 20703, + "id": 20755, "nodeType": "ExpressionStatement", - "src": "635:3:10" + "src": "825:3:10" }, "nodeType": "ForStatement", - "src": "585:205:10" + "src": "775:205:10" }, { - "id": 20726, + "id": 20778, "nodeType": "UncheckedBlock", - "src": "800:50:10", + "src": "990:50:10", "statements": [ { "expression": { - "id": 20724, + "id": 20776, "isConstant": false, "isLValue": false, "isPure": false, @@ -1161,14 +1368,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "824:15:10", + "src": "1014:15:10", "subExpression": { - "id": 20723, + "id": 20775, "name": "instanceCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20667, - "src": "824:13:10", + "referencedDeclaration": 20706, + "src": "1014:13:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1179,35 +1386,35 @@ "typeString": "uint256" } }, - "id": 20725, + "id": 20777, "nodeType": "ExpressionStatement", - "src": "824:15:10" + "src": "1014:15:10" } ] } ] }, "baseFunctions": [ - 20618 + 20640 ], - "functionSelector": "d715bc76", + "functionSelector": "f2e7162d", "implemented": true, "kind": "function", "modifiers": [], "name": "createInstance", "nameLocation": "322:14:10", "parameters": { - "id": 20673, + "id": 20716, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 20670, + "id": 20709, "mutability": "mutable", "name": "allowedResponders", "nameLocation": "363:17:10", "nodeType": "VariableDeclaration", - "scope": 20728, + "scope": 20780, "src": "346:34:10", "stateVariable": false, "storageLocation": "memory", @@ -1217,7 +1424,7 @@ }, "typeName": { "baseType": { - "id": 20668, + "id": 20707, "name": "address", "nodeType": "ElementaryTypeName", "src": "346:7:10", @@ -1227,7 +1434,7 @@ "typeString": "address" } }, - "id": 20669, + "id": 20708, "nodeType": "ArrayTypeName", "src": "346:9:10", "typeDescriptions": { @@ -1239,12 +1446,12 @@ }, { "constant": false, - "id": 20672, + "id": 20711, "mutability": "mutable", "name": "name", "nameLocation": "404:4:10", "nodeType": "VariableDeclaration", - "scope": 20728, + "scope": 20780, "src": "390:18:10", "stateVariable": false, "storageLocation": "memory", @@ -1253,7 +1460,7 @@ "typeString": "string" }, "typeName": { - "id": 20671, + "id": 20710, "name": "string", "nodeType": "ElementaryTypeName", "src": "390:6:10", @@ -1263,92 +1470,146 @@ } }, "visibility": "internal" + }, + { + "constant": false, + "id": 20713, + "mutability": "mutable", + "name": "description", + "nameLocation": "432:11:10", + "nodeType": "VariableDeclaration", + "scope": 20780, + "src": "418:25:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20712, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "418:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20715, + "mutability": "mutable", + "name": "isVisible", + "nameLocation": "458:9:10", + "nodeType": "VariableDeclaration", + "scope": 20780, + "src": "453:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "453:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" } ], - "src": "336:78:10" + "src": "336:137:10" }, "returnParameters": { - "id": 20674, + "id": 20717, "nodeType": "ParameterList", "parameters": [], - "src": "422:0:10" + "src": "481:0:10" }, - "scope": 20955, + "scope": 21103, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 20763, + "id": 20826, "nodeType": "FunctionDefinition", - "src": "862:320:10", + "src": "1052:396:10", "body": { - "id": 20762, + "id": 20825, "nodeType": "Block", - "src": "930:252:10", + "src": "1160:288:10", "statements": [ { "assignments": [ - 20737 + 20790 ], "declarations": [ { "constant": false, - "id": 20737, + "id": 20790, "mutability": "mutable", "name": "instance", - "nameLocation": "964:8:10", + "nameLocation": "1194:8:10", "nodeType": "VariableDeclaration", - "scope": 20762, - "src": "940:32:10", + "scope": 20825, + "src": "1170:32:10", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_PromptyInstance_$20543_storage_ptr", + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", "typeString": "struct IPrompty.PromptyInstance" }, "typeName": { - "id": 20736, + "id": 20789, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 20735, + "id": 20788, "name": "PromptyInstance", "nodeType": "IdentifierPath", - "referencedDeclaration": 20543, - "src": "940:15:10" + "referencedDeclaration": 20547, + "src": "1170:15:10" }, - "referencedDeclaration": 20543, - "src": "940:15:10", + "referencedDeclaration": 20547, + "src": "1170:15:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_PromptyInstance_$20543_storage_ptr", + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", "typeString": "struct IPrompty.PromptyInstance" } }, "visibility": "internal" } ], - "id": 20741, + "id": 20794, "initialValue": { "baseExpression": { - "id": 20738, + "id": 20791, "name": "instances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20665, - "src": "975:9:10", + "referencedDeclaration": 20704, + "src": "1205:9:10", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PromptyInstance_$20543_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PromptyInstance_$20547_storage_$", "typeString": "mapping(uint256 => struct IPrompty.PromptyInstance storage ref)" } }, - "id": 20740, + "id": 20793, "indexExpression": { - "id": 20739, + "id": 20792, "name": "instanceID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20730, - "src": "985:10:10", + "referencedDeclaration": 20782, + "src": "1215:10:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1359,94 +1620,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "975:21:10", + "src": "1205:21:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_PromptyInstance_$20543_storage", + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage", "typeString": "struct IPrompty.PromptyInstance storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "940:56:10" + "src": "1170:56:10" }, { - "condition": { - "id": 20746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1011:38:10", - "subExpression": { - "baseExpression": { - "expression": { - "id": 20742, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20737, - "src": "1012:8:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PromptyInstance_$20543_storage_ptr", - "typeString": "struct IPrompty.PromptyInstance storage pointer" - } - }, - "id": 20743, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "allowedResponders", - "nodeType": "MemberAccess", - "referencedDeclaration": 20542, - "src": "1012:26:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 20745, - "indexExpression": { - "id": 20744, - "name": "responder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20732, - "src": "1039:9:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1012:37:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 20761, - "nodeType": "IfStatement", - "src": "1007:169:10", - "trueBody": { - "id": 20760, + "body": { + "id": 20823, "nodeType": "Block", - "src": "1051:125:10", + "src": "1292:150:10", "statements": [ { "expression": { - "id": 20753, + "id": 20814, "isConstant": false, "isLValue": false, "isPure": false, @@ -1454,42 +1645,67 @@ "leftHandSide": { "baseExpression": { "expression": { - "id": 20747, + "id": 20806, "name": "instance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20737, - "src": "1065:8:10", + "referencedDeclaration": 20790, + "src": "1306:8:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_PromptyInstance_$20543_storage_ptr", + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", "typeString": "struct IPrompty.PromptyInstance storage pointer" } }, - "id": 20750, + "id": 20811, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allowedResponders", "nodeType": "MemberAccess", - "referencedDeclaration": 20542, - "src": "1065:26:10", + "referencedDeclaration": 20546, + "src": "1306:26:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 20751, + "id": 20812, "indexExpression": { - "id": 20749, - "name": "responder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20732, - "src": "1092:9:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "baseExpression": { + "id": 20808, + "name": "allowedResponders", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20785, + "src": "1333:17:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 20810, + "indexExpression": { + "id": 20809, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20796, + "src": "1351:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1333:20:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -1497,7 +1713,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1065:37:10", + "src": "1306:48:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1507,52 +1723,77 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 20752, + "id": 20813, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1105:4:10", + "src": "1357:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "1065:44:10", + "src": "1306:55:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 20754, + "id": 20815, "nodeType": "ExpressionStatement", - "src": "1065:44:10" + "src": "1306:55:10" }, { "eventCall": { "arguments": [ { - "id": 20756, - "name": "instanceID", + "id": 20817, + "name": "instanceCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20730, - "src": "1143:10:10", + "referencedDeclaration": 20706, + "src": "1395:13:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 20757, - "name": "responder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20732, - "src": "1155:9:10", + "baseExpression": { + "id": 20818, + "name": "allowedResponders", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20785, + "src": "1410:17:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 20820, + "indexExpression": { + "id": 20819, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20796, + "src": "1428:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1410:20:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1570,18 +1811,18 @@ "typeString": "address" } ], - "id": 20755, + "id": 20816, "name": "ResponderAdded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20588, - "src": "1128:14:10", + "referencedDeclaration": 20592, + "src": "1380:14:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, - "id": 20758, + "id": 20821, "isConstant": false, "isLValue": false, "isPure": false, @@ -1589,112 +1830,1090 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1128:37:10", + "src": "1380:51:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20759, + "id": 20822, "nodeType": "EmitStatement", - "src": "1123:42:10" + "src": "1375:56:10" } ] - } + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 20802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 20799, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20796, + "src": "1257:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 20800, + "name": "allowedResponders", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20785, + "src": "1261:17:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 20801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1261:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1257:28:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 20824, + "initializationExpression": { + "assignments": [ + 20796 + ], + "declarations": [ + { + "constant": false, + "id": 20796, + "mutability": "mutable", + "name": "i", + "nameLocation": "1250:1:10", + "nodeType": "VariableDeclaration", + "scope": 20824, + "src": "1242:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1242:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 20798, + "initialValue": { + "hexValue": "30", + "id": 20797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1254:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1242:13:10" + }, + "loopExpression": { + "expression": { + "id": 20804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1287:3:10", + "subExpression": { + "id": 20803, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20796, + "src": "1287:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20805, + "nodeType": "ExpressionStatement", + "src": "1287:3:10" + }, + "nodeType": "ForStatement", + "src": "1237:205:10" } ] }, "baseFunctions": [ - 20625 + 20662 ], - "functionSelector": "a836afab", + "functionSelector": "f61044da", "implemented": true, "kind": "function", "modifiers": [], - "name": "addResponder", - "nameLocation": "871:12:10", + "name": "addResponders", + "nameLocation": "1061:13:10", "parameters": { - "id": 20733, + "id": 20786, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 20730, + "id": 20782, + "mutability": "mutable", + "name": "instanceID", + "nameLocation": "1092:10:10", + "nodeType": "VariableDeclaration", + "scope": 20826, + "src": "1084:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20781, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1084:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20785, + "mutability": "mutable", + "name": "allowedResponders", + "nameLocation": "1129:17:10", + "nodeType": "VariableDeclaration", + "scope": 20826, + "src": "1112:34:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 20783, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1112:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 20784, + "nodeType": "ArrayTypeName", + "src": "1112:9:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "1074:78:10" + }, + "returnParameters": { + "id": 20787, + "nodeType": "ParameterList", + "parameters": [], + "src": "1160:0:10" + }, + "scope": 21103, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 20895, + "nodeType": "FunctionDefinition", + "src": "1454:740:10", + "body": { + "id": 20894, + "nodeType": "Block", + "src": "1662:532:10", + "statements": [ + { + "assignments": [ + 20842 + ], + "declarations": [ + { + "constant": false, + "id": 20842, + "mutability": "mutable", + "name": "instance", + "nameLocation": "1696:8:10", + "nodeType": "VariableDeclaration", + "scope": 20894, + "src": "1672:32:10", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", + "typeString": "struct IPrompty.PromptyInstance" + }, + "typeName": { + "id": 20841, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 20840, + "name": "PromptyInstance", + "nodeType": "IdentifierPath", + "referencedDeclaration": 20547, + "src": "1672:15:10" + }, + "referencedDeclaration": 20547, + "src": "1672:15:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", + "typeString": "struct IPrompty.PromptyInstance" + } + }, + "visibility": "internal" + } + ], + "id": 20846, + "initialValue": { + "baseExpression": { + "id": 20843, + "name": "instances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20704, + "src": "1707:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PromptyInstance_$20547_storage_$", + "typeString": "mapping(uint256 => struct IPrompty.PromptyInstance storage ref)" + } + }, + "id": 20845, + "indexExpression": { + "id": 20844, + "name": "instanceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20828, + "src": "1717:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1707:21:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage", + "typeString": "struct IPrompty.PromptyInstance storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1672:56:10" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 20855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 20847, + "name": "instances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20704, + "src": "1743:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PromptyInstance_$20547_storage_$", + "typeString": "mapping(uint256 => struct IPrompty.PromptyInstance storage ref)" + } + }, + "id": 20849, + "indexExpression": { + "id": 20848, + "name": "instanceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20828, + "src": "1753:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1743:21:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage", + "typeString": "struct IPrompty.PromptyInstance storage ref" + } + }, + "id": 20850, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allowedResponders", + "nodeType": "MemberAccess", + "referencedDeclaration": 20546, + "src": "1743:39:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 20853, + "indexExpression": { + "expression": { + "id": 20851, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1783:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 20852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1783:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1743:51:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "66616c7365", + "id": 20854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1798:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1743:60:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 20860, + "nodeType": "IfStatement", + "src": "1739:110:10", + "trueBody": { + "id": 20859, + "nodeType": "Block", + "src": "1805:44:10", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 20856, + "name": "NotAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20628, + "src": "1826:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 20857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1826:12:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20858, + "nodeType": "RevertStatement", + "src": "1819:19:10" + } + ] + } + }, + { + "expression": { + "id": 20865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 20861, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20842, + "src": "1859:8:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", + "typeString": "struct IPrompty.PromptyInstance storage pointer" + } + }, + "id": 20863, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 20538, + "src": "1859:13:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 20864, + "name": "newName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20830, + "src": "1875:7:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1859:23:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 20866, + "nodeType": "ExpressionStatement", + "src": "1859:23:10" + }, + { + "expression": { + "id": 20871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 20867, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20842, + "src": "1892:8:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", + "typeString": "struct IPrompty.PromptyInstance storage pointer" + } + }, + "id": 20869, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "description", + "nodeType": "MemberAccess", + "referencedDeclaration": 20542, + "src": "1892:20:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 20870, + "name": "newDescription", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20832, + "src": "1915:14:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1892:37:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 20872, + "nodeType": "ExpressionStatement", + "src": "1892:37:10" + }, + { + "expression": { + "id": 20877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 20873, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20842, + "src": "1939:8:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", + "typeString": "struct IPrompty.PromptyInstance storage pointer" + } + }, + "id": 20875, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isVisible", + "nodeType": "MemberAccess", + "referencedDeclaration": 20540, + "src": "1939:18:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 20876, + "name": "newIsVisible", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20834, + "src": "1960:12:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1939:33:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 20878, + "nodeType": "ExpressionStatement", + "src": "1939:33:10" + }, + { + "expression": { + "arguments": [ + { + "id": 20880, + "name": "instanceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20828, + "src": "1996:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 20881, + "name": "newAllowedResponders", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20837, + "src": "2008:20:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "id": 20879, + "name": "addResponders", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20826, + "src": "1982:13:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address[] memory)" + } + }, + "id": 20882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1982:47:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20883, + "nodeType": "ExpressionStatement", + "src": "1982:47:10" + }, + { + "eventCall": { + "arguments": [ + { + "id": 20885, + "name": "instanceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20828, + "src": "2074:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 20886, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20842, + "src": "2098:8:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", + "typeString": "struct IPrompty.PromptyInstance storage pointer" + } + }, + "id": 20887, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 20538, + "src": "2098:13:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "expression": { + "id": 20888, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20842, + "src": "2125:8:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", + "typeString": "struct IPrompty.PromptyInstance storage pointer" + } + }, + "id": 20889, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "description", + "nodeType": "MemberAccess", + "referencedDeclaration": 20542, + "src": "2125:20:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "expression": { + "id": 20890, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20842, + "src": "2159:8:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage_ptr", + "typeString": "struct IPrompty.PromptyInstance storage pointer" + } + }, + "id": 20891, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isVisible", + "nodeType": "MemberAccess", + "referencedDeclaration": 20540, + "src": "2159:18:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 20884, + "name": "InstanceUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20612, + "src": "2045:15:10", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$__$", + "typeString": "function (uint256,string memory,string memory,bool)" + } + }, + "id": 20892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2045:142:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20893, + "nodeType": "EmitStatement", + "src": "2040:147:10" + } + ] + }, + "baseFunctions": [ + 20654 + ], + "functionSelector": "493d5fe5", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "updateSettings", + "nameLocation": "1463:14:10", + "parameters": { + "id": 20838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20828, + "mutability": "mutable", + "name": "instanceId", + "nameLocation": "1495:10:10", + "nodeType": "VariableDeclaration", + "scope": 20895, + "src": "1487:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1487:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20830, + "mutability": "mutable", + "name": "newName", + "nameLocation": "1529:7:10", + "nodeType": "VariableDeclaration", + "scope": 20895, + "src": "1515:21:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20829, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1515:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20832, + "mutability": "mutable", + "name": "newDescription", + "nameLocation": "1560:14:10", + "nodeType": "VariableDeclaration", + "scope": 20895, + "src": "1546:28:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20831, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1546:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20834, "mutability": "mutable", - "name": "instanceID", - "nameLocation": "892:10:10", + "name": "newIsVisible", + "nameLocation": "1589:12:10", "nodeType": "VariableDeclaration", - "scope": 20763, - "src": "884:18:10", + "scope": 20895, + "src": "1584:17:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" }, "typeName": { - "id": 20729, - "name": "uint256", + "id": 20833, + "name": "bool", "nodeType": "ElementaryTypeName", - "src": "884:7:10", + "src": "1584:4:10", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, - "id": 20732, + "id": 20837, "mutability": "mutable", - "name": "responder", - "nameLocation": "912:9:10", + "name": "newAllowedResponders", + "nameLocation": "1628:20:10", "nodeType": "VariableDeclaration", - "scope": 20763, - "src": "904:17:10", + "scope": 20895, + "src": "1611:37:10", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { - "id": 20731, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "904:7:10", - "stateMutability": "nonpayable", + "baseType": { + "id": 20835, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1611:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 20836, + "nodeType": "ArrayTypeName", + "src": "1611:9:10", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "visibility": "internal" } ], - "src": "883:39:10" + "src": "1477:177:10" }, "returnParameters": { - "id": 20734, + "id": 20839, "nodeType": "ParameterList", "parameters": [], - "src": "930:0:10" + "src": "1662:0:10" }, - "scope": 20955, + "scope": 21103, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 20872, + "id": 21004, "nodeType": "FunctionDefinition", - "src": "1188:984:10", + "src": "2200:984:10", "body": { - "id": 20871, + "id": 21003, "nodeType": "Block", - "src": "1358:814:10", + "src": "2370:814:10", "statements": [ { "condition": { @@ -1702,7 +2921,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 20784, + "id": 20916, "isConstant": false, "isLValue": false, "isPure": false, @@ -1711,25 +2930,25 @@ "baseExpression": { "expression": { "baseExpression": { - "id": 20776, + "id": 20908, "name": "instances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20665, - "src": "1372:9:10", + "referencedDeclaration": 20704, + "src": "2384:9:10", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PromptyInstance_$20543_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PromptyInstance_$20547_storage_$", "typeString": "mapping(uint256 => struct IPrompty.PromptyInstance storage ref)" } }, - "id": 20778, + "id": 20910, "indexExpression": { - "id": 20777, + "id": 20909, "name": "instanceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20765, - "src": "1382:10:10", + "referencedDeclaration": 20897, + "src": "2394:10:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1740,48 +2959,48 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1372:21:10", + "src": "2384:21:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_PromptyInstance_$20543_storage", + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage", "typeString": "struct IPrompty.PromptyInstance storage ref" } }, - "id": 20779, + "id": 20911, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allowedResponders", "nodeType": "MemberAccess", - "referencedDeclaration": 20542, - "src": "1372:39:10", + "referencedDeclaration": 20546, + "src": "2384:39:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 20782, + "id": 20914, "indexExpression": { "expression": { - "id": 20780, + "id": 20912, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "1412:3:10", + "src": "2424:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 20781, + "id": 20913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "1412:10:10", + "src": "2424:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1792,7 +3011,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1372:51:10", + "src": "2384:51:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1802,51 +3021,51 @@ "operator": "==", "rightExpression": { "hexValue": "66616c7365", - "id": 20783, + "id": 20915, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1427:5:10", + "src": "2439:5:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "1372:60:10", + "src": "2384:60:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 20789, + "id": 20921, "nodeType": "IfStatement", - "src": "1368:110:10", + "src": "2380:110:10", "trueBody": { - "id": 20788, + "id": 20920, "nodeType": "Block", - "src": "1434:44:10", + "src": "2446:44:10", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 20785, + "id": 20917, "name": "NotAllowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20610, - "src": "1455:10:10", + "referencedDeclaration": 20628, + "src": "2467:10:10", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 20786, + "id": 20918, "isConstant": false, "isLValue": false, "isPure": false, @@ -1854,16 +3073,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1455:12:10", + "src": "2467:12:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20787, + "id": 20919, "nodeType": "RevertStatement", - "src": "1448:19:10" + "src": "2460:19:10" } ] } @@ -1874,7 +3093,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 20796, + "id": 20928, "isConstant": false, "isLValue": false, "isPure": false, @@ -1883,12 +3102,12 @@ "expression": { "arguments": [ { - "id": 20792, + "id": 20924, "name": "prompt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20767, - "src": "1498:6:10", + "referencedDeclaration": 20899, + "src": "2510:6:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1902,26 +3121,26 @@ "typeString": "string memory" } ], - "id": 20791, + "id": 20923, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1492:5:10", + "src": "2504:5:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 20790, + "id": 20922, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1492:5:10", + "src": "2504:5:10", "typeDescriptions": {} } }, - "id": 20793, + "id": 20925, "isConstant": false, "isLValue": false, "isPure": false, @@ -1929,21 +3148,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1492:13:10", + "src": "2504:13:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 20794, + "id": 20926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "1492:20:10", + "src": "2504:20:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1953,46 +3172,46 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 20795, + "id": 20927, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1516:1:10", + "src": "2528:1:10", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1492:25:10", + "src": "2504:25:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 20800, + "id": 20932, "nodeType": "IfStatement", - "src": "1488:53:10", + "src": "2500:53:10", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 20797, + "id": 20929, "name": "InvalidPrompt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20596, - "src": "1526:13:10", + "referencedDeclaration": 20614, + "src": "2538:13:10", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 20798, + "id": 20930, "isConstant": false, "isLValue": false, "isPure": false, @@ -2000,16 +3219,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1526:15:10", + "src": "2538:15:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20799, + "id": 20931, "nodeType": "RevertStatement", - "src": "1519:22:10" + "src": "2531:22:10" } }, { @@ -2018,18 +3237,18 @@ "typeIdentifier": "t_uint128", "typeString": "uint128" }, - "id": 20803, + "id": 20935, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 20801, + "id": 20933, "name": "minChars", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20771, - "src": "1555:8:10", + "referencedDeclaration": 20903, + "src": "2567:8:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -2038,43 +3257,43 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 20802, + "id": 20934, "name": "maxChars", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "1566:8:10", + "referencedDeclaration": 20905, + "src": "2578:8:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "src": "1555:19:10", + "src": "2567:19:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 20807, + "id": 20939, "nodeType": "IfStatement", - "src": "1551:53:10", + "src": "2563:53:10", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 20804, + "id": 20936, "name": "InvalidPromptParams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20598, - "src": "1583:19:10", + "referencedDeclaration": 20616, + "src": "2595:19:10", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 20805, + "id": 20937, "isConstant": false, "isLValue": false, "isPure": false, @@ -2082,16 +3301,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1583:21:10", + "src": "2595:21:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20806, + "id": 20938, "nodeType": "RevertStatement", - "src": "1576:28:10" + "src": "2588:28:10" } }, { @@ -2100,18 +3319,18 @@ "typeIdentifier": "t_uint128", "typeString": "uint128" }, - "id": 20810, + "id": 20942, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 20808, + "id": 20940, "name": "minChars", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20771, - "src": "1618:8:10", + "referencedDeclaration": 20903, + "src": "2630:8:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -2121,46 +3340,46 @@ "operator": "<=", "rightExpression": { "hexValue": "30", - "id": 20809, + "id": 20941, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1630:1:10", + "src": "2642:1:10", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1618:13:10", + "src": "2630:13:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 20814, + "id": 20946, "nodeType": "IfStatement", - "src": "1614:47:10", + "src": "2626:47:10", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 20811, + "id": 20943, "name": "InvalidPromptParams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20598, - "src": "1640:19:10", + "referencedDeclaration": 20616, + "src": "2652:19:10", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 20812, + "id": 20944, "isConstant": false, "isLValue": false, "isPure": false, @@ -2168,16 +3387,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1640:21:10", + "src": "2652:21:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20813, + "id": 20945, "nodeType": "RevertStatement", - "src": "1633:28:10" + "src": "2645:28:10" } }, { @@ -2186,18 +3405,18 @@ "typeIdentifier": "t_uint128", "typeString": "uint128" }, - "id": 20817, + "id": 20949, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 20815, + "id": 20947, "name": "maxChars", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "1675:8:10", + "referencedDeclaration": 20905, + "src": "2687:8:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -2207,46 +3426,46 @@ "operator": ">=", "rightExpression": { "hexValue": "34303936", - "id": 20816, + "id": 20948, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1687:4:10", + "src": "2699:4:10", "typeDescriptions": { "typeIdentifier": "t_rational_4096_by_1", "typeString": "int_const 4096" }, "value": "4096" }, - "src": "1675:16:10", + "src": "2687:16:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 20821, + "id": 20953, "nodeType": "IfStatement", - "src": "1671:50:10", + "src": "2683:50:10", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 20818, + "id": 20950, "name": "InvalidPromptParams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20598, - "src": "1700:19:10", + "referencedDeclaration": 20616, + "src": "2712:19:10", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 20819, + "id": 20951, "isConstant": false, "isLValue": false, "isPure": false, @@ -2254,80 +3473,80 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1700:21:10", + "src": "2712:21:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20820, + "id": 20952, "nodeType": "RevertStatement", - "src": "1693:28:10" + "src": "2705:28:10" } }, { "assignments": [ - 20824 + 20956 ], "declarations": [ { "constant": false, - "id": 20824, + "id": 20956, "mutability": "mutable", "name": "p", - "nameLocation": "1747:1:10", + "nameLocation": "2759:1:10", "nodeType": "VariableDeclaration", - "scope": 20871, - "src": "1732:16:10", + "scope": 21003, + "src": "2744:16:10", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prompt_$20556_storage_ptr", + "typeIdentifier": "t_struct$_Prompt_$20560_storage_ptr", "typeString": "struct IPrompty.Prompt" }, "typeName": { - "id": 20823, + "id": 20955, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 20822, + "id": 20954, "name": "Prompt", "nodeType": "IdentifierPath", - "referencedDeclaration": 20556, - "src": "1732:6:10" + "referencedDeclaration": 20560, + "src": "2744:6:10" }, - "referencedDeclaration": 20556, - "src": "1732:6:10", + "referencedDeclaration": 20560, + "src": "2744:6:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prompt_$20556_storage_ptr", + "typeIdentifier": "t_struct$_Prompt_$20560_storage_ptr", "typeString": "struct IPrompty.Prompt" } }, "visibility": "internal" } ], - "id": 20828, + "id": 20960, "initialValue": { "baseExpression": { - "id": 20825, + "id": 20957, "name": "prompts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20660, - "src": "1751:7:10", + "referencedDeclaration": 20699, + "src": "2763:7:10", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20556_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20560_storage_$", "typeString": "mapping(uint256 => struct IPrompty.Prompt storage ref)" } }, - "id": 20827, + "id": 20959, "indexExpression": { - "id": 20826, + "id": 20958, "name": "currentPromptId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20655, - "src": "1759:15:10", + "referencedDeclaration": 20694, + "src": "2771:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2338,44 +3557,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1751:24:10", + "src": "2763:24:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prompt_$20556_storage", + "typeIdentifier": "t_struct$_Prompt_$20560_storage", "typeString": "struct IPrompty.Prompt storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "1732:43:10" + "src": "2744:43:10" }, { "expression": { - "id": 20834, + "id": 20966, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 20829, + "id": 20961, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20824, - "src": "1785:1:10", + "referencedDeclaration": 20956, + "src": "2797:1:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prompt_$20556_storage_ptr", + "typeIdentifier": "t_struct$_Prompt_$20560_storage_ptr", "typeString": "struct IPrompty.Prompt storage pointer" } }, - "id": 20831, + "id": 20963, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "startTime", "nodeType": "MemberAccess", - "referencedDeclaration": 20545, - "src": "1785:11:10", + "referencedDeclaration": 20549, + "src": "2797:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2385,69 +3604,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 20832, + "id": 20964, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "1799:5:10", + "src": "2811:5:10", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 20833, + "id": 20965, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "1799:15:10", + "src": "2811:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1785:29:10", + "src": "2797:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 20835, + "id": 20967, "nodeType": "ExpressionStatement", - "src": "1785:29:10" + "src": "2797:29:10" }, { "expression": { - "id": 20840, + "id": 20972, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 20836, + "id": 20968, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20824, - "src": "1824:1:10", + "referencedDeclaration": 20956, + "src": "2836:1:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prompt_$20556_storage_ptr", + "typeIdentifier": "t_struct$_Prompt_$20560_storage_ptr", "typeString": "struct IPrompty.Prompt storage pointer" } }, - "id": 20838, + "id": 20970, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "endTime", "nodeType": "MemberAccess", - "referencedDeclaration": 20547, - "src": "1824:9:10", + "referencedDeclaration": 20551, + "src": "2836:9:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2456,56 +3675,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 20839, + "id": 20971, "name": "endTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20769, - "src": "1836:7:10", + "referencedDeclaration": 20901, + "src": "2848:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1824:19:10", + "src": "2836:19:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 20841, + "id": 20973, "nodeType": "ExpressionStatement", - "src": "1824:19:10" + "src": "2836:19:10" }, { "expression": { - "id": 20846, + "id": 20978, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 20842, + "id": 20974, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20824, - "src": "1853:1:10", + "referencedDeclaration": 20956, + "src": "2865:1:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prompt_$20556_storage_ptr", + "typeIdentifier": "t_struct$_Prompt_$20560_storage_ptr", "typeString": "struct IPrompty.Prompt storage pointer" } }, - "id": 20844, + "id": 20976, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "minChars", "nodeType": "MemberAccess", - "referencedDeclaration": 20549, - "src": "1853:10:10", + "referencedDeclaration": 20553, + "src": "2865:10:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -2514,56 +3733,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 20845, + "id": 20977, "name": "minChars", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20771, - "src": "1866:8:10", + "referencedDeclaration": 20903, + "src": "2878:8:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "src": "1853:21:10", + "src": "2865:21:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "id": 20847, + "id": 20979, "nodeType": "ExpressionStatement", - "src": "1853:21:10" + "src": "2865:21:10" }, { "expression": { - "id": 20852, + "id": 20984, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 20848, + "id": 20980, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20824, - "src": "1884:1:10", + "referencedDeclaration": 20956, + "src": "2896:1:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prompt_$20556_storage_ptr", + "typeIdentifier": "t_struct$_Prompt_$20560_storage_ptr", "typeString": "struct IPrompty.Prompt storage pointer" } }, - "id": 20850, + "id": 20982, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "maxChars", "nodeType": "MemberAccess", - "referencedDeclaration": 20551, - "src": "1884:10:10", + "referencedDeclaration": 20555, + "src": "2896:10:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -2572,49 +3791,49 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 20851, + "id": 20983, "name": "maxChars", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "1897:8:10", + "referencedDeclaration": 20905, + "src": "2909:8:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "src": "1884:21:10", + "src": "2896:21:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "id": 20853, + "id": 20985, "nodeType": "ExpressionStatement", - "src": "1884:21:10" + "src": "2896:21:10" }, { "eventCall": { "arguments": [ { - "id": 20855, + "id": 20987, "name": "instanceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20765, - "src": "1948:10:10", + "referencedDeclaration": 20897, + "src": "2960:10:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 20856, + "id": 20988, "name": "currentPromptId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20655, - "src": "1972:15:10", + "referencedDeclaration": 20694, + "src": "2984:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2622,37 +3841,37 @@ }, { "expression": { - "id": 20857, + "id": 20989, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2001:3:10", + "src": "3013:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 20858, + "id": 20990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "2001:10:10", + "src": "3013:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 20859, + "id": 20991, "name": "prompt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20767, - "src": "2025:6:10", + "referencedDeclaration": 20899, + "src": "3037:6:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -2660,61 +3879,61 @@ }, { "expression": { - "id": 20860, + "id": 20992, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "2045:5:10", + "src": "3057:5:10", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 20861, + "id": 20993, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "2045:15:10", + "src": "3057:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 20862, + "id": 20994, "name": "endTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20769, - "src": "2074:7:10", + "referencedDeclaration": 20901, + "src": "3086:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 20863, + "id": 20995, "name": "minChars", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20771, - "src": "2095:8:10", + "referencedDeclaration": 20903, + "src": "3107:8:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { - "id": 20864, + "id": 20996, "name": "maxChars", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "2117:8:10", + "referencedDeclaration": 20905, + "src": "3129:8:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -2756,18 +3975,18 @@ "typeString": "uint128" } ], - "id": 20854, + "id": 20986, "name": "PromptCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20574, - "src": "1921:13:10", + "referencedDeclaration": 20578, + "src": "2933:13:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint128_$_t_uint128_$returns$__$", "typeString": "function (uint256,uint256,address,string memory,uint256,uint256,uint128,uint128)" } }, - "id": 20865, + "id": 20997, "isConstant": false, "isLValue": false, "isPure": false, @@ -2775,31 +3994,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1921:214:10", + "src": "2933:214:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20866, + "id": 20998, "nodeType": "EmitStatement", - "src": "1916:219:10" + "src": "2928:219:10" }, { "expression": { - "id": 20869, + "id": 21001, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 20867, + "id": 20999, "name": "currentPromptId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20655, - "src": "2145:15:10", + "referencedDeclaration": 20694, + "src": "3157:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2809,54 +4028,54 @@ "operator": "+=", "rightHandSide": { "hexValue": "31", - "id": 20868, + "id": 21000, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2164:1:10", + "src": "3176:1:10", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "2145:20:10", + "src": "3157:20:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 20870, + "id": 21002, "nodeType": "ExpressionStatement", - "src": "2145:20:10" + "src": "3157:20:10" } ] }, "baseFunctions": [ - 20638 + 20675 ], "functionSelector": "5542bbae", "implemented": true, "kind": "function", "modifiers": [], "name": "createPrompt", - "nameLocation": "1197:12:10", + "nameLocation": "2209:12:10", "parameters": { - "id": 20774, + "id": 20906, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 20765, + "id": 20897, "mutability": "mutable", "name": "instanceId", - "nameLocation": "1227:10:10", + "nameLocation": "2239:10:10", "nodeType": "VariableDeclaration", - "scope": 20872, - "src": "1219:18:10", + "scope": 21004, + "src": "2231:18:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2864,10 +4083,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20764, + "id": 20896, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1219:7:10", + "src": "2231:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2877,13 +4096,13 @@ }, { "constant": false, - "id": 20767, + "id": 20899, "mutability": "mutable", "name": "prompt", - "nameLocation": "1261:6:10", + "nameLocation": "2273:6:10", "nodeType": "VariableDeclaration", - "scope": 20872, - "src": "1247:20:10", + "scope": 21004, + "src": "2259:20:10", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2891,10 +4110,10 @@ "typeString": "string" }, "typeName": { - "id": 20766, + "id": 20898, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1247:6:10", + "src": "2259:6:10", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2904,13 +4123,13 @@ }, { "constant": false, - "id": 20769, + "id": 20901, "mutability": "mutable", "name": "endTime", - "nameLocation": "1285:7:10", + "nameLocation": "2297:7:10", "nodeType": "VariableDeclaration", - "scope": 20872, - "src": "1277:15:10", + "scope": 21004, + "src": "2289:15:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2918,10 +4137,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20768, + "id": 20900, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1277:7:10", + "src": "2289:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2931,13 +4150,13 @@ }, { "constant": false, - "id": 20771, + "id": 20903, "mutability": "mutable", "name": "minChars", - "nameLocation": "1310:8:10", + "nameLocation": "2322:8:10", "nodeType": "VariableDeclaration", - "scope": 20872, - "src": "1302:16:10", + "scope": 21004, + "src": "2314:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2945,10 +4164,10 @@ "typeString": "uint128" }, "typeName": { - "id": 20770, + "id": 20902, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1302:7:10", + "src": "2314:7:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -2958,13 +4177,13 @@ }, { "constant": false, - "id": 20773, + "id": 20905, "mutability": "mutable", "name": "maxChars", - "nameLocation": "1336:8:10", + "nameLocation": "2348:8:10", "nodeType": "VariableDeclaration", - "scope": 20872, - "src": "1328:16:10", + "scope": 21004, + "src": "2340:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2972,10 +4191,10 @@ "typeString": "uint128" }, "typeName": { - "id": 20772, + "id": 20904, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "1328:7:10", + "src": "2340:7:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -2984,46 +4203,218 @@ "visibility": "internal" } ], - "src": "1209:141:10" + "src": "2221:141:10" }, "returnParameters": { - "id": 20775, + "id": 20907, "nodeType": "ParameterList", "parameters": [], - "src": "1358:0:10" + "src": "2370:0:10" }, - "scope": 20955, + "scope": 21103, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 20954, + "id": 21102, "nodeType": "FunctionDefinition", - "src": "2178:626:10", + "src": "3190:796:10", "body": { - "id": 20953, + "id": 21101, "nodeType": "Block", - "src": "2244:560:10", + "src": "3306:680:10", "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 21021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 21013, + "name": "instances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20704, + "src": "3320:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PromptyInstance_$20547_storage_$", + "typeString": "mapping(uint256 => struct IPrompty.PromptyInstance storage ref)" + } + }, + "id": 21015, + "indexExpression": { + "id": 21014, + "name": "instanceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21006, + "src": "3330:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3320:21:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PromptyInstance_$20547_storage", + "typeString": "struct IPrompty.PromptyInstance storage ref" + } + }, + "id": 21016, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allowedResponders", + "nodeType": "MemberAccess", + "referencedDeclaration": 20546, + "src": "3320:39:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 21019, + "indexExpression": { + "expression": { + "id": 21017, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3360:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 21018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3360:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3320:51:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "66616c7365", + "id": 21020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3375:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "3320:60:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 21026, + "nodeType": "IfStatement", + "src": "3316:110:10", + "trueBody": { + "id": 21025, + "nodeType": "Block", + "src": "3382:44:10", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 21022, + "name": "NotAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20628, + "src": "3403:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 21023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3403:12:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21024, + "nodeType": "RevertStatement", + "src": "3396:19:10" + } + ] + } + }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 20881, + "id": 21029, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 20879, + "id": 21027, "name": "promptId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20874, - "src": "2258:8:10", + "referencedDeclaration": 21008, + "src": "3440:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3032,43 +4423,43 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 20880, + "id": 21028, "name": "currentPromptId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20655, - "src": "2270:15:10", + "referencedDeclaration": 20694, + "src": "3452:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2258:27:10", + "src": "3440:27:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 20885, + "id": 21033, "nodeType": "IfStatement", - "src": "2254:57:10", + "src": "3436:57:10", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 20882, + "id": 21030, "name": "InvalidPromptID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20600, - "src": "2294:15:10", + "referencedDeclaration": 20618, + "src": "3476:15:10", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 20883, + "id": 21031, "isConstant": false, "isLValue": false, "isPure": false, @@ -3076,16 +4467,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2294:17:10", + "src": "3476:17:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20884, + "id": 21032, "nodeType": "RevertStatement", - "src": "2287:24:10" + "src": "3469:24:10" } }, { @@ -3094,7 +4485,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 20892, + "id": 21040, "isConstant": false, "isLValue": false, "isPure": false, @@ -3102,25 +4493,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 20886, + "id": 21034, "name": "prompts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20660, - "src": "2325:7:10", + "referencedDeclaration": 20699, + "src": "3507:7:10", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20556_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20560_storage_$", "typeString": "mapping(uint256 => struct IPrompty.Prompt storage ref)" } }, - "id": 20888, + "id": 21036, "indexExpression": { - "id": 20887, + "id": 21035, "name": "promptId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20874, - "src": "2333:8:10", + "referencedDeclaration": 21008, + "src": "3515:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3131,21 +4522,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2325:17:10", + "src": "3507:17:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prompt_$20556_storage", + "typeIdentifier": "t_struct$_Prompt_$20560_storage", "typeString": "struct IPrompty.Prompt storage ref" } }, - "id": 20889, + "id": 21037, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endTime", "nodeType": "MemberAccess", - "referencedDeclaration": 20547, - "src": "2325:25:10", + "referencedDeclaration": 20551, + "src": "3507:25:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3155,56 +4546,56 @@ "operator": "<", "rightExpression": { "expression": { - "id": 20890, + "id": 21038, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "2353:5:10", + "src": "3535:5:10", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 20891, + "id": 21039, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "2353:15:10", + "src": "3535:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2325:43:10", + "src": "3507:43:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 20896, + "id": 21044, "nodeType": "IfStatement", - "src": "2321:71:10", + "src": "3503:71:10", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 20893, + "id": 21041, "name": "PromptExpired", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20602, - "src": "2377:13:10", + "referencedDeclaration": 20620, + "src": "3559:13:10", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 20894, + "id": 21042, "isConstant": false, "isLValue": false, "isPure": false, @@ -3212,16 +4603,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2377:15:10", + "src": "3559:15:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20895, + "id": 21043, "nodeType": "RevertStatement", - "src": "2370:22:10" + "src": "3552:22:10" } }, { @@ -3229,25 +4620,25 @@ "baseExpression": { "expression": { "baseExpression": { - "id": 20897, + "id": 21045, "name": "prompts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20660, - "src": "2406:7:10", + "referencedDeclaration": 20699, + "src": "3588:7:10", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20556_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20560_storage_$", "typeString": "mapping(uint256 => struct IPrompty.Prompt storage ref)" } }, - "id": 20899, + "id": 21047, "indexExpression": { - "id": 20898, + "id": 21046, "name": "promptId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20874, - "src": "2414:8:10", + "referencedDeclaration": 21008, + "src": "3596:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3258,48 +4649,48 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2406:17:10", + "src": "3588:17:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prompt_$20556_storage", + "typeIdentifier": "t_struct$_Prompt_$20560_storage", "typeString": "struct IPrompty.Prompt storage ref" } }, - "id": 20900, + "id": 21048, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "responses", "nodeType": "MemberAccess", - "referencedDeclaration": 20555, - "src": "2406:27:10", + "referencedDeclaration": 20559, + "src": "3588:27:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 20903, + "id": 21051, "indexExpression": { "expression": { - "id": 20901, + "id": 21049, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2434:3:10", + "src": "3616:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 20902, + "id": 21050, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "2434:10:10", + "src": "3616:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3310,32 +4701,32 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2406:39:10", + "src": "3588:39:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 20907, + "id": 21055, "nodeType": "IfStatement", - "src": "2402:70:10", + "src": "3584:70:10", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 20904, + "id": 21052, "name": "AlreadyResponded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20604, - "src": "2454:16:10", + "referencedDeclaration": 20622, + "src": "3636:16:10", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 20905, + "id": 21053, "isConstant": false, "isLValue": false, "isPure": false, @@ -3343,16 +4734,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2454:18:10", + "src": "3636:18:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20906, + "id": 21054, "nodeType": "RevertStatement", - "src": "2447:25:10" + "src": "3629:25:10" } }, { @@ -3361,7 +4752,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 20917, + "id": 21065, "isConstant": false, "isLValue": false, "isPure": false, @@ -3370,12 +4761,12 @@ "expression": { "arguments": [ { - "id": 20910, + "id": 21058, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20876, - "src": "2492:8:10", + "referencedDeclaration": 21010, + "src": "3674:8:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -3389,26 +4780,26 @@ "typeString": "string memory" } ], - "id": 20909, + "id": 21057, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2486:5:10", + "src": "3668:5:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 20908, + "id": 21056, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2486:5:10", + "src": "3668:5:10", "typeDescriptions": {} } }, - "id": 20911, + "id": 21059, "isConstant": false, "isLValue": false, "isPure": false, @@ -3416,21 +4807,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2486:15:10", + "src": "3668:15:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 20912, + "id": 21060, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "2486:22:10", + "src": "3668:22:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3441,25 +4832,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 20913, + "id": 21061, "name": "prompts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20660, - "src": "2511:7:10", + "referencedDeclaration": 20699, + "src": "3693:7:10", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20556_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20560_storage_$", "typeString": "mapping(uint256 => struct IPrompty.Prompt storage ref)" } }, - "id": 20915, + "id": 21063, "indexExpression": { - "id": 20914, + "id": 21062, "name": "promptId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20874, - "src": "2519:8:10", + "referencedDeclaration": 21008, + "src": "3701:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3470,52 +4861,52 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2511:17:10", + "src": "3693:17:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prompt_$20556_storage", + "typeIdentifier": "t_struct$_Prompt_$20560_storage", "typeString": "struct IPrompty.Prompt storage ref" } }, - "id": 20916, + "id": 21064, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "minChars", "nodeType": "MemberAccess", - "referencedDeclaration": 20549, - "src": "2511:26:10", + "referencedDeclaration": 20553, + "src": "3693:26:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "src": "2486:51:10", + "src": "3668:51:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 20921, + "id": 21069, "nodeType": "IfStatement", - "src": "2482:94:10", + "src": "3664:94:10", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 20918, + "id": 21066, "name": "ResponseTooShort", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20606, - "src": "2558:16:10", + "referencedDeclaration": 20624, + "src": "3740:16:10", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 20919, + "id": 21067, "isConstant": false, "isLValue": false, "isPure": false, @@ -3523,16 +4914,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2558:18:10", + "src": "3740:18:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20920, + "id": 21068, "nodeType": "RevertStatement", - "src": "2551:25:10" + "src": "3733:25:10" } }, { @@ -3541,7 +4932,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 20931, + "id": 21079, "isConstant": false, "isLValue": false, "isPure": false, @@ -3550,12 +4941,12 @@ "expression": { "arguments": [ { - "id": 20924, + "id": 21072, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20876, - "src": "2596:8:10", + "referencedDeclaration": 21010, + "src": "3778:8:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -3569,26 +4960,26 @@ "typeString": "string memory" } ], - "id": 20923, + "id": 21071, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2590:5:10", + "src": "3772:5:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 20922, + "id": 21070, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2590:5:10", + "src": "3772:5:10", "typeDescriptions": {} } }, - "id": 20925, + "id": 21073, "isConstant": false, "isLValue": false, "isPure": false, @@ -3596,21 +4987,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2590:15:10", + "src": "3772:15:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 20926, + "id": 21074, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "2590:22:10", + "src": "3772:22:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3621,25 +5012,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 20927, + "id": 21075, "name": "prompts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20660, - "src": "2615:7:10", + "referencedDeclaration": 20699, + "src": "3797:7:10", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20556_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20560_storage_$", "typeString": "mapping(uint256 => struct IPrompty.Prompt storage ref)" } }, - "id": 20929, + "id": 21077, "indexExpression": { - "id": 20928, + "id": 21076, "name": "promptId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20874, - "src": "2623:8:10", + "referencedDeclaration": 21008, + "src": "3805:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3650,52 +5041,52 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2615:17:10", + "src": "3797:17:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prompt_$20556_storage", + "typeIdentifier": "t_struct$_Prompt_$20560_storage", "typeString": "struct IPrompty.Prompt storage ref" } }, - "id": 20930, + "id": 21078, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "maxChars", "nodeType": "MemberAccess", - "referencedDeclaration": 20551, - "src": "2615:26:10", + "referencedDeclaration": 20555, + "src": "3797:26:10", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "src": "2590:51:10", + "src": "3772:51:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 20935, + "id": 21083, "nodeType": "IfStatement", - "src": "2586:93:10", + "src": "3768:93:10", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 20932, + "id": 21080, "name": "ResponseTooLong", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20608, - "src": "2662:15:10", + "referencedDeclaration": 20626, + "src": "3844:15:10", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 20933, + "id": 21081, "isConstant": false, "isLValue": false, "isPure": false, @@ -3703,21 +5094,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2662:17:10", + "src": "3844:17:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20934, + "id": 21082, "nodeType": "RevertStatement", - "src": "2655:24:10" + "src": "3837:24:10" } }, { "expression": { - "id": 20944, + "id": 21092, "isConstant": false, "isLValue": false, "isPure": false, @@ -3726,25 +5117,25 @@ "baseExpression": { "expression": { "baseExpression": { - "id": 20936, + "id": 21084, "name": "prompts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20660, - "src": "2690:7:10", + "referencedDeclaration": 20699, + "src": "3872:7:10", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20556_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Prompt_$20560_storage_$", "typeString": "mapping(uint256 => struct IPrompty.Prompt storage ref)" } }, - "id": 20938, + "id": 21086, "indexExpression": { - "id": 20937, + "id": 21085, "name": "promptId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20874, - "src": "2698:8:10", + "referencedDeclaration": 21008, + "src": "3880:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3755,48 +5146,48 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2690:17:10", + "src": "3872:17:10", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prompt_$20556_storage", + "typeIdentifier": "t_struct$_Prompt_$20560_storage", "typeString": "struct IPrompty.Prompt storage ref" } }, - "id": 20939, + "id": 21087, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "responses", "nodeType": "MemberAccess", - "referencedDeclaration": 20555, - "src": "2690:27:10", + "referencedDeclaration": 20559, + "src": "3872:27:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 20942, + "id": 21090, "indexExpression": { "expression": { - "id": 20940, + "id": 21088, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2718:3:10", + "src": "3900:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 20941, + "id": 21089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "2718:10:10", + "src": "3900:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3807,7 +5198,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2690:39:10", + "src": "3872:39:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3817,40 +5208,40 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 20943, + "id": 21091, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2732:4:10", + "src": "3914:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "2690:46:10", + "src": "3872:46:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 20945, + "id": 21093, "nodeType": "ExpressionStatement", - "src": "2690:46:10" + "src": "3872:46:10" }, { "eventCall": { "arguments": [ { - "id": 20947, + "id": 21095, "name": "promptId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20874, - "src": "2766:8:10", + "referencedDeclaration": 21008, + "src": "3948:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3858,37 +5249,37 @@ }, { "expression": { - "id": 20948, + "id": 21096, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2776:3:10", + "src": "3958:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 20949, + "id": 21097, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "2776:10:10", + "src": "3958:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 20950, + "id": 21098, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20876, - "src": "2788:8:10", + "referencedDeclaration": 21010, + "src": "3970:8:10", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -3910,18 +5301,18 @@ "typeString": "string memory" } ], - "id": 20946, + "id": 21094, "name": "PromptResponse", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20582, - "src": "2751:14:10", + "referencedDeclaration": 20586, + "src": "3933:14:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,address,string memory)" } }, - "id": 20951, + "id": 21099, "isConstant": false, "isLValue": false, "isPure": false, @@ -3929,41 +5320,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2751:46:10", + "src": "3933:46:10", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 20952, + "id": 21100, "nodeType": "EmitStatement", - "src": "2746:51:10" + "src": "3928:51:10" } ] }, "baseFunctions": [ - 20645 + 20684 ], - "functionSelector": "d8fcb578", + "functionSelector": "c0b93167", "implemented": true, "kind": "function", "modifiers": [], "name": "respond", - "nameLocation": "2187:7:10", + "nameLocation": "3199:7:10", "parameters": { - "id": 20877, + "id": 21011, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 20874, + "id": 21006, + "mutability": "mutable", + "name": "instanceId", + "nameLocation": "3224:10:10", + "nodeType": "VariableDeclaration", + "scope": 21102, + "src": "3216:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3216:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 21008, "mutability": "mutable", "name": "promptId", - "nameLocation": "2203:8:10", + "nameLocation": "3252:8:10", "nodeType": "VariableDeclaration", - "scope": 20954, - "src": "2195:16:10", + "scope": 21102, + "src": "3244:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3971,10 +5389,10 @@ "typeString": "uint256" }, "typeName": { - "id": 20873, + "id": 21007, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2195:7:10", + "src": "3244:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3984,13 +5402,13 @@ }, { "constant": false, - "id": 20876, + "id": 21010, "mutability": "mutable", "name": "response", - "nameLocation": "2227:8:10", + "nameLocation": "3284:8:10", "nodeType": "VariableDeclaration", - "scope": 20954, - "src": "2213:22:10", + "scope": 21102, + "src": "3270:22:10", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3998,10 +5416,10 @@ "typeString": "string" }, "typeName": { - "id": 20875, + "id": 21009, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2213:6:10", + "src": "3270:6:10", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4010,15 +5428,15 @@ "visibility": "internal" } ], - "src": "2194:42:10" + "src": "3206:92:10" }, "returnParameters": { - "id": 20878, + "id": 21012, "nodeType": "ParameterList", "parameters": [], - "src": "2244:0:10" + "src": "3306:0:10" }, - "scope": 20955, + "scope": 21103, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" @@ -4028,13 +5446,13 @@ "baseContracts": [ { "baseName": { - "id": 20651, + "id": 20690, "name": "IPrompty", "nodeType": "IdentifierPath", - "referencedDeclaration": 20646, + "referencedDeclaration": 20685, "src": "124:8:10" }, - "id": 20652, + "id": 20691, "nodeType": "InheritanceSpecifier", "src": "124:8:10" } @@ -4044,21 +5462,21 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 20955, - 20646 + 21103, + 20685 ], "name": "Prompty", "nameLocation": "113:7:10", - "scope": 20956, + "scope": 21104, "usedErrors": [ - 20596, - 20598, - 20600, - 20602, - 20604, - 20606, - 20608, - 20610 + 20614, + 20616, + 20618, + 20620, + 20622, + 20624, + 20626, + 20628 ] } ], diff --git a/packages/contracts-forge/out/Prompty.t.sol/PromptyTest.json b/packages/contracts-forge/out/Prompty.t.sol/PromptyTest.json index 23009e9..a05e402 100644 --- a/packages/contracts-forge/out/Prompty.t.sol/PromptyTest.json +++ b/packages/contracts-forge/out/Prompty.t.sol/PromptyTest.json @@ -317,13 +317,13 @@ } ], "bytecode": { - "object": "0x60806040526000805460ff1916600117905534801561001d57600080fd5b506119e98061002d6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630a9254e41461005c57806388a9cd65146100665780639f4893041461006e578063ba414fa614610076578063fa7626d414610092575b600080fd5b61006461009f565b005b6100646100f0565b6100646102da565b61007e6107f9565b604051901515815260200160405180910390f35b60005461007e9060ff1681565b6040516100ab90610b5b565b604051809103906000f0801580156100c7573d6000803e3d6000fd5b50600060026101000a8154816001600160a01b0302191690836001600160a01b03160217905550565b606073d286064cc27514b914bab0f2fad2e1a89a91f3148160008151811061011a5761011a610b68565b6001600160a01b039283166020918202929092010152600054604051636b8ade3b60e11b8152620100009091049091169063d715bc769061015f908490600401610b7e565b600060405180830381600087803b15801561017957600080fd5b505af115801561018d573d6000803e3d6000fd5b5050600080546201000090046001600160a01b03169250635542bbae91506101b642600a610be6565b600160646040518563ffffffff1660e01b81526004016101d99493929190610c0c565b600060405180830381600087803b1580156101f357600080fd5b505af1158015610207573d6000803e3d6000fd5b50506000805460405163d4cf9af760e01b815260048101839052919350839250829182916201000090046001600160a01b03169063d4cf9af790602401608060405180830381865afa158015610261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102859190610c68565b93509350935093506102978442610924565b6102ab836102a642600a610be6565b610924565b6102bf826001600160801b03166001610924565b6102d3816001600160801b03166064610924565b5050505050565b604051630618f58760e51b815263bad818f360e01b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c31eb0e090602401600060405180830381600087803b15801561032d57600080fd5b505af1158015610341573d6000803e3d6000fd5b505060008054604051631b1f96af60e31b8152620100009091046001600160a01b0316935063d8fcb578925061037a9190600401610cae565b600060405180830381600087803b15801561039457600080fd5b505af11580156103a8573d6000803e3d6000fd5b50505050606073d286064cc27514b914bab0f2fad2e1a89a91f314816000815181106103d6576103d6610b68565b6001600160a01b039283166020918202929092010152600054604051636b8ade3b60e11b8152620100009091049091169063d715bc769061041b908490600401610b7e565b600060405180830381600087803b15801561043557600080fd5b505af1158015610449573d6000803e3d6000fd5b5050600080546201000090046001600160a01b03169250635542bbae915061047242600a610be6565b600160646040518563ffffffff1660e01b81526004016104959493929190610c0c565b600060405180830381600087803b1580156104af57600080fd5b505af11580156104c3573d6000803e3d6000fd5b5050604051630618f58760e51b815263254082dd60e11b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561051a57600080fd5b505af115801561052e573d6000803e3d6000fd5b50506000805460408051631b1f96af60e31b815260048101849052602481019190915260448101929092526201000090046001600160a01b0316925063d8fcb5789150606401600060405180830381600087803b15801561058e57600080fd5b505af11580156105a2573d6000803e3d6000fd5b5050604051630618f58760e51b8152632707879b60e11b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b1580156105f957600080fd5b505af115801561060d573d6000803e3d6000fd5b50506000805460408051631b1f96af60e31b815260048101939093526024830152606560448301527f2020202020202020202020202020202020202020202020202020202020202020606483018190526084830181905260a483015264010101010160dd1b60c48301526201000090046001600160a01b0316925063d8fcb578915060e401600060405180830381600087803b1580156106ac57600080fd5b505af11580156106c0573d6000803e3d6000fd5b505060008054604051631b1f96af60e31b8152620100009091046001600160a01b0316935063d8fcb57892506106f99190600401610cae565b600060405180830381600087803b15801561071357600080fd5b505af1158015610727573d6000803e3d6000fd5b5050604051630618f58760e51b815263251aba6960e11b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561077e57600080fd5b505af1158015610792573d6000803e3d6000fd5b505060008054604051631b1f96af60e31b8152620100009091046001600160a01b0316935063d8fcb57892506107cb9190600401610cae565b600060405180830381600087803b1580156107e557600080fd5b505af11580156102d3573d6000803e3d6000fd5b60008054610100900460ff16156108195750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561091f5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b828401528251808303840181526060830190935260009290916108a7917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001610d12565b60408051601f19818403018152908290526108c191610d36565b6000604051808303816000865af19150503d80600081146108fe576040519150601f19603f3d011682016040523d82523d6000602084013e610903565b606091505b509150508080602001905181019061091b9190610d49565b9150505b919050565b808214610a4b577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516109959060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a160408051818152600a81830152690808115e1c1958dd195960b21b60608201526020810183905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a160408051818152600a8183015269080808081058dd1d585b60b21b60608201526020810184905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a1610a4b610a4f565b5050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610b4a5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f1981840301815290829052610ae99291602001610d12565b60408051601f1981840301815290829052610b0391610d36565b6000604051808303816000865af19150503d8060008114610b40576040519150601f19603f3d011682016040523d82523d6000602084013e610b45565b606091505b505050505b6000805461ff001916610100179055565b610c4880610d6c83390190565b634e487b7160e01b600052603260045260246000fd5b604080825282519082018190526000906020906060840190828601845b82811015610bc05781516001600160a01b031684529284019290840190600101610b9b565b5050508381039382019390935260048352631d195cdd60e21b9083015250604001919050565b60008219821115610c0757634e487b7160e01b600052601160045260246000fd5b500190565b93845260a060208501819052600690850152651c1c9bdb5c1d60d21b60c085015260408401929092526001600160801b03908116606084015216608082015260e00190565b80516001600160801b038116811461091f57600080fd5b60008060008060808587031215610c7e57600080fd5b8451935060208501519250610c9560408601610c51565b9150610ca360608601610c51565b905092959194509250565b90815260406020820181905260089082015267726573706f6e736560c01b606082015260800190565b6000815160005b81811015610cf85760208185018101518683015201610cde565b81811115610d07576000828601525b509290920192915050565b6001600160e01b0319831681526000610d2e6004830184610cd7565b949350505050565b6000610d428284610cd7565b9392505050565b600060208284031215610d5b57600080fd5b81518015158114610d4257600080fdfe60806040526000805534801561001457600080fd5b50610c24806100246000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a836afab1161005b578063a836afab146100d4578063d4cf9af7146100e7578063d715bc7614610158578063d8fcb5781461016b57600080fd5b806317e7d99d146100825780635542bbae1461009e578063a2f7b3a5146100b3575b600080fd5b61008b60005481565b6040519081526020015b60405180910390f35b6100b16100ac366004610879565b61017e565b005b6100c66100c13660046108eb565b610303565b604051610095929190610951565b6100b16100e2366004610989565b6103a8565b6101296100f53660046108eb565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b0391821692840192909252166060820152608001610095565b6100b16101663660046109b5565b61043c565b6100b1610179366004610a84565b61058d565b6000858152600260208181526040808420338552909201905281205460ff16151590036101be57604051631eb49d6d60e11b815260040160405180910390fd5b83516000036101e0576040516345df16e360e11b815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561021357604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161023d57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b03161061026857604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517f70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f926102dc928a92909133918b91908b908b908b90610ac1565b60405180910390a160016000808282546102f69190610b3a565b9091555050505050505050565b6002602052600090815260409020805460018201805491929161032590610b52565b80601f016020809104026020016040519081016040528092919081815260200182805461035190610b52565b801561039e5780601f106103735761010080835404028352916020019161039e565b820191906000526020600020905b81548152906001019060200180831161038157829003601f168201915b5050505050905082565b60008281526002602081815260408084206001600160a01b03861685529283019091529091205460ff16610437576001600160a01b0382166000818152600283016020908152604091829020805460ff191660011790558151868152908101929092527f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f38910160405180910390a15b505050565b60035460009081526002602090815260409091208251909161046591600184019185019061070d565b507f12a37195fcb94c4dd39071e7d48a098630635e5ad29d4bcc83a4393278045b7a60035483604051610499929190610951565b60405180910390a160005b835181101561057e5760018260020160008684815181106104c7576104c7610b8c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f3860035485838151811061053c5761053c610b8c565b60200260200101516040516105649291909182526001600160a01b0316602082015260400190565b60405180910390a18061057681610ba2565b9150506104a4565b50506003805460010190555050565b60005482106105af5760405163bad818f360e01b815260040160405180910390fd5b600082815260016020819052604090912001544211156105e2576040516317eeb92b60e31b815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff16156106205760405163251aba6960e11b815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b03909116111561065e5760405163254082dd60e11b815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b031610156106a257604051632707879b60e11b815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e588091610701918591908590610bbb565b60405180910390a15050565b82805461071990610b52565b90600052602060002090601f01602090048101928261073b5760008555610781565b82601f1061075457805160ff1916838001178555610781565b82800160010185558215610781579182015b82811115610781578251825591602001919060010190610766565b5061078d929150610791565b5090565b5b8082111561078d5760008155600101610792565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156107e5576107e56107a6565b604052919050565b600082601f8301126107fe57600080fd5b813567ffffffffffffffff811115610818576108186107a6565b61082b601f8201601f19166020016107bc565b81815284602083860101111561084057600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160801b038116811461087457600080fd5b919050565b600080600080600060a0868803121561089157600080fd5b85359450602086013567ffffffffffffffff8111156108af57600080fd5b6108bb888289016107ed565b945050604086013592506108d16060870161085d565b91506108df6080870161085d565b90509295509295909350565b6000602082840312156108fd57600080fd5b5035919050565b6000815180845260005b8181101561092a5760208185018101518683018201520161090e565b8181111561093c576000602083870101525b50601f01601f19169290920160200192915050565b82815260406020820152600061096a6040830184610904565b949350505050565b80356001600160a01b038116811461087457600080fd5b6000806040838503121561099c57600080fd5b823591506109ac60208401610972565b90509250929050565b600080604083850312156109c857600080fd5b823567ffffffffffffffff808211156109e057600080fd5b818501915085601f8301126109f457600080fd5b8135602082821115610a0857610a086107a6565b8160051b610a178282016107bc565b928352848101820192828101908a851115610a3157600080fd5b958301955b84871015610a5657610a4787610972565b82529583019590830190610a36565b9750505086013592505080821115610a6d57600080fd5b50610a7a858286016107ed565b9150509250929050565b60008060408385031215610a9757600080fd5b82359150602083013567ffffffffffffffff811115610ab557600080fd5b610a7a858286016107ed565b888152602081018890526001600160a01b038716604082015261010060608201819052600090610af383820189610904565b6080840197909752505060a08101939093526001600160801b0391821660c08401521660e090910152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610b4d57610b4d610b24565b500190565b600181811c90821680610b6657607f821691505b602082108103610b8657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060018201610bb457610bb4610b24565b5060010190565b8381526001600160a01b0383166020820152606060408201819052600090610be590830184610904565b9594505050505056fea26469706673582212207bef5fdd5ea939eaefc8e29369db06401634e0717757f06d0bb0646768bcfef064736f6c634300080d0033a2646970667358221220cbc1e293988db7d6bc9b2bf604b0e0e4ce36080fb75f4f1fa977e30e2d0af9fc64736f6c634300080d0033", - "sourceMap": "175:1678:14:-:0;;;1572:26:0;;;-1:-1:-1;;1572:26:0;1594:4;1572:26;;;175:1678:14;;;;;;;;;;;;;;;;", + "object": "0x60806040526000805460ff1916600117905534801561001d57600080fd5b50611edb8061002d6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630a9254e41461005c57806388a9cd65146100665780639f4893041461006e578063ba414fa614610076578063fa7626d414610092575b600080fd5b61006461009f565b005b6100646100f0565b6100646102dd565b61007e610813565b604051901515815260200160405180910390f35b60005461007e9060ff1681565b6040516100ab90610b75565b604051809103906000f0801580156100c7573d6000803e3d6000fd5b50600060026101000a8154816001600160a01b0302191690836001600160a01b03160217905550565b606073d286064cc27514b914bab0f2fad2e1a89a91f3148160008151811061011a5761011a610b82565b6001600160a01b03928316602091820292909201015260005460405163f2e7162d60e01b8152620100009091049091169063f2e7162d90610162908490600190600401610b98565b600060405180830381600087803b15801561017c57600080fd5b505af1158015610190573d6000803e3d6000fd5b5050600080546201000090046001600160a01b03169250635542bbae91506101b942600a610c3c565b600160646040518563ffffffff1660e01b81526004016101dc9493929190610c62565b600060405180830381600087803b1580156101f657600080fd5b505af115801561020a573d6000803e3d6000fd5b50506000805460405163d4cf9af760e01b815260048101839052919350839250829182916201000090046001600160a01b03169063d4cf9af790602401608060405180830381865afa158015610264573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102889190610cbe565b935093509350935061029a844261093e565b6102ae836102a942600a610c3c565b61093e565b6102c2826001600160801b0316600161093e565b6102d6816001600160801b0316606461093e565b5050505050565b604051630618f58760e51b815263bad818f360e01b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c31eb0e090602401600060405180830381600087803b15801561033057600080fd5b505af1158015610344573d6000803e3d6000fd5b50506000805460405163c0b9316760e01b8152620100009091046001600160a01b0316935063c0b93167925061037f91908190600401610d04565b600060405180830381600087803b15801561039957600080fd5b505af11580156103ad573d6000803e3d6000fd5b50505050606073d286064cc27514b914bab0f2fad2e1a89a91f314816000815181106103db576103db610b82565b6001600160a01b03928316602091820292909201015260005460405163f2e7162d60e01b8152620100009091049091169063f2e7162d90610423908490600190600401610b98565b600060405180830381600087803b15801561043d57600080fd5b505af1158015610451573d6000803e3d6000fd5b5050600080546201000090046001600160a01b03169250635542bbae915061047a42600a610c3c565b600160646040518563ffffffff1660e01b815260040161049d9493929190610c62565b600060405180830381600087803b1580156104b757600080fd5b505af11580156104cb573d6000803e3d6000fd5b5050604051630618f58760e51b815263254082dd60e11b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561052257600080fd5b505af1158015610536573d6000803e3d6000fd5b50506000805460405163c0b9316760e01b815260048101839052602481018390526060604482015260648101929092526201000090046001600160a01b0316925063c0b931679150608401600060405180830381600087803b15801561059b57600080fd5b505af11580156105af573d6000803e3d6000fd5b5050604051630618f58760e51b8152632707879b60e11b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561060657600080fd5b505af115801561061a573d6000803e3d6000fd5b50506000805460405163c0b9316760e01b815260048101839052602481019290925260606044830152606560648301527f20202020202020202020202020202020202020202020202020202020202020206084830181905260a4830181905260c483015264010101010160dd1b60e48301526201000090046001600160a01b0316925063c0b93167915061010401600060405180830381600087803b1580156106c257600080fd5b505af11580156106d6573d6000803e3d6000fd5b50506000805460405163c0b9316760e01b8152620100009091046001600160a01b0316935063c0b93167925061071191908190600401610d04565b600060405180830381600087803b15801561072b57600080fd5b505af115801561073f573d6000803e3d6000fd5b5050604051630618f58760e51b815263251aba6960e11b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561079657600080fd5b505af11580156107aa573d6000803e3d6000fd5b50506000805460405163c0b9316760e01b8152620100009091046001600160a01b0316935063c0b9316792506107e591908190600401610d04565b600060405180830381600087803b1580156107ff57600080fd5b505af11580156102d6573d6000803e3d6000fd5b60008054610100900460ff16156108335750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156109395760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b828401528251808303840181526060830190935260009290916108c1917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001610d6d565b60408051601f19818403018152908290526108db91610d91565b6000604051808303816000865af19150503d8060008114610918576040519150601f19603f3d011682016040523d82523d6000602084013e61091d565b606091505b50915050808060200190518101906109359190610d9d565b9150505b919050565b808214610a65577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516109af9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a160408051818152600a81830152690808115e1c1958dd195960b21b60608201526020810183905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a160408051818152600a8183015269080808081058dd1d585b60b21b60608201526020810184905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a1610a65610a69565b5050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610b645760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f1981840301815290829052610b039291602001610d6d565b60408051601f1981840301815290829052610b1d91610d91565b6000604051808303816000865af19150503d8060008114610b5a576040519150601f19603f3d011682016040523d82523d6000602084013e610b5f565b606091505b505050505b6000805461ff001916610100179055565b6110e680610dc083390190565b634e487b7160e01b600052603260045260246000fd5b6080808252835190820181905260009060209060a0840190828701845b82811015610bda5781516001600160a01b031684529284019290840190600101610bb5565b505050838103808386015260048252631d195cdd60e21b8383015260408101604086015250601060408201526f3a32b9ba103232b9b1b934b83a34b7b760811b60608201526080810192505050610c35606083018415159052565b9392505050565b60008219821115610c5d57634e487b7160e01b600052601160045260246000fd5b500190565b93845260a060208501819052600690850152651c1c9bdb5c1d60d21b60c085015260408401929092526001600160801b03908116606084015216608082015260e00190565b80516001600160801b038116811461093957600080fd5b60008060008060808587031215610cd457600080fd5b8451935060208501519250610ceb60408601610ca7565b9150610cf960608601610ca7565b905092959194509250565b918252602082015260606040820181905260089082015267726573706f6e736560c01b608082015260a00190565b6000815160005b81811015610d535760208185018101518683015201610d39565b81811115610d62576000828601525b509290920192915050565b6001600160e01b0319831681526000610d896004830184610d32565b949350505050565b6000610c358284610d32565b600060208284031215610daf57600080fd5b81518015158114610c3557600080fdfe60806040526000805534801561001457600080fd5b506110c2806100246000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c0b931671161005b578063c0b93167146100f4578063d4cf9af714610107578063f2e7162d14610178578063f61044da1461018b57600080fd5b806317e7d99d1461008d578063493d5fe5146100a95780635542bbae146100be578063a2f7b3a5146100d1575b600080fd5b61009660005481565b6040519081526020015b60405180910390f35b6100bc6100b7366004610b61565b61019e565b005b6100bc6100cc366004610c1b565b61027d565b6100e46100df366004610c8d565b610403565b6040516100a09493929190610cf3565b6100bc610102366004610d26565b610545565b610149610115366004610c8d565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b03918216928401929092521660608201526080016100a0565b6100bc610186366004610d76565b610707565b6100bc610199366004610e0f565b610876565b600085815260026020908152604080832033845260048101909252822054909160ff909116151590036101e457604051631eb49d6d60e11b815260040160405180910390fd5b84516101f99060018301906020880190610966565b50835161020f9060038301906020870190610966565b5060028101805460ff191684151517905561022a8683610876565b60028101546040517f684102838bf7c97f957e6c1fe2f1e0316964904f1575bf7de9a493b8fdab1f7d9161026d9189916001860191600387019160ff1690610f2f565b60405180910390a1505050505050565b600085815260026020908152604080832033845260040190915281205460ff16151590036102be57604051631eb49d6d60e11b815260040160405180910390fd5b83516000036102e0576040516345df16e360e11b815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561031357604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161033d57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b03161061036857604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517f70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f926103dc928a92909133918b91908b908b908b90610f6e565b60405180910390a160016000808282546103f69190610fe7565b9091555050505050505050565b6002602052600090815260409020805460018201805491929161042590610e56565b80601f016020809104026020016040519081016040528092919081815260200182805461045190610e56565b801561049e5780601f106104735761010080835404028352916020019161049e565b820191906000526020600020905b81548152906001019060200180831161048157829003601f168201915b5050506002840154600385018054949560ff9092169491935091506104c290610e56565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee90610e56565b801561053b5780601f106105105761010080835404028352916020019161053b565b820191906000526020600020905b81548152906001019060200180831161051e57829003601f168201915b5050505050905084565b600083815260026020908152604080832033845260040190915281205460ff161515900361058657604051631eb49d6d60e11b815260040160405180910390fd5b60005482106105a85760405163bad818f360e01b815260040160405180910390fd5b600082815260016020819052604090912001544211156105db576040516317eeb92b60e31b815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff16156106195760405163251aba6960e11b815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b0390911611156106575760405163254082dd60e11b815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b0316101561069b57604051632707879b60e11b815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e5880916106fa918591908590610fff565b60405180910390a1505050565b600354600090815260026020908152604090912084519091610730916001840191870190610966565b5060028101805460ff19168315159081179091556003546040517f344a4ee11c050981b3cfdbc9ebfb417404a057d40c7f019607da26a367b63e929261078092918891889160ff90911690611032565b60405180910390a160005b85518110156108655760018260040160008884815181106107ae576107ae61105d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f386003548783815181106108235761082361105d565b602002602001015160405161084b9291909182526001600160a01b0316602082015260400190565b60405180910390a18061085d81611073565b91505061078b565b505060038054600101905550505050565b6000828152600260205260408120905b82518110156109605760018260040160008584815181106108a9576108a961105d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f3860035484838151811061091e5761091e61105d565b60200260200101516040516109469291909182526001600160a01b0316602082015260400190565b60405180910390a18061095881611073565b915050610886565b50505050565b82805461097290610e56565b90600052602060002090601f01602090048101928261099457600085556109da565b82601f106109ad57805160ff19168380011785556109da565b828001600101855582156109da579182015b828111156109da5782518255916020019190600101906109bf565b506109e69291506109ea565b5090565b5b808211156109e657600081556001016109eb565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610a3e57610a3e6109ff565b604052919050565b600082601f830112610a5757600080fd5b813567ffffffffffffffff811115610a7157610a716109ff565b610a84601f8201601f1916602001610a15565b818152846020838601011115610a9957600080fd5b816020850160208301376000918101602001919091529392505050565b80358015158114610ac657600080fd5b919050565b600082601f830112610adc57600080fd5b8135602067ffffffffffffffff821115610af857610af86109ff565b8160051b610b07828201610a15565b9283528481018201928281019087851115610b2157600080fd5b83870192505b84831015610b565782356001600160a01b0381168114610b475760008081fd5b82529183019190830190610b27565b979650505050505050565b600080600080600060a08688031215610b7957600080fd5b85359450602086013567ffffffffffffffff80821115610b9857600080fd5b610ba489838a01610a46565b95506040880135915080821115610bba57600080fd5b610bc689838a01610a46565b9450610bd460608901610ab6565b93506080880135915080821115610bea57600080fd5b50610bf788828901610acb565b9150509295509295909350565b80356001600160801b0381168114610ac657600080fd5b600080600080600060a08688031215610c3357600080fd5b85359450602086013567ffffffffffffffff811115610c5157600080fd5b610c5d88828901610a46565b94505060408601359250610c7360608701610c04565b9150610c8160808701610c04565b90509295509295909350565b600060208284031215610c9f57600080fd5b5035919050565b6000815180845260005b81811015610ccc57602081850181015186830182015201610cb0565b81811115610cde576000602083870101525b50601f01601f19169290920160200192915050565b848152608060208201526000610d0c6080830186610ca6565b84151560408401528281036060840152610b568185610ca6565b600080600060608486031215610d3b57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115610d6057600080fd5b610d6c86828701610a46565b9150509250925092565b60008060008060808587031215610d8c57600080fd5b843567ffffffffffffffff80821115610da457600080fd5b610db088838901610acb565b95506020870135915080821115610dc657600080fd5b610dd288838901610a46565b94506040870135915080821115610de857600080fd5b50610df587828801610a46565b925050610e0460608601610ab6565b905092959194509250565b60008060408385031215610e2257600080fd5b82359150602083013567ffffffffffffffff811115610e4057600080fd5b610e4c85828601610acb565b9150509250929050565b600181811c90821680610e6a57607f821691505b602082108103610e8a57634e487b7160e01b600052602260045260246000fd5b50919050565b8054600090600181811c9080831680610eaa57607f831692505b60208084108203610ecb57634e487b7160e01b600052602260045260246000fd5b83885260208801828015610ee65760018114610ef757610f22565b60ff19871682528282019750610f22565b60008981526020902060005b87811015610f1c57815484820152908601908401610f03565b83019850505b5050505050505092915050565b848152608060208201526000610f486080830186610e90565b8281036040840152610f5a8186610e90565b915050821515606083015295945050505050565b888152602081018890526001600160a01b038716604082015261010060608201819052600090610fa083820189610ca6565b6080840197909752505060a08101939093526001600160801b0391821660c08401521660e090910152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610ffa57610ffa610fd1565b500190565b8381526001600160a01b038316602082015260606040820181905260009061102990830184610ca6565b95945050505050565b84815260806020820152600061104b6080830186610ca6565b8281036040840152610f5a8186610ca6565b634e487b7160e01b600052603260045260246000fd5b60006001820161108557611085610fd1565b506001019056fea26469706673582212209ff91a7a28fa069deea61ec420562369a941ece1ddaab34d1dfaca1c6e50320a64736f6c634300080d0033a2646970667358221220cb1e718355660fa20e5b2cb7996e8bdee81a8c75243d35c146ca17ff1c11b70c64736f6c634300080d0033", + "sourceMap": "175:1873:14:-:0;;;1572:26:0;;;-1:-1:-1;;1572:26:0;1594:4;1572:26;;;175:1873:14;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80630a9254e41461005c57806388a9cd65146100665780639f4893041461006e578063ba414fa614610076578063fa7626d414610092575b600080fd5b61006461009f565b005b6100646100f0565b6100646102da565b61007e6107f9565b604051901515815260200160405180910390f35b60005461007e9060ff1681565b6040516100ab90610b5b565b604051809103906000f0801580156100c7573d6000803e3d6000fd5b50600060026101000a8154816001600160a01b0302191690836001600160a01b03160217905550565b606073d286064cc27514b914bab0f2fad2e1a89a91f3148160008151811061011a5761011a610b68565b6001600160a01b039283166020918202929092010152600054604051636b8ade3b60e11b8152620100009091049091169063d715bc769061015f908490600401610b7e565b600060405180830381600087803b15801561017957600080fd5b505af115801561018d573d6000803e3d6000fd5b5050600080546201000090046001600160a01b03169250635542bbae91506101b642600a610be6565b600160646040518563ffffffff1660e01b81526004016101d99493929190610c0c565b600060405180830381600087803b1580156101f357600080fd5b505af1158015610207573d6000803e3d6000fd5b50506000805460405163d4cf9af760e01b815260048101839052919350839250829182916201000090046001600160a01b03169063d4cf9af790602401608060405180830381865afa158015610261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102859190610c68565b93509350935093506102978442610924565b6102ab836102a642600a610be6565b610924565b6102bf826001600160801b03166001610924565b6102d3816001600160801b03166064610924565b5050505050565b604051630618f58760e51b815263bad818f360e01b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c31eb0e090602401600060405180830381600087803b15801561032d57600080fd5b505af1158015610341573d6000803e3d6000fd5b505060008054604051631b1f96af60e31b8152620100009091046001600160a01b0316935063d8fcb578925061037a9190600401610cae565b600060405180830381600087803b15801561039457600080fd5b505af11580156103a8573d6000803e3d6000fd5b50505050606073d286064cc27514b914bab0f2fad2e1a89a91f314816000815181106103d6576103d6610b68565b6001600160a01b039283166020918202929092010152600054604051636b8ade3b60e11b8152620100009091049091169063d715bc769061041b908490600401610b7e565b600060405180830381600087803b15801561043557600080fd5b505af1158015610449573d6000803e3d6000fd5b5050600080546201000090046001600160a01b03169250635542bbae915061047242600a610be6565b600160646040518563ffffffff1660e01b81526004016104959493929190610c0c565b600060405180830381600087803b1580156104af57600080fd5b505af11580156104c3573d6000803e3d6000fd5b5050604051630618f58760e51b815263254082dd60e11b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561051a57600080fd5b505af115801561052e573d6000803e3d6000fd5b50506000805460408051631b1f96af60e31b815260048101849052602481019190915260448101929092526201000090046001600160a01b0316925063d8fcb5789150606401600060405180830381600087803b15801561058e57600080fd5b505af11580156105a2573d6000803e3d6000fd5b5050604051630618f58760e51b8152632707879b60e11b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b1580156105f957600080fd5b505af115801561060d573d6000803e3d6000fd5b50506000805460408051631b1f96af60e31b815260048101939093526024830152606560448301527f2020202020202020202020202020202020202020202020202020202020202020606483018190526084830181905260a483015264010101010160dd1b60c48301526201000090046001600160a01b0316925063d8fcb578915060e401600060405180830381600087803b1580156106ac57600080fd5b505af11580156106c0573d6000803e3d6000fd5b505060008054604051631b1f96af60e31b8152620100009091046001600160a01b0316935063d8fcb57892506106f99190600401610cae565b600060405180830381600087803b15801561071357600080fd5b505af1158015610727573d6000803e3d6000fd5b5050604051630618f58760e51b815263251aba6960e11b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561077e57600080fd5b505af1158015610792573d6000803e3d6000fd5b505060008054604051631b1f96af60e31b8152620100009091046001600160a01b0316935063d8fcb57892506107cb9190600401610cae565b600060405180830381600087803b1580156107e557600080fd5b505af11580156102d3573d6000803e3d6000fd5b60008054610100900460ff16156108195750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561091f5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b828401528251808303840181526060830190935260009290916108a7917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001610d12565b60408051601f19818403018152908290526108c191610d36565b6000604051808303816000865af19150503d80600081146108fe576040519150601f19603f3d011682016040523d82523d6000602084013e610903565b606091505b509150508080602001905181019061091b9190610d49565b9150505b919050565b808214610a4b577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516109959060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a160408051818152600a81830152690808115e1c1958dd195960b21b60608201526020810183905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a160408051818152600a8183015269080808081058dd1d585b60b21b60608201526020810184905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a1610a4b610a4f565b5050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610b4a5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f1981840301815290829052610ae99291602001610d12565b60408051601f1981840301815290829052610b0391610d36565b6000604051808303816000865af19150503d8060008114610b40576040519150601f19603f3d011682016040523d82523d6000602084013e610b45565b606091505b505050505b6000805461ff001916610100179055565b610c4880610d6c83390190565b634e487b7160e01b600052603260045260246000fd5b604080825282519082018190526000906020906060840190828601845b82811015610bc05781516001600160a01b031684529284019290840190600101610b9b565b5050508381039382019390935260048352631d195cdd60e21b9083015250604001919050565b60008219821115610c0757634e487b7160e01b600052601160045260246000fd5b500190565b93845260a060208501819052600690850152651c1c9bdb5c1d60d21b60c085015260408401929092526001600160801b03908116606084015216608082015260e00190565b80516001600160801b038116811461091f57600080fd5b60008060008060808587031215610c7e57600080fd5b8451935060208501519250610c9560408601610c51565b9150610ca360608601610c51565b905092959194509250565b90815260406020820181905260089082015267726573706f6e736560c01b606082015260800190565b6000815160005b81811015610cf85760208185018101518683015201610cde565b81811115610d07576000828601525b509290920192915050565b6001600160e01b0319831681526000610d2e6004830184610cd7565b949350505050565b6000610d428284610cd7565b9392505050565b600060208284031215610d5b57600080fd5b81518015158114610d4257600080fdfe60806040526000805534801561001457600080fd5b50610c24806100246000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a836afab1161005b578063a836afab146100d4578063d4cf9af7146100e7578063d715bc7614610158578063d8fcb5781461016b57600080fd5b806317e7d99d146100825780635542bbae1461009e578063a2f7b3a5146100b3575b600080fd5b61008b60005481565b6040519081526020015b60405180910390f35b6100b16100ac366004610879565b61017e565b005b6100c66100c13660046108eb565b610303565b604051610095929190610951565b6100b16100e2366004610989565b6103a8565b6101296100f53660046108eb565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b0391821692840192909252166060820152608001610095565b6100b16101663660046109b5565b61043c565b6100b1610179366004610a84565b61058d565b6000858152600260208181526040808420338552909201905281205460ff16151590036101be57604051631eb49d6d60e11b815260040160405180910390fd5b83516000036101e0576040516345df16e360e11b815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561021357604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161023d57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b03161061026857604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517f70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f926102dc928a92909133918b91908b908b908b90610ac1565b60405180910390a160016000808282546102f69190610b3a565b9091555050505050505050565b6002602052600090815260409020805460018201805491929161032590610b52565b80601f016020809104026020016040519081016040528092919081815260200182805461035190610b52565b801561039e5780601f106103735761010080835404028352916020019161039e565b820191906000526020600020905b81548152906001019060200180831161038157829003601f168201915b5050505050905082565b60008281526002602081815260408084206001600160a01b03861685529283019091529091205460ff16610437576001600160a01b0382166000818152600283016020908152604091829020805460ff191660011790558151868152908101929092527f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f38910160405180910390a15b505050565b60035460009081526002602090815260409091208251909161046591600184019185019061070d565b507f12a37195fcb94c4dd39071e7d48a098630635e5ad29d4bcc83a4393278045b7a60035483604051610499929190610951565b60405180910390a160005b835181101561057e5760018260020160008684815181106104c7576104c7610b8c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f3860035485838151811061053c5761053c610b8c565b60200260200101516040516105649291909182526001600160a01b0316602082015260400190565b60405180910390a18061057681610ba2565b9150506104a4565b50506003805460010190555050565b60005482106105af5760405163bad818f360e01b815260040160405180910390fd5b600082815260016020819052604090912001544211156105e2576040516317eeb92b60e31b815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff16156106205760405163251aba6960e11b815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b03909116111561065e5760405163254082dd60e11b815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b031610156106a257604051632707879b60e11b815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e588091610701918591908590610bbb565b60405180910390a15050565b82805461071990610b52565b90600052602060002090601f01602090048101928261073b5760008555610781565b82601f1061075457805160ff1916838001178555610781565b82800160010185558215610781579182015b82811115610781578251825591602001919060010190610766565b5061078d929150610791565b5090565b5b8082111561078d5760008155600101610792565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156107e5576107e56107a6565b604052919050565b600082601f8301126107fe57600080fd5b813567ffffffffffffffff811115610818576108186107a6565b61082b601f8201601f19166020016107bc565b81815284602083860101111561084057600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160801b038116811461087457600080fd5b919050565b600080600080600060a0868803121561089157600080fd5b85359450602086013567ffffffffffffffff8111156108af57600080fd5b6108bb888289016107ed565b945050604086013592506108d16060870161085d565b91506108df6080870161085d565b90509295509295909350565b6000602082840312156108fd57600080fd5b5035919050565b6000815180845260005b8181101561092a5760208185018101518683018201520161090e565b8181111561093c576000602083870101525b50601f01601f19169290920160200192915050565b82815260406020820152600061096a6040830184610904565b949350505050565b80356001600160a01b038116811461087457600080fd5b6000806040838503121561099c57600080fd5b823591506109ac60208401610972565b90509250929050565b600080604083850312156109c857600080fd5b823567ffffffffffffffff808211156109e057600080fd5b818501915085601f8301126109f457600080fd5b8135602082821115610a0857610a086107a6565b8160051b610a178282016107bc565b928352848101820192828101908a851115610a3157600080fd5b958301955b84871015610a5657610a4787610972565b82529583019590830190610a36565b9750505086013592505080821115610a6d57600080fd5b50610a7a858286016107ed565b9150509250929050565b60008060408385031215610a9757600080fd5b82359150602083013567ffffffffffffffff811115610ab557600080fd5b610a7a858286016107ed565b888152602081018890526001600160a01b038716604082015261010060608201819052600090610af383820189610904565b6080840197909752505060a08101939093526001600160801b0391821660c08401521660e090910152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610b4d57610b4d610b24565b500190565b600181811c90821680610b6657607f821691505b602082108103610b8657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060018201610bb457610bb4610b24565b5060010190565b8381526001600160a01b0383166020820152606060408201819052600090610be590830184610904565b9594505050505056fea26469706673582212207bef5fdd5ea939eaefc8e29369db06401634e0717757f06d0bb0646768bcfef064736f6c634300080d0033a2646970667358221220cbc1e293988db7d6bc9b2bf604b0e0e4ce36080fb75f4f1fa977e30e2d0af9fc64736f6c634300080d0033", - "sourceMap": "175:1678:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;293:64;;;:::i;:::-;;363:611;;;:::i;980:871::-;;;:::i;1819:584:0:-;;;:::i;:::-;;;179:14:15;;172:22;154:41;;142:2;127:18;1819:584:0;;;;;;;1572:26;;;;;;;;;293:64:14;337:13;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;327:7;;:23;;;;;-1:-1:-1;;;;;327:23:14;;;;;-1:-1:-1;;;;;327:23:14;;;;;;293:64::o;363:611::-;402:34;469:42;446:17;464:1;446:20;;;;;;;;:::i;:::-;-1:-1:-1;;;;;446:65:14;;;:20;;;;;;;;;:65;522:7;;:49;;-1:-1:-1;;;522:49:14;;:7;;;;;;;;:22;;:49;;545:17;;522:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;582:7:14;;;;;;-1:-1:-1;;;;;582:7:14;;-1:-1:-1;582:20:14;;-1:-1:-1;616:20:14;:15;634:2;616:20;:::i;:::-;638:1;641:3;582:63;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;670:17:14;789:7;;:18;;-1:-1:-1;;;789:18:14;;;;;2333:25:15;;;670:17:14;;-1:-1:-1;670:17:14;;-1:-1:-1;670:17:14;;;;789:7;;;-1:-1:-1;;;;;789:7:14;;:15;;2306:18:15;;789::14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;656:151;;;;;;;;818:36;827:9;838:15;818:8;:36::i;:::-;864:39;873:7;882:20;:15;900:2;882:20;:::i;:::-;864:8;:39::i;:::-;913:21;922:8;-1:-1:-1;;;;;913:21:14;932:1;913:8;:21::i;:::-;944:23;953:8;-1:-1:-1;;;;;944:23:14;963:3;944:8;:23::i;:::-;392:582;;;;;363:611::o;980:871::-;1020:54;;-1:-1:-1;;;1020:54:14;;-1:-1:-1;;;1020:54:14;;;3131:52:15;1671:64:0;;1020:19:14;;3104:18:15;;1020:54:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1084:7:14;;;:30;;-1:-1:-1;;;1084:30:14;;:7;;;;-1:-1:-1;;;;;1084:7:14;;-1:-1:-1;1084:15:14;;-1:-1:-1;1084:30:14;;:7;:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1125:34;1192:42;1169:17;1187:1;1169:20;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1169:65:14;;;:20;;;;;;;;;:65;1245:7;;:49;;-1:-1:-1;;;1245:49:14;;:7;;;;;;;;:22;;:49;;1268:17;;1245:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1304:7:14;;;;;;-1:-1:-1;;;;;1304:7:14;;-1:-1:-1;1304:20:14;;-1:-1:-1;1338:20:14;:15;1356:2;1338:20;:::i;:::-;1360:1;1363:3;1304:63;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1378:55:14;;-1:-1:-1;;;1378:55:14;;-1:-1:-1;;;1378:55:14;;;3131:52:15;1671:64:0;;-1:-1:-1;1378:19:14;;-1:-1:-1;3104:18:15;;1378:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1443:7:14;;;:22;;;-1:-1:-1;;;1443:22:14;;;;;3830:25:15;;;3871:18;;;3864:30;;;;3910:18;;;3903:29;;;;1443:7:14;;;-1:-1:-1;;;;;1443:7:14;;-1:-1:-1;1443:15:14;;-1:-1:-1;3949:18:15;;1443:22:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1476:54:14;;-1:-1:-1;;;1476:54:14;;-1:-1:-1;;;1476:54:14;;;3131:52:15;1671:64:0;;-1:-1:-1;1476:19:14;;-1:-1:-1;3104:18:15;;1476:54:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1540:7:14;;;:157;;;-1:-1:-1;;;1540:157:14;;;;;4198:25:15;;;;4239:18;;;4232:30;4298:3;4278:18;;;4271:31;4321:34;4371:18;;;4364:30;;;4410:19;;;4403:31;;;4450:19;;;4443:31;-1:-1:-1;;;4490:19:15;;;4483:36;1540:7:14;;;-1:-1:-1;;;;;1540:7:14;;-1:-1:-1;1540:15:14;;-1:-1:-1;4536:19:15;;1540:157:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1708:7:14;;;:30;;-1:-1:-1;;;1708:30:14;;:7;;;;-1:-1:-1;;;;;1708:7:14;;-1:-1:-1;1708:15:14;;-1:-1:-1;1708:30:14;;:7;:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1749:55:14;;-1:-1:-1;;;1749:55:14;;-1:-1:-1;;;1749:55:14;;;3131:52:15;1671:64:0;;-1:-1:-1;1749:19:14;;-1:-1:-1;3104:18:15;;1749:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1814:7:14;;;:30;;-1:-1:-1;;;1814:30:14;;:7;;;;-1:-1:-1;;;;;1814:7:14;;-1:-1:-1;1814:15:14;;-1:-1:-1;1814:30:14;;:7;:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584:0;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;2990:42;2978:55;3059:16;1980:374;;2196:43;;;1671:64;2196:43;;;4740:51:15;;;-1:-1:-1;;;4807:18:15;;;4800:34;2196:43:0;;;;;;;;;4713:18:15;;;2196:43:0;;;-1:-1:-1;;1671:64:0;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:0;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;5202:262::-;5264:1;5259;:6;5255:203;;5286:41;;;;;6147:2:15;6129:21;;;6186:2;6166:18;;;6159:30;6225:34;6220:2;6205:18;;6198:62;-1:-1:-1;;;6291:2:15;6276:18;;6269:32;6333:3;6318:19;;5945:398;5286:41:0;;;;;;;;5346:31;;;6560:21:15;;;6617:2;6597:18;;;6590:30;-1:-1:-1;;;6651:2:15;6636:18;;6629:40;6736:4;6721:20;;6714:36;;;5346:31:0;;;;;;;6701:3:15;5346:31:0;;;5396;;;6973:21:15;;;7030:2;7010:18;;;7003:30;-1:-1:-1;;;7064:2:15;7049:18;;7042:40;7149:4;7134:20;;7127:36;;;5396:31:0;;;;;;;7114:3:15;5396:31:0;;;5441:6;:4;:6::i;:::-;5202:262;;:::o;2410:424::-;2990:42;2978:55;3059:16;2445:359;;2645:67;;;1671:64;2645:67;;;7376:51:15;;;-1:-1:-1;;;7443:18:15;;;7436:34;;;;2705:4:0;7486:18:15;;;7479:34;2482:11:0;;1671:64;2579:43;;7349:18:15;;2645:67:0;;;-1:-1:-1;;2645:67:0;;;;;;;;;;2534:196;;;2645:67;2534:196;;:::i;:::-;;;;-1:-1:-1;;2534:196:0;;;;;;;;;;2499:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2445:359:0;2813:7;:14;;-1:-1:-1;;2813:14:0;;;;;2410:424::o;-1:-1:-1:-;;;;;;;;:::o;206:127:15:-;267:10;262:3;258:20;255:1;248:31;298:4;295:1;288:15;322:4;319:1;312:15;338:886;629:2;641:21;;;711:13;;614:18;;;733:22;;;581:4;;808;;786:2;771:18;;;835:15;;;581:4;878:195;892:6;889:1;886:13;878:195;;;957:13;;-1:-1:-1;;;;;953:39:15;941:52;;1013:12;;;;1048:15;;;;989:1;907:9;878:195;;;-1:-1:-1;;;1109:19:15;;;1089:18;;;1082:47;;;;1150:1;1138:14;;-1:-1:-1;;;1168:12:15;;;1161:28;-1:-1:-1;1215:2:15;1206:12;;338:886;-1:-1:-1;338:886:15:o;1229:225::-;1269:3;1300:1;1296:6;1293:1;1290:13;1287:136;;;1345:10;1340:3;1336:20;1333:1;1326:31;1380:4;1377:1;1370:15;1408:4;1405:1;1398:15;1287:136;-1:-1:-1;1439:9:15;;1229:225::o;1459:715::-;1781:25;;;1842:3;1837:2;1822:18;;1815:31;;;1883:1;1862:19;;;1855:30;-1:-1:-1;;;1916:3:15;1901:19;;1894:37;1998:2;1983:18;;1976:34;;;;-1:-1:-1;;;;;2099:15:15;;;-1:-1:-1;2079:18:15;;2072:43;2152:15;-1:-1:-1;2131:19:15;;2124:44;1963:3;1948:19;;1459:715::o;2369:192::-;2448:13;;-1:-1:-1;;;;;2490:46:15;;2480:57;;2470:85;;2551:1;2548;2541:12;2566:416;2663:6;2671;2679;2687;2740:3;2728:9;2719:7;2715:23;2711:33;2708:53;;;2757:1;2754;2747:12;2708:53;2786:9;2780:16;2770:26;;2836:2;2825:9;2821:18;2815:25;2805:35;;2859:49;2904:2;2893:9;2889:18;2859:49;:::i;:::-;2849:59;;2927:49;2972:2;2961:9;2957:18;2927:49;:::i;:::-;2917:59;;2566:416;;;;;;;:::o;3194:411::-;3414:25;;;3475:2;3470;3455:18;;3448:30;;;3514:1;3494:18;;;3487:29;-1:-1:-1;;;3547:2:15;3532:18;;3525:38;3595:3;3580:19;;3194:411::o;4845:336::-;4886:3;4924:5;4918:12;4948:1;4958:128;4972:6;4969:1;4966:13;4958:128;;;5069:4;5054:13;;;5050:24;;5044:31;5031:11;;;5024:52;4987:12;4958:128;;;5104:6;5101:1;5098:13;5095:48;;;5139:1;5130:6;5125:3;5121:16;5114:27;5095:48;-1:-1:-1;5159:16:15;;;;;4845:336;-1:-1:-1;;4845:336:15:o;5186:278::-;-1:-1:-1;;;;;;5371:33:15;;5359:46;;5341:3;5421:37;5455:1;5446:11;;5438:6;5421:37;:::i;:::-;5414:44;5186:278;-1:-1:-1;;;;5186:278:15:o;5469:189::-;5598:3;5623:29;5648:3;5640:6;5623:29;:::i;:::-;5616:36;5469:189;-1:-1:-1;;;5469:189:15:o;5663:277::-;5730:6;5783:2;5771:9;5762:7;5758:23;5754:32;5751:52;;;5799:1;5796;5789:12;5751:52;5831:9;5825:16;5884:5;5877:13;5870:21;5863:5;5860:32;5850:60;;5906:1;5903;5896:12", + "object": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80630a9254e41461005c57806388a9cd65146100665780639f4893041461006e578063ba414fa614610076578063fa7626d414610092575b600080fd5b61006461009f565b005b6100646100f0565b6100646102dd565b61007e610813565b604051901515815260200160405180910390f35b60005461007e9060ff1681565b6040516100ab90610b75565b604051809103906000f0801580156100c7573d6000803e3d6000fd5b50600060026101000a8154816001600160a01b0302191690836001600160a01b03160217905550565b606073d286064cc27514b914bab0f2fad2e1a89a91f3148160008151811061011a5761011a610b82565b6001600160a01b03928316602091820292909201015260005460405163f2e7162d60e01b8152620100009091049091169063f2e7162d90610162908490600190600401610b98565b600060405180830381600087803b15801561017c57600080fd5b505af1158015610190573d6000803e3d6000fd5b5050600080546201000090046001600160a01b03169250635542bbae91506101b942600a610c3c565b600160646040518563ffffffff1660e01b81526004016101dc9493929190610c62565b600060405180830381600087803b1580156101f657600080fd5b505af115801561020a573d6000803e3d6000fd5b50506000805460405163d4cf9af760e01b815260048101839052919350839250829182916201000090046001600160a01b03169063d4cf9af790602401608060405180830381865afa158015610264573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102889190610cbe565b935093509350935061029a844261093e565b6102ae836102a942600a610c3c565b61093e565b6102c2826001600160801b0316600161093e565b6102d6816001600160801b0316606461093e565b5050505050565b604051630618f58760e51b815263bad818f360e01b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c31eb0e090602401600060405180830381600087803b15801561033057600080fd5b505af1158015610344573d6000803e3d6000fd5b50506000805460405163c0b9316760e01b8152620100009091046001600160a01b0316935063c0b93167925061037f91908190600401610d04565b600060405180830381600087803b15801561039957600080fd5b505af11580156103ad573d6000803e3d6000fd5b50505050606073d286064cc27514b914bab0f2fad2e1a89a91f314816000815181106103db576103db610b82565b6001600160a01b03928316602091820292909201015260005460405163f2e7162d60e01b8152620100009091049091169063f2e7162d90610423908490600190600401610b98565b600060405180830381600087803b15801561043d57600080fd5b505af1158015610451573d6000803e3d6000fd5b5050600080546201000090046001600160a01b03169250635542bbae915061047a42600a610c3c565b600160646040518563ffffffff1660e01b815260040161049d9493929190610c62565b600060405180830381600087803b1580156104b757600080fd5b505af11580156104cb573d6000803e3d6000fd5b5050604051630618f58760e51b815263254082dd60e11b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561052257600080fd5b505af1158015610536573d6000803e3d6000fd5b50506000805460405163c0b9316760e01b815260048101839052602481018390526060604482015260648101929092526201000090046001600160a01b0316925063c0b931679150608401600060405180830381600087803b15801561059b57600080fd5b505af11580156105af573d6000803e3d6000fd5b5050604051630618f58760e51b8152632707879b60e11b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561060657600080fd5b505af115801561061a573d6000803e3d6000fd5b50506000805460405163c0b9316760e01b815260048101839052602481019290925260606044830152606560648301527f20202020202020202020202020202020202020202020202020202020202020206084830181905260a4830181905260c483015264010101010160dd1b60e48301526201000090046001600160a01b0316925063c0b93167915061010401600060405180830381600087803b1580156106c257600080fd5b505af11580156106d6573d6000803e3d6000fd5b50506000805460405163c0b9316760e01b8152620100009091046001600160a01b0316935063c0b93167925061071191908190600401610d04565b600060405180830381600087803b15801561072b57600080fd5b505af115801561073f573d6000803e3d6000fd5b5050604051630618f58760e51b815263251aba6960e11b6004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561079657600080fd5b505af11580156107aa573d6000803e3d6000fd5b50506000805460405163c0b9316760e01b8152620100009091046001600160a01b0316935063c0b9316792506107e591908190600401610d04565b600060405180830381600087803b1580156107ff57600080fd5b505af11580156102d6573d6000803e3d6000fd5b60008054610100900460ff16156108335750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156109395760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b828401528251808303840181526060830190935260009290916108c1917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001610d6d565b60408051601f19818403018152908290526108db91610d91565b6000604051808303816000865af19150503d8060008114610918576040519150601f19603f3d011682016040523d82523d6000602084013e61091d565b606091505b50915050808060200190518101906109359190610d9d565b9150505b919050565b808214610a65577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516109af9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a160408051818152600a81830152690808115e1c1958dd195960b21b60608201526020810183905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a160408051818152600a8183015269080808081058dd1d585b60b21b60608201526020810184905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a1610a65610a69565b5050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610b645760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f1981840301815290829052610b039291602001610d6d565b60408051601f1981840301815290829052610b1d91610d91565b6000604051808303816000865af19150503d8060008114610b5a576040519150601f19603f3d011682016040523d82523d6000602084013e610b5f565b606091505b505050505b6000805461ff001916610100179055565b6110e680610dc083390190565b634e487b7160e01b600052603260045260246000fd5b6080808252835190820181905260009060209060a0840190828701845b82811015610bda5781516001600160a01b031684529284019290840190600101610bb5565b505050838103808386015260048252631d195cdd60e21b8383015260408101604086015250601060408201526f3a32b9ba103232b9b1b934b83a34b7b760811b60608201526080810192505050610c35606083018415159052565b9392505050565b60008219821115610c5d57634e487b7160e01b600052601160045260246000fd5b500190565b93845260a060208501819052600690850152651c1c9bdb5c1d60d21b60c085015260408401929092526001600160801b03908116606084015216608082015260e00190565b80516001600160801b038116811461093957600080fd5b60008060008060808587031215610cd457600080fd5b8451935060208501519250610ceb60408601610ca7565b9150610cf960608601610ca7565b905092959194509250565b918252602082015260606040820181905260089082015267726573706f6e736560c01b608082015260a00190565b6000815160005b81811015610d535760208185018101518683015201610d39565b81811115610d62576000828601525b509290920192915050565b6001600160e01b0319831681526000610d896004830184610d32565b949350505050565b6000610c358284610d32565b600060208284031215610daf57600080fd5b81518015158114610c3557600080fdfe60806040526000805534801561001457600080fd5b506110c2806100246000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c0b931671161005b578063c0b93167146100f4578063d4cf9af714610107578063f2e7162d14610178578063f61044da1461018b57600080fd5b806317e7d99d1461008d578063493d5fe5146100a95780635542bbae146100be578063a2f7b3a5146100d1575b600080fd5b61009660005481565b6040519081526020015b60405180910390f35b6100bc6100b7366004610b61565b61019e565b005b6100bc6100cc366004610c1b565b61027d565b6100e46100df366004610c8d565b610403565b6040516100a09493929190610cf3565b6100bc610102366004610d26565b610545565b610149610115366004610c8d565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b03918216928401929092521660608201526080016100a0565b6100bc610186366004610d76565b610707565b6100bc610199366004610e0f565b610876565b600085815260026020908152604080832033845260048101909252822054909160ff909116151590036101e457604051631eb49d6d60e11b815260040160405180910390fd5b84516101f99060018301906020880190610966565b50835161020f9060038301906020870190610966565b5060028101805460ff191684151517905561022a8683610876565b60028101546040517f684102838bf7c97f957e6c1fe2f1e0316964904f1575bf7de9a493b8fdab1f7d9161026d9189916001860191600387019160ff1690610f2f565b60405180910390a1505050505050565b600085815260026020908152604080832033845260040190915281205460ff16151590036102be57604051631eb49d6d60e11b815260040160405180910390fd5b83516000036102e0576040516345df16e360e11b815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561031357604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161033d57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b03161061036857604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517f70b5821a021a727fb4dfb84b978ae0630559f379dc74f488ef8315f4a1bbfd4f926103dc928a92909133918b91908b908b908b90610f6e565b60405180910390a160016000808282546103f69190610fe7565b9091555050505050505050565b6002602052600090815260409020805460018201805491929161042590610e56565b80601f016020809104026020016040519081016040528092919081815260200182805461045190610e56565b801561049e5780601f106104735761010080835404028352916020019161049e565b820191906000526020600020905b81548152906001019060200180831161048157829003601f168201915b5050506002840154600385018054949560ff9092169491935091506104c290610e56565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee90610e56565b801561053b5780601f106105105761010080835404028352916020019161053b565b820191906000526020600020905b81548152906001019060200180831161051e57829003601f168201915b5050505050905084565b600083815260026020908152604080832033845260040190915281205460ff161515900361058657604051631eb49d6d60e11b815260040160405180910390fd5b60005482106105a85760405163bad818f360e01b815260040160405180910390fd5b600082815260016020819052604090912001544211156105db576040516317eeb92b60e31b815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff16156106195760405163251aba6960e11b815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b0390911611156106575760405163254082dd60e11b815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b0316101561069b57604051632707879b60e11b815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e5880916106fa918591908590610fff565b60405180910390a1505050565b600354600090815260026020908152604090912084519091610730916001840191870190610966565b5060028101805460ff19168315159081179091556003546040517f344a4ee11c050981b3cfdbc9ebfb417404a057d40c7f019607da26a367b63e929261078092918891889160ff90911690611032565b60405180910390a160005b85518110156108655760018260040160008884815181106107ae576107ae61105d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f386003548783815181106108235761082361105d565b602002602001015160405161084b9291909182526001600160a01b0316602082015260400190565b60405180910390a18061085d81611073565b91505061078b565b505060038054600101905550505050565b6000828152600260205260408120905b82518110156109605760018260040160008584815181106108a9576108a961105d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f20d3ab79c52737bd3710fa271972a0087df86a770f12aff0209abdbc69960f3860035484838151811061091e5761091e61105d565b60200260200101516040516109469291909182526001600160a01b0316602082015260400190565b60405180910390a18061095881611073565b915050610886565b50505050565b82805461097290610e56565b90600052602060002090601f01602090048101928261099457600085556109da565b82601f106109ad57805160ff19168380011785556109da565b828001600101855582156109da579182015b828111156109da5782518255916020019190600101906109bf565b506109e69291506109ea565b5090565b5b808211156109e657600081556001016109eb565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610a3e57610a3e6109ff565b604052919050565b600082601f830112610a5757600080fd5b813567ffffffffffffffff811115610a7157610a716109ff565b610a84601f8201601f1916602001610a15565b818152846020838601011115610a9957600080fd5b816020850160208301376000918101602001919091529392505050565b80358015158114610ac657600080fd5b919050565b600082601f830112610adc57600080fd5b8135602067ffffffffffffffff821115610af857610af86109ff565b8160051b610b07828201610a15565b9283528481018201928281019087851115610b2157600080fd5b83870192505b84831015610b565782356001600160a01b0381168114610b475760008081fd5b82529183019190830190610b27565b979650505050505050565b600080600080600060a08688031215610b7957600080fd5b85359450602086013567ffffffffffffffff80821115610b9857600080fd5b610ba489838a01610a46565b95506040880135915080821115610bba57600080fd5b610bc689838a01610a46565b9450610bd460608901610ab6565b93506080880135915080821115610bea57600080fd5b50610bf788828901610acb565b9150509295509295909350565b80356001600160801b0381168114610ac657600080fd5b600080600080600060a08688031215610c3357600080fd5b85359450602086013567ffffffffffffffff811115610c5157600080fd5b610c5d88828901610a46565b94505060408601359250610c7360608701610c04565b9150610c8160808701610c04565b90509295509295909350565b600060208284031215610c9f57600080fd5b5035919050565b6000815180845260005b81811015610ccc57602081850181015186830182015201610cb0565b81811115610cde576000602083870101525b50601f01601f19169290920160200192915050565b848152608060208201526000610d0c6080830186610ca6565b84151560408401528281036060840152610b568185610ca6565b600080600060608486031215610d3b57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115610d6057600080fd5b610d6c86828701610a46565b9150509250925092565b60008060008060808587031215610d8c57600080fd5b843567ffffffffffffffff80821115610da457600080fd5b610db088838901610acb565b95506020870135915080821115610dc657600080fd5b610dd288838901610a46565b94506040870135915080821115610de857600080fd5b50610df587828801610a46565b925050610e0460608601610ab6565b905092959194509250565b60008060408385031215610e2257600080fd5b82359150602083013567ffffffffffffffff811115610e4057600080fd5b610e4c85828601610acb565b9150509250929050565b600181811c90821680610e6a57607f821691505b602082108103610e8a57634e487b7160e01b600052602260045260246000fd5b50919050565b8054600090600181811c9080831680610eaa57607f831692505b60208084108203610ecb57634e487b7160e01b600052602260045260246000fd5b83885260208801828015610ee65760018114610ef757610f22565b60ff19871682528282019750610f22565b60008981526020902060005b87811015610f1c57815484820152908601908401610f03565b83019850505b5050505050505092915050565b848152608060208201526000610f486080830186610e90565b8281036040840152610f5a8186610e90565b915050821515606083015295945050505050565b888152602081018890526001600160a01b038716604082015261010060608201819052600090610fa083820189610ca6565b6080840197909752505060a08101939093526001600160801b0391821660c08401521660e090910152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610ffa57610ffa610fd1565b500190565b8381526001600160a01b038316602082015260606040820181905260009061102990830184610ca6565b95945050505050565b84815260806020820152600061104b6080830186610ca6565b8281036040840152610f5a8186610ca6565b634e487b7160e01b600052603260045260246000fd5b60006001820161108557611085610fd1565b506001019056fea26469706673582212209ff91a7a28fa069deea61ec420562369a941ece1ddaab34d1dfaca1c6e50320a64736f6c634300080d0033a2646970667358221220cb1e718355660fa20e5b2cb7996e8bdee81a8c75243d35c146ca17ff1c11b70c64736f6c634300080d0033", + "sourceMap": "175:1873:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;293:64;;;:::i;:::-;;363:695;;;:::i;1064:982::-;;;:::i;1819:584:0:-;;;:::i;:::-;;;275:14:15;;268:22;250:41;;238:2;223:18;1819:584:0;;;;;;;1572:26;;;;;;;;;293:64:14;337:13;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;327:7;;:23;;;;;-1:-1:-1;;;;;327:23:14;;;;;-1:-1:-1;;;;;327:23:14;;;;;;293:64::o;363:695::-;402:34;469:42;446:17;464:1;446:20;;;;;;;;:::i;:::-;-1:-1:-1;;;;;446:65:14;;;:20;;;;;;;;;:65;522:7;;:133;;-1:-1:-1;;;522:133:14;;:7;;;;;;;;:22;;:133;;558:17;;641:4;;522:133;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;666:7:14;;;;;;-1:-1:-1;;;;;666:7:14;;-1:-1:-1;666:20:14;;-1:-1:-1;700:20:14;:15;718:2;700:20;:::i;:::-;722:1;725:3;666:63;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;754:17:14;873:7;;:18;;-1:-1:-1;;;873:18:14;;;;;2759:25:15;;;754:17:14;;-1:-1:-1;754:17:14;;-1:-1:-1;754:17:14;;;;873:7;;;-1:-1:-1;;;;;873:7:14;;:15;;2732:18:15;;873::14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;740:151;;;;;;;;902:36;911:9;922:15;902:8;:36::i;:::-;948:39;957:7;966:20;:15;984:2;966:20;:::i;:::-;948:8;:39::i;:::-;997:21;1006:8;-1:-1:-1;;;;;997:21:14;1016:1;997:8;:21::i;:::-;1028:23;1037:8;-1:-1:-1;;;;;1028:23:14;1047:3;1028:8;:23::i;:::-;392:666;;;;;363:695::o;1064:982::-;1104:54;;-1:-1:-1;;;1104:54:14;;-1:-1:-1;;;1104:54:14;;;3557:52:15;1671:64:0;;1104:19:14;;3530:18:15;;1104:54:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1168:7:14;;;:33;;-1:-1:-1;;;1168:33:14;;:7;;;;-1:-1:-1;;;;;1168:7:14;;-1:-1:-1;1168:15:14;;-1:-1:-1;1168:33:14;;:7;;;:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1212:34;1279:42;1256:17;1274:1;1256:20;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1256:65:14;;;:20;;;;;;;;;:65;1332:7;;:133;;-1:-1:-1;;;1332:133:14;;:7;;;;;;;;:22;;:133;;1368:17;;1451:4;;1332:133;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1475:7:14;;;;;;-1:-1:-1;;;;;1475:7:14;;-1:-1:-1;1475:20:14;;-1:-1:-1;1509:20:14;:15;1527:2;1509:20;:::i;:::-;1531:1;1534:3;1475:63;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1549:55:14;;-1:-1:-1;;;1549:55:14;;-1:-1:-1;;;1549:55:14;;;3557:52:15;1671:64:0;;-1:-1:-1;1549:19:14;;-1:-1:-1;3530:18:15;;1549:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1614:7:14;;;:25;;-1:-1:-1;;;1614:25:14;;;;;4372::15;;;4413:18;;;4406:34;;;4476:2;4456:18;;;4449:30;4495:18;;;4488:29;;;;1614:7:14;;;-1:-1:-1;;;;;1614:7:14;;-1:-1:-1;1614:15:14;;-1:-1:-1;4534:19:15;;1614:25:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1650:54:14;;-1:-1:-1;;;1650:54:14;;-1:-1:-1;;;1650:54:14;;;3557:52:15;1671:64:0;;-1:-1:-1;1650:19:14;;-1:-1:-1;3530:18:15;;1650:54:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1714:7:14;;;:172;;-1:-1:-1;;;1714:172:14;;;;;4820:25:15;;;4861:18;;;4854:34;;;;4924:2;4904:18;;;4897:30;4963:3;4943:18;;;4936:31;4986:34;5036:19;;;5029:31;;;5076:19;;;5069:31;;;5116:19;;;5109:31;-1:-1:-1;;;5156:19:15;;;5149:36;1714:7:14;;;-1:-1:-1;;;;;1714:7:14;;-1:-1:-1;1714:15:14;;-1:-1:-1;5202:19:15;;1714:172:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1897:7:14;;;:33;;-1:-1:-1;;;1897:33:14;;:7;;;;-1:-1:-1;;;;;1897:7:14;;-1:-1:-1;1897:15:14;;-1:-1:-1;1897:33:14;;:7;;;:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1941:55:14;;-1:-1:-1;;;1941:55:14;;-1:-1:-1;;;1941:55:14;;;3557:52:15;1671:64:0;;-1:-1:-1;1941:19:14;;-1:-1:-1;3530:18:15;;1941:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2006:7:14;;;:33;;-1:-1:-1;;;2006:33:14;;:7;;;;-1:-1:-1;;;;;2006:7:14;;-1:-1:-1;2006:15:14;;-1:-1:-1;2006:33:14;;:7;;;:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584:0;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;2990:42;2978:55;3059:16;1980:374;;2196:43;;;1671:64;2196:43;;;5406:51:15;;;-1:-1:-1;;;5473:18:15;;;5466:34;2196:43:0;;;;;;;;;5379:18:15;;;2196:43:0;;;-1:-1:-1;;1671:64:0;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:0;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;5202:262::-;5264:1;5259;:6;5255:203;;5286:41;;;;;6813:2:15;6795:21;;;6852:2;6832:18;;;6825:30;6891:34;6886:2;6871:18;;6864:62;-1:-1:-1;;;6957:2:15;6942:18;;6935:32;6999:3;6984:19;;6611:398;5286:41:0;;;;;;;;5346:31;;;7226:21:15;;;7283:2;7263:18;;;7256:30;-1:-1:-1;;;7317:2:15;7302:18;;7295:40;7402:4;7387:20;;7380:36;;;5346:31:0;;;;;;;7367:3:15;5346:31:0;;;5396;;;7639:21:15;;;7696:2;7676:18;;;7669:30;-1:-1:-1;;;7730:2:15;7715:18;;7708:40;7815:4;7800:20;;7793:36;;;5396:31:0;;;;;;;7780:3:15;5396:31:0;;;5441:6;:4;:6::i;:::-;5202:262;;:::o;2410:424::-;2990:42;2978:55;3059:16;2445:359;;2645:67;;;1671:64;2645:67;;;8042:51:15;;;-1:-1:-1;;;8109:18:15;;;8102:34;;;;2705:4:0;8152:18:15;;;8145:34;2482:11:0;;1671:64;2579:43;;8015:18:15;;2645:67:0;;;-1:-1:-1;;2645:67:0;;;;;;;;;;2534:196;;;2645:67;2534:196;;:::i;:::-;;;;-1:-1:-1;;2534:196:0;;;;;;;;;;2499:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2445:359:0;2813:7;:14;;-1:-1:-1;;2813:14:0;;;;;2410:424::o;-1:-1:-1:-;;;;;;;;:::o;302:127:15:-;363:10;358:3;354:20;351:1;344:31;394:4;391:1;384:15;418:4;415:1;408:15;434:1216;848:3;861:22;;;932:13;;833:19;;;954:22;;;800:4;;1030;;1007:3;992:19;;;1057:15;;;800:4;1100:195;1114:6;1111:1;1108:13;1100:195;;;1179:13;;-1:-1:-1;;;;;1175:39:15;1163:52;;1235:12;;;;1270:15;;;;1211:1;1129:9;1100:195;;;1104:3;;;1323:9;1318:3;1314:19;1369:2;1364;1353:9;1349:18;1342:30;1393:1;1388:3;1381:14;-1:-1:-1;;;1420:2:15;1415:3;1411:12;1404:28;1476:2;1472;1468:11;1463:2;1452:9;1448:18;1441:39;;1510:2;1505;1500:3;1496:12;1489:24;-1:-1:-1;;;1538:2:15;1533:3;1529:12;1522:40;1588:3;1583;1579:13;1571:21;;;;1601:43;1640:2;1629:9;1625:18;1617:6;84:13;77:21;65:34;;14:91;1601:43;434:1216;;;;;:::o;1655:225::-;1695:3;1726:1;1722:6;1719:1;1716:13;1713:136;;;1771:10;1766:3;1762:20;1759:1;1752:31;1806:4;1803:1;1796:15;1834:4;1831:1;1824:15;1713:136;-1:-1:-1;1865:9:15;;1655:225::o;1885:715::-;2207:25;;;2268:3;2263:2;2248:18;;2241:31;;;2309:1;2288:19;;;2281:30;-1:-1:-1;;;2342:3:15;2327:19;;2320:37;2424:2;2409:18;;2402:34;;;;-1:-1:-1;;;;;2525:15:15;;;-1:-1:-1;2505:18:15;;2498:43;2578:15;-1:-1:-1;2557:19:15;;2550:44;2389:3;2374:19;;1885:715::o;2795:192::-;2874:13;;-1:-1:-1;;;;;2916:46:15;;2906:57;;2896:85;;2977:1;2974;2967:12;2992:416;3089:6;3097;3105;3113;3166:3;3154:9;3145:7;3141:23;3137:33;3134:53;;;3183:1;3180;3173:12;3134:53;3212:9;3206:16;3196:26;;3262:2;3251:9;3247:18;3241:25;3231:35;;3285:49;3330:2;3319:9;3315:18;3285:49;:::i;:::-;3275:59;;3353:49;3398:2;3387:9;3383:18;3353:49;:::i;:::-;3343:59;;2992:416;;;;;;;:::o;3620:491::-;3876:25;;;3932:2;3917:18;;3910:34;3980:2;3975;3960:18;;3953:30;;;4019:1;3999:18;;;3992:29;-1:-1:-1;;;4052:3:15;4037:19;;4030:39;4101:3;4086:19;;3620:491::o;5511:336::-;5552:3;5590:5;5584:12;5614:1;5624:128;5638:6;5635:1;5632:13;5624:128;;;5735:4;5720:13;;;5716:24;;5710:31;5697:11;;;5690:52;5653:12;5624:128;;;5770:6;5767:1;5764:13;5761:48;;;5805:1;5796:6;5791:3;5787:16;5780:27;5761:48;-1:-1:-1;5825:16:15;;;;;5511:336;-1:-1:-1;;5511:336:15:o;5852:278::-;-1:-1:-1;;;;;;6037:33:15;;6025:46;;6007:3;6087:37;6121:1;6112:11;;6104:6;6087:37;:::i;:::-;6080:44;5852:278;-1:-1:-1;;;;5852:278:15:o;6135:189::-;6264:3;6289:29;6314:3;6306:6;6289:29;:::i;6329:277::-;6396:6;6449:2;6437:9;6428:7;6424:23;6420:32;6417:52;;;6465:1;6462;6455:12;6417:52;6497:9;6491:16;6550:5;6543:13;6536:21;6529:5;6526:32;6516:60;;6572:1;6569;6562:12", "linkReferences": {} }, "methodIdentifiers": { @@ -335,29 +335,29 @@ }, "ast": { "absolutePath": "test/Prompty.t.sol", - "id": 21456, + "id": 21613, "exportedSymbols": { "Cheats": [ - 21250 + 21398 ], "DSTest": [ 1786 ], "IPrompty": [ - 20646 + 20685 ], "Prompty": [ - 20955 + 21103 ], "PromptyTest": [ - 21455 + 21612 ] }, "nodeType": "SourceUnit", - "src": "39:1815:14", + "src": "39:2010:14", "nodes": [ { - "id": 21252, + "id": 21400, "nodeType": "PragmaDirective", "src": "39:24:14", "literals": [ @@ -368,94 +368,94 @@ ] }, { - "id": 21253, + "id": 21401, "nodeType": "ImportDirective", "src": "65:26:14", "absolutePath": "lib/ds-test/src/test.sol", "file": "ds-test/test.sol", "nameLocation": "-1:-1:-1", - "scope": 21456, + "scope": 21613, "sourceUnit": 1787, "symbolAliases": [], "unitAlias": "" }, { - "id": 21254, + "id": 21402, "nodeType": "ImportDirective", "src": "92:28:14", "absolutePath": "src/Prompty.sol", "file": "../src/Prompty.sol", "nameLocation": "-1:-1:-1", - "scope": 21456, - "sourceUnit": 20956, + "scope": 21613, + "sourceUnit": 21104, "symbolAliases": [], "unitAlias": "" }, { - "id": 21255, + "id": 21403, "nodeType": "ImportDirective", "src": "121:29:14", "absolutePath": "src/IPrompty.sol", "file": "../src/IPrompty.sol", "nameLocation": "-1:-1:-1", - "scope": 21456, - "sourceUnit": 20647, + "scope": 21613, + "sourceUnit": 20686, "symbolAliases": [], "unitAlias": "" }, { - "id": 21256, + "id": 21404, "nodeType": "ImportDirective", "src": "151:22:14", "absolutePath": "test/Cheats.sol", "file": "./Cheats.sol", "nameLocation": "-1:-1:-1", - "scope": 21456, - "sourceUnit": 21251, + "scope": 21613, + "sourceUnit": 21399, "symbolAliases": [], "unitAlias": "" }, { - "id": 21455, + "id": 21612, "nodeType": "ContractDefinition", - "src": "175:1678:14", + "src": "175:1873:14", "nodes": [ { - "id": 21264, + "id": 21412, "nodeType": "VariableDeclaration", "src": "212:45:14", "constant": true, "mutability": "constant", "name": "cheats", "nameLocation": "228:6:14", - "scope": 21455, + "scope": 21612, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Cheats_$21250", + "typeIdentifier": "t_contract$_Cheats_$21398", "typeString": "contract Cheats" }, "typeName": { - "id": 21260, + "id": 21408, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 21259, + "id": 21407, "name": "Cheats", "nodeType": "IdentifierPath", - "referencedDeclaration": 21250, + "referencedDeclaration": 21398, "src": "212:6:14" }, - "referencedDeclaration": 21250, + "referencedDeclaration": 21398, "src": "212:6:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Cheats_$21250", + "typeIdentifier": "t_contract$_Cheats_$21398", "typeString": "contract Cheats" } }, "value": { "arguments": [ { - "id": 21262, + "id": 21410, "name": "HEVM_ADDRESS", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -474,18 +474,18 @@ "typeString": "address" } ], - "id": 21261, + "id": 21409, "name": "Cheats", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21250, + "referencedDeclaration": 21398, "src": "237:6:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Cheats_$21250_$", + "typeIdentifier": "t_type$_t_contract$_Cheats_$21398_$", "typeString": "type(contract Cheats)" } }, - "id": 21263, + "id": 21411, "isConstant": false, "isLValue": false, "isPure": true, @@ -496,71 +496,71 @@ "src": "237:20:14", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Cheats_$21250", + "typeIdentifier": "t_contract$_Cheats_$21398", "typeString": "contract Cheats" } }, "visibility": "internal" }, { - "id": 21267, + "id": 21415, "nodeType": "VariableDeclaration", "src": "263:23:14", "constant": false, "mutability": "mutable", "name": "prompty", "nameLocation": "279:7:14", - "scope": 21455, + "scope": 21612, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" }, "typeName": { - "id": 21266, + "id": 21414, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 21265, + "id": 21413, "name": "Prompty", "nodeType": "IdentifierPath", - "referencedDeclaration": 20955, + "referencedDeclaration": 21103, "src": "263:7:14" }, - "referencedDeclaration": 20955, + "referencedDeclaration": 21103, "src": "263:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, "visibility": "private" }, { - "id": 21278, + "id": 21426, "nodeType": "FunctionDefinition", "src": "293:64:14", "body": { - "id": 21277, + "id": 21425, "nodeType": "Block", "src": "317:40:14", "statements": [ { "expression": { - "id": 21275, + "id": 21423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 21270, + "id": 21418, "name": "prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21267, + "referencedDeclaration": 21415, "src": "327:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, @@ -570,7 +570,7 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 21273, + "id": 21421, "isConstant": false, "isLValue": false, "isPure": false, @@ -578,28 +578,28 @@ "nodeType": "NewExpression", "src": "337:11:14", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Prompty_$20955_$", + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Prompty_$21103_$", "typeString": "function () returns (contract Prompty)" }, "typeName": { - "id": 21272, + "id": 21420, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 21271, + "id": 21419, "name": "Prompty", "nodeType": "IdentifierPath", - "referencedDeclaration": 20955, + "referencedDeclaration": 21103, "src": "341:7:14" }, - "referencedDeclaration": 20955, + "referencedDeclaration": 21103, "src": "341:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } } }, - "id": 21274, + "id": 21422, "isConstant": false, "isLValue": false, "isPure": false, @@ -610,17 +610,17 @@ "src": "337:13:14", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, "src": "327:23:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, - "id": 21276, + "id": 21424, "nodeType": "ExpressionStatement", "src": "327:23:14" } @@ -633,44 +633,44 @@ "name": "setUp", "nameLocation": "302:5:14", "parameters": { - "id": 21268, + "id": 21416, "nodeType": "ParameterList", "parameters": [], "src": "307:2:14" }, "returnParameters": { - "id": 21269, + "id": 21417, "nodeType": "ParameterList", "parameters": [], "src": "317:0:14" }, - "scope": 21455, + "scope": 21612, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 21351, + "id": 21501, "nodeType": "FunctionDefinition", - "src": "363:611:14", + "src": "363:695:14", "body": { - "id": 21350, + "id": 21500, "nodeType": "Block", - "src": "392:582:14", + "src": "392:666:14", "statements": [ { "assignments": [ - 21285 + 21433 ], "declarations": [ { "constant": false, - "id": 21285, + "id": 21433, "mutability": "mutable", "name": "allowedResponders", "nameLocation": "419:17:14", "nodeType": "VariableDeclaration", - "scope": 21350, + "scope": 21500, "src": "402:34:14", "stateVariable": false, "storageLocation": "memory", @@ -680,7 +680,7 @@ }, "typeName": { "baseType": { - "id": 21283, + "id": 21431, "name": "address", "nodeType": "ElementaryTypeName", "src": "402:7:14", @@ -689,7 +689,7 @@ "typeString": "address" } }, - "id": 21284, + "id": 21432, "nodeType": "ArrayTypeName", "src": "402:9:14", "typeDescriptions": { @@ -700,34 +700,34 @@ "visibility": "internal" } ], - "id": 21286, + "id": 21434, "nodeType": "VariableDeclarationStatement", "src": "402:34:14" }, { "expression": { - "id": 21291, + "id": 21439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 21287, + "id": 21435, "name": "allowedResponders", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21285, + "referencedDeclaration": 21433, "src": "446:17:14", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 21289, + "id": 21437, "indexExpression": { "hexValue": "30", - "id": 21288, + "id": 21436, "isConstant": false, "isLValue": false, "isPure": true, @@ -756,7 +756,7 @@ "operator": "=", "rightHandSide": { "hexValue": "307844323836303634636332373531344239313442414230463246614432453161383941393146333134", - "id": 21290, + "id": 21438, "isConstant": false, "isLValue": false, "isPure": true, @@ -776,7 +776,7 @@ "typeString": "address" } }, - "id": 21292, + "id": 21440, "nodeType": "ExpressionStatement", "src": "446:65:14" }, @@ -784,12 +784,12 @@ "expression": { "arguments": [ { - "id": 21296, + "id": 21444, "name": "allowedResponders", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21285, - "src": "545:17:14", + "referencedDeclaration": 21433, + "src": "558:17:14", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -797,19 +797,51 @@ }, { "hexValue": "74657374", - "id": 21297, + "id": 21445, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "564:6:14", + "src": "589:6:14", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658", "typeString": "literal_string \"test\"" }, "value": "test" + }, + { + "hexValue": "74657374206465736372697074696f6e", + "id": 21446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "609:18:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e3fdf4c700de6213cf8f864f369a0d487d4db872341e07981eccc5cf4576d30", + "typeString": "literal_string \"test description\"" + }, + "value": "test description" + }, + { + "hexValue": "74727565", + "id": 21447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "641:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" } ], "expression": { @@ -821,35 +853,43 @@ { "typeIdentifier": "t_stringliteral_9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658", "typeString": "literal_string \"test\"" + }, + { + "typeIdentifier": "t_stringliteral_1e3fdf4c700de6213cf8f864f369a0d487d4db872341e07981eccc5cf4576d30", + "typeString": "literal_string \"test description\"" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" } ], "expression": { - "id": 21293, + "id": 21441, "name": "prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21267, + "referencedDeclaration": 21415, "src": "522:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, - "id": 21295, + "id": 21443, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "createInstance", "nodeType": "MemberAccess", - "referencedDeclaration": 20728, + "referencedDeclaration": 20780, "src": "522:22:14", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address[] memory,string memory) external" + "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$__$", + "typeString": "function (address[] memory,string memory,string memory,bool) external" } }, - "id": 21298, + "id": 21448, "isConstant": false, "isLValue": false, "isPure": false, @@ -857,30 +897,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "522:49:14", + "src": "522:133:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21299, + "id": 21449, "nodeType": "ExpressionStatement", - "src": "522:49:14" + "src": "522:133:14" }, { "expression": { "arguments": [ { "hexValue": "30", - "id": 21303, + "id": 21453, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "603:1:14", + "src": "687:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -889,14 +929,14 @@ }, { "hexValue": "70726f6d7074", - "id": 21304, + "id": 21454, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "606:8:14", + "src": "690:8:14", "typeDescriptions": { "typeIdentifier": "t_stringliteral_57fa6589480c85be8bbc98526b1113f0b44823894c29f47f6800a84eb5354e50", "typeString": "literal_string \"prompt\"" @@ -908,32 +948,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 21308, + "id": 21458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 21305, + "id": 21455, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "616:5:14", + "src": "700:5:14", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 21306, + "id": 21456, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "616:15:14", + "src": "700:15:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -943,21 +983,21 @@ "operator": "+", "rightExpression": { "hexValue": "3130", - "id": 21307, + "id": 21457, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "634:2:14", + "src": "718:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, - "src": "616:20:14", + "src": "700:20:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -965,14 +1005,14 @@ }, { "hexValue": "31", - "id": 21309, + "id": 21459, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "638:1:14", + "src": "722:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -981,14 +1021,14 @@ }, { "hexValue": "313030", - "id": 21310, + "id": 21460, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "641:3:14", + "src": "725:3:14", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" @@ -1020,32 +1060,32 @@ } ], "expression": { - "id": 21300, + "id": 21450, "name": "prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21267, - "src": "582:7:14", + "referencedDeclaration": 21415, + "src": "666:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, - "id": 21302, + "id": 21452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "createPrompt", "nodeType": "MemberAccess", - "referencedDeclaration": 20872, - "src": "582:20:14", + "referencedDeclaration": 21004, + "src": "666:20:14", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_uint256_$_t_uint128_$_t_uint128_$returns$__$", "typeString": "function (uint256,string memory,uint256,uint128,uint128) external" } }, - "id": 21311, + "id": 21461, "isConstant": false, "isLValue": false, "isPure": false, @@ -1053,34 +1093,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "582:63:14", + "src": "666:63:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21312, + "id": 21462, "nodeType": "ExpressionStatement", - "src": "582:63:14" + "src": "666:63:14" }, { "assignments": [ - 21314, - 21316, - 21318, - 21320 + 21464, + 21466, + 21468, + 21470 ], "declarations": [ { "constant": false, - "id": 21314, + "id": 21464, "mutability": "mutable", "name": "startTime", - "nameLocation": "678:9:14", + "nameLocation": "762:9:14", "nodeType": "VariableDeclaration", - "scope": 21350, - "src": "670:17:14", + "scope": 21500, + "src": "754:17:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1088,10 +1128,10 @@ "typeString": "uint256" }, "typeName": { - "id": 21313, + "id": 21463, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "670:7:14", + "src": "754:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1101,13 +1141,13 @@ }, { "constant": false, - "id": 21316, + "id": 21466, "mutability": "mutable", "name": "endTime", - "nameLocation": "709:7:14", + "nameLocation": "793:7:14", "nodeType": "VariableDeclaration", - "scope": 21350, - "src": "701:15:14", + "scope": 21500, + "src": "785:15:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1115,10 +1155,10 @@ "typeString": "uint256" }, "typeName": { - "id": 21315, + "id": 21465, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "701:7:14", + "src": "785:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1128,13 +1168,13 @@ }, { "constant": false, - "id": 21318, + "id": 21468, "mutability": "mutable", "name": "minChars", - "nameLocation": "738:8:14", + "nameLocation": "822:8:14", "nodeType": "VariableDeclaration", - "scope": 21350, - "src": "730:16:14", + "scope": 21500, + "src": "814:16:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1142,10 +1182,10 @@ "typeString": "uint128" }, "typeName": { - "id": 21317, + "id": 21467, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "730:7:14", + "src": "814:7:14", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -1155,13 +1195,13 @@ }, { "constant": false, - "id": 21320, + "id": 21470, "mutability": "mutable", "name": "maxChars", - "nameLocation": "768:8:14", + "nameLocation": "852:8:14", "nodeType": "VariableDeclaration", - "scope": 21350, - "src": "760:16:14", + "scope": 21500, + "src": "844:16:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1169,10 +1209,10 @@ "typeString": "uint128" }, "typeName": { - "id": 21319, + "id": 21469, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "760:7:14", + "src": "844:7:14", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -1181,19 +1221,19 @@ "visibility": "internal" } ], - "id": 21325, + "id": 21475, "initialValue": { "arguments": [ { "hexValue": "30", - "id": 21323, + "id": 21473, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "805:1:14", + "src": "889:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1209,32 +1249,32 @@ } ], "expression": { - "id": 21321, + "id": 21471, "name": "prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21267, - "src": "789:7:14", + "referencedDeclaration": 21415, + "src": "873:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, - "id": 21322, + "id": 21472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "prompts", "nodeType": "MemberAccess", - "referencedDeclaration": 20660, - "src": "789:15:14", + "referencedDeclaration": 20699, + "src": "873:15:14", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint128_$_t_uint128_$", "typeString": "function (uint256) view external returns (uint256,uint256,uint128,uint128)" } }, - "id": 21324, + "id": 21474, "isConstant": false, "isLValue": false, "isPure": false, @@ -1242,7 +1282,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "789:18:14", + "src": "873:18:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint128_$_t_uint128_$", @@ -1250,18 +1290,18 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "656:151:14" + "src": "740:151:14" }, { "expression": { "arguments": [ { - "id": 21327, + "id": 21477, "name": "startTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21314, - "src": "827:9:14", + "referencedDeclaration": 21464, + "src": "911:9:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1269,25 +1309,25 @@ }, { "expression": { - "id": 21328, + "id": 21478, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "838:5:14", + "src": "922:5:14", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 21329, + "id": 21479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "838:15:14", + "src": "922:15:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1305,7 +1345,7 @@ "typeString": "uint256" } ], - "id": 21326, + "id": 21476, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1321,13 +1361,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "818:8:14", + "src": "902:8:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 21330, + "id": 21480, "isConstant": false, "isLValue": false, "isPure": false, @@ -1335,27 +1375,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "818:36:14", + "src": "902:36:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21331, + "id": 21481, "nodeType": "ExpressionStatement", - "src": "818:36:14" + "src": "902:36:14" }, { "expression": { "arguments": [ { - "id": 21333, + "id": 21483, "name": "endTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21316, - "src": "873:7:14", + "referencedDeclaration": 21466, + "src": "957:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1366,32 +1406,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 21337, + "id": 21487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 21334, + "id": 21484, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "882:5:14", + "src": "966:5:14", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 21335, + "id": 21485, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "882:15:14", + "src": "966:15:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1401,21 +1441,21 @@ "operator": "+", "rightExpression": { "hexValue": "3130", - "id": 21336, + "id": 21486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "900:2:14", + "src": "984:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, - "src": "882:20:14", + "src": "966:20:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1433,7 +1473,7 @@ "typeString": "uint256" } ], - "id": 21332, + "id": 21482, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1449,13 +1489,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "864:8:14", + "src": "948:8:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 21338, + "id": 21488, "isConstant": false, "isLValue": false, "isPure": false, @@ -1463,27 +1503,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "864:39:14", + "src": "948:39:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21339, + "id": 21489, "nodeType": "ExpressionStatement", - "src": "864:39:14" + "src": "948:39:14" }, { "expression": { "arguments": [ { - "id": 21341, + "id": 21491, "name": "minChars", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21318, - "src": "922:8:14", + "referencedDeclaration": 21468, + "src": "1006:8:14", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -1491,14 +1531,14 @@ }, { "hexValue": "31", - "id": 21342, + "id": 21492, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "932:1:14", + "src": "1016:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -1517,7 +1557,7 @@ "typeString": "int_const 1" } ], - "id": 21340, + "id": 21490, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1533,13 +1573,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "913:8:14", + "src": "997:8:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 21343, + "id": 21493, "isConstant": false, "isLValue": false, "isPure": false, @@ -1547,27 +1587,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "913:21:14", + "src": "997:21:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21344, + "id": 21494, "nodeType": "ExpressionStatement", - "src": "913:21:14" + "src": "997:21:14" }, { "expression": { "arguments": [ { - "id": 21346, + "id": 21496, "name": "maxChars", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21320, - "src": "953:8:14", + "referencedDeclaration": 21470, + "src": "1037:8:14", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -1575,14 +1615,14 @@ }, { "hexValue": "313030", - "id": 21347, + "id": 21497, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "963:3:14", + "src": "1047:3:14", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" @@ -1601,7 +1641,7 @@ "typeString": "int_const 100" } ], - "id": 21345, + "id": 21495, "name": "assertEq", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1617,13 +1657,13 @@ 1674 ], "referencedDeclaration": 514, - "src": "944:8:14", + "src": "1028:8:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 21348, + "id": 21498, "isConstant": false, "isLValue": false, "isPure": false, @@ -1631,16 +1671,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "944:23:14", + "src": "1028:23:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21349, + "id": 21499, "nodeType": "ExpressionStatement", - "src": "944:23:14" + "src": "1028:23:14" } ] }, @@ -1651,30 +1691,30 @@ "name": "testPrompt", "nameLocation": "372:10:14", "parameters": { - "id": 21279, + "id": 21427, "nodeType": "ParameterList", "parameters": [], "src": "382:2:14" }, "returnParameters": { - "id": 21280, + "id": 21428, "nodeType": "ParameterList", "parameters": [], "src": "392:0:14" }, - "scope": 21455, + "scope": 21612, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 21454, + "id": 21611, "nodeType": "FunctionDefinition", - "src": "980:871:14", + "src": "1064:982:14", "body": { - "id": 21453, + "id": 21610, "nodeType": "Block", - "src": "1010:841:14", + "src": "1094:952:14", "statements": [ { "expression": { @@ -1682,39 +1722,39 @@ { "expression": { "expression": { - "id": 21357, + "id": 21507, "name": "IPrompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20646, - "src": "1040:8:14", + "referencedDeclaration": 20685, + "src": "1124:8:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPrompty_$20646_$", + "typeIdentifier": "t_type$_t_contract$_IPrompty_$20685_$", "typeString": "type(contract IPrompty)" } }, - "id": 21358, + "id": 21508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "InvalidPromptID", "nodeType": "MemberAccess", - "referencedDeclaration": 20600, - "src": "1040:24:14", + "referencedDeclaration": 20618, + "src": "1124:24:14", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 21359, + "id": 21509, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "1040:33:14", + "src": "1124:33:14", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -1729,32 +1769,32 @@ } ], "expression": { - "id": 21354, + "id": 21504, "name": "cheats", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21264, - "src": "1020:6:14", + "referencedDeclaration": 21412, + "src": "1104:6:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Cheats_$21250", + "typeIdentifier": "t_contract$_Cheats_$21398", "typeString": "contract Cheats" } }, - "id": 21356, + "id": 21506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "expectRevert", "nodeType": "MemberAccess", - "referencedDeclaration": 21172, - "src": "1020:19:14", + "referencedDeclaration": 21320, + "src": "1104:19:14", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4) external" } }, - "id": 21360, + "id": 21510, "isConstant": false, "isLValue": false, "isPure": false, @@ -1762,30 +1802,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1020:54:14", + "src": "1104:54:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21361, + "id": 21511, "nodeType": "ExpressionStatement", - "src": "1020:54:14" + "src": "1104:54:14" }, { "expression": { "arguments": [ { "hexValue": "30", - "id": 21365, + "id": 21515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1184:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 21516, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1100:1:14", + "src": "1187:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1794,14 +1850,14 @@ }, { "hexValue": "726573706f6e7365", - "id": 21366, + "id": 21517, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:10:14", + "src": "1190:10:14", "typeDescriptions": { "typeIdentifier": "t_stringliteral_448b8ad3a330cf8f269f487881b59efff721b3dfa8e61f7c8fd2480389459ed3", "typeString": "literal_string \"response\"" @@ -1811,6 +1867,10 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1821,32 +1881,32 @@ } ], "expression": { - "id": 21362, + "id": 21512, "name": "prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21267, - "src": "1084:7:14", + "referencedDeclaration": 21415, + "src": "1168:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, - "id": 21364, + "id": 21514, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "respond", "nodeType": "MemberAccess", - "referencedDeclaration": 20954, - "src": "1084:15:14", + "referencedDeclaration": 21102, + "src": "1168:15:14", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,string memory) external" + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,string memory) external" } }, - "id": 21367, + "id": 21518, "isConstant": false, "isLValue": false, "isPure": false, @@ -1854,31 +1914,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1084:30:14", + "src": "1168:33:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21368, + "id": 21519, "nodeType": "ExpressionStatement", - "src": "1084:30:14" + "src": "1168:33:14" }, { "assignments": [ - 21373 + 21524 ], "declarations": [ { "constant": false, - "id": 21373, + "id": 21524, "mutability": "mutable", "name": "allowedResponders", - "nameLocation": "1142:17:14", + "nameLocation": "1229:17:14", "nodeType": "VariableDeclaration", - "scope": 21453, - "src": "1125:34:14", + "scope": 21610, + "src": "1212:34:14", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1887,18 +1947,18 @@ }, "typeName": { "baseType": { - "id": 21371, + "id": 21522, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1125:7:14", + "src": "1212:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 21372, + "id": 21523, "nodeType": "ArrayTypeName", - "src": "1125:9:14", + "src": "1212:9:14", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1907,41 +1967,41 @@ "visibility": "internal" } ], - "id": 21374, + "id": 21525, "nodeType": "VariableDeclarationStatement", - "src": "1125:34:14" + "src": "1212:34:14" }, { "expression": { - "id": 21379, + "id": 21530, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 21375, + "id": 21526, "name": "allowedResponders", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21373, - "src": "1169:17:14", + "referencedDeclaration": 21524, + "src": "1256:17:14", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 21377, + "id": 21528, "indexExpression": { "hexValue": "30", - "id": 21376, + "id": 21527, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1187:1:14", + "src": "1274:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1953,7 +2013,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1169:20:14", + "src": "1256:20:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1963,40 +2023,40 @@ "operator": "=", "rightHandSide": { "hexValue": "307844323836303634636332373531344239313442414230463246614432453161383941393146333134", - "id": 21378, + "id": 21529, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1192:42:14", + "src": "1279:42:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "value": "0xD286064cc27514B914BAB0F2FaD2E1a89A91F314" }, - "src": "1169:65:14", + "src": "1256:65:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 21380, + "id": 21531, "nodeType": "ExpressionStatement", - "src": "1169:65:14" + "src": "1256:65:14" }, { "expression": { "arguments": [ { - "id": 21384, + "id": 21535, "name": "allowedResponders", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21373, - "src": "1268:17:14", + "referencedDeclaration": 21524, + "src": "1368:17:14", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -2004,19 +2064,51 @@ }, { "hexValue": "74657374", - "id": 21385, + "id": 21536, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1287:6:14", + "src": "1399:6:14", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658", "typeString": "literal_string \"test\"" }, "value": "test" + }, + { + "hexValue": "74657374206465736372697074696f6e", + "id": 21537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1419:18:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e3fdf4c700de6213cf8f864f369a0d487d4db872341e07981eccc5cf4576d30", + "typeString": "literal_string \"test description\"" + }, + "value": "test description" + }, + { + "hexValue": "74727565", + "id": 21538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1451:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" } ], "expression": { @@ -2028,35 +2120,43 @@ { "typeIdentifier": "t_stringliteral_9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658", "typeString": "literal_string \"test\"" + }, + { + "typeIdentifier": "t_stringliteral_1e3fdf4c700de6213cf8f864f369a0d487d4db872341e07981eccc5cf4576d30", + "typeString": "literal_string \"test description\"" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" } ], "expression": { - "id": 21381, + "id": 21532, "name": "prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21267, - "src": "1245:7:14", + "referencedDeclaration": 21415, + "src": "1332:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, - "id": 21383, + "id": 21534, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "createInstance", "nodeType": "MemberAccess", - "referencedDeclaration": 20728, - "src": "1245:22:14", + "referencedDeclaration": 20780, + "src": "1332:22:14", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address[] memory,string memory) external" + "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$__$", + "typeString": "function (address[] memory,string memory,string memory,bool) external" } }, - "id": 21386, + "id": 21539, "isConstant": false, "isLValue": false, "isPure": false, @@ -2064,30 +2164,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1245:49:14", + "src": "1332:133:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21387, + "id": 21540, "nodeType": "ExpressionStatement", - "src": "1245:49:14" + "src": "1332:133:14" }, { "expression": { "arguments": [ { "hexValue": "30", - "id": 21391, + "id": 21544, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1325:1:14", + "src": "1496:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2096,14 +2196,14 @@ }, { "hexValue": "70726f6d7074", - "id": 21392, + "id": 21545, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1328:8:14", + "src": "1499:8:14", "typeDescriptions": { "typeIdentifier": "t_stringliteral_57fa6589480c85be8bbc98526b1113f0b44823894c29f47f6800a84eb5354e50", "typeString": "literal_string \"prompt\"" @@ -2115,32 +2215,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 21396, + "id": 21549, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 21393, + "id": 21546, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "1338:5:14", + "src": "1509:5:14", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 21394, + "id": 21547, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "1338:15:14", + "src": "1509:15:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2150,21 +2250,21 @@ "operator": "+", "rightExpression": { "hexValue": "3130", - "id": 21395, + "id": 21548, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1356:2:14", + "src": "1527:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, - "src": "1338:20:14", + "src": "1509:20:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2172,14 +2272,14 @@ }, { "hexValue": "31", - "id": 21397, + "id": 21550, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1360:1:14", + "src": "1531:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -2188,14 +2288,14 @@ }, { "hexValue": "313030", - "id": 21398, + "id": 21551, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1363:3:14", + "src": "1534:3:14", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" @@ -2227,32 +2327,32 @@ } ], "expression": { - "id": 21388, + "id": 21541, "name": "prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21267, - "src": "1304:7:14", + "referencedDeclaration": 21415, + "src": "1475:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, - "id": 21390, + "id": 21543, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "createPrompt", "nodeType": "MemberAccess", - "referencedDeclaration": 20872, - "src": "1304:20:14", + "referencedDeclaration": 21004, + "src": "1475:20:14", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_uint256_$_t_uint128_$_t_uint128_$returns$__$", "typeString": "function (uint256,string memory,uint256,uint128,uint128) external" } }, - "id": 21399, + "id": 21552, "isConstant": false, "isLValue": false, "isPure": false, @@ -2260,16 +2360,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1304:63:14", + "src": "1475:63:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21400, + "id": 21553, "nodeType": "ExpressionStatement", - "src": "1304:63:14" + "src": "1475:63:14" }, { "expression": { @@ -2277,39 +2377,39 @@ { "expression": { "expression": { - "id": 21404, + "id": 21557, "name": "IPrompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20646, - "src": "1398:8:14", + "referencedDeclaration": 20685, + "src": "1569:8:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPrompty_$20646_$", + "typeIdentifier": "t_type$_t_contract$_IPrompty_$20685_$", "typeString": "type(contract IPrompty)" } }, - "id": 21405, + "id": 21558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ResponseTooShort", "nodeType": "MemberAccess", - "referencedDeclaration": 20606, - "src": "1398:25:14", + "referencedDeclaration": 20624, + "src": "1569:25:14", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 21406, + "id": 21559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "1398:34:14", + "src": "1569:34:14", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -2324,32 +2424,32 @@ } ], "expression": { - "id": 21401, + "id": 21554, "name": "cheats", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21264, - "src": "1378:6:14", + "referencedDeclaration": 21412, + "src": "1549:6:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Cheats_$21250", + "typeIdentifier": "t_contract$_Cheats_$21398", "typeString": "contract Cheats" } }, - "id": 21403, + "id": 21556, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "expectRevert", "nodeType": "MemberAccess", - "referencedDeclaration": 21172, - "src": "1378:19:14", + "referencedDeclaration": 21320, + "src": "1549:19:14", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4) external" } }, - "id": 21407, + "id": 21560, "isConstant": false, "isLValue": false, "isPure": false, @@ -2357,30 +2457,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1378:55:14", + "src": "1549:55:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21408, + "id": 21561, "nodeType": "ExpressionStatement", - "src": "1378:55:14" + "src": "1549:55:14" }, { "expression": { "arguments": [ { "hexValue": "30", - "id": 21412, + "id": 21565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1630:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 21566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1459:1:14", + "src": "1633:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2389,14 +2505,14 @@ }, { "hexValue": "", - "id": 21413, + "id": 21567, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1462:2:14", + "src": "1636:2:14", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -2406,6 +2522,10 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2416,32 +2536,32 @@ } ], "expression": { - "id": 21409, + "id": 21562, "name": "prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21267, - "src": "1443:7:14", + "referencedDeclaration": 21415, + "src": "1614:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, - "id": 21411, + "id": 21564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "respond", "nodeType": "MemberAccess", - "referencedDeclaration": 20954, - "src": "1443:15:14", + "referencedDeclaration": 21102, + "src": "1614:15:14", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,string memory) external" + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,string memory) external" } }, - "id": 21414, + "id": 21568, "isConstant": false, "isLValue": false, "isPure": false, @@ -2449,16 +2569,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1443:22:14", + "src": "1614:25:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21415, + "id": 21569, "nodeType": "ExpressionStatement", - "src": "1443:22:14" + "src": "1614:25:14" }, { "expression": { @@ -2466,39 +2586,39 @@ { "expression": { "expression": { - "id": 21419, + "id": 21573, "name": "IPrompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20646, - "src": "1496:8:14", + "referencedDeclaration": 20685, + "src": "1670:8:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPrompty_$20646_$", + "typeIdentifier": "t_type$_t_contract$_IPrompty_$20685_$", "typeString": "type(contract IPrompty)" } }, - "id": 21420, + "id": 21574, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ResponseTooLong", "nodeType": "MemberAccess", - "referencedDeclaration": 20608, - "src": "1496:24:14", + "referencedDeclaration": 20626, + "src": "1670:24:14", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 21421, + "id": 21575, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "1496:33:14", + "src": "1670:33:14", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -2513,32 +2633,32 @@ } ], "expression": { - "id": 21416, + "id": 21570, "name": "cheats", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21264, - "src": "1476:6:14", + "referencedDeclaration": 21412, + "src": "1650:6:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Cheats_$21250", + "typeIdentifier": "t_contract$_Cheats_$21398", "typeString": "contract Cheats" } }, - "id": 21418, + "id": 21572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "expectRevert", "nodeType": "MemberAccess", - "referencedDeclaration": 21172, - "src": "1476:19:14", + "referencedDeclaration": 21320, + "src": "1650:19:14", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4) external" } }, - "id": 21422, + "id": 21576, "isConstant": false, "isLValue": false, "isPure": false, @@ -2546,30 +2666,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1476:54:14", + "src": "1650:54:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21423, + "id": 21577, "nodeType": "ExpressionStatement", - "src": "1476:54:14" + "src": "1650:54:14" }, { "expression": { "arguments": [ { "hexValue": "30", - "id": 21427, + "id": 21581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1569:1:14", + "src": "1743:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 21582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1758:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2578,14 +2714,14 @@ }, { "hexValue": "2020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020", - "id": 21428, + "id": 21583, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1584:103:14", + "src": "1773:103:14", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f91bfca19a12efc0dd171c6c24a77fbf76c4a8089e0afc0b053bbc96a0ec4f20", "typeString": "literal_string \" \"" @@ -2595,6 +2731,10 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2605,32 +2745,32 @@ } ], "expression": { - "id": 21424, + "id": 21578, "name": "prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21267, - "src": "1540:7:14", + "referencedDeclaration": 21415, + "src": "1714:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, - "id": 21426, + "id": 21580, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "respond", "nodeType": "MemberAccess", - "referencedDeclaration": 20954, - "src": "1540:15:14", + "referencedDeclaration": 21102, + "src": "1714:15:14", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,string memory) external" + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,string memory) external" } }, - "id": 21429, + "id": 21584, "isConstant": false, "isLValue": false, "isPure": false, @@ -2638,30 +2778,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1540:157:14", + "src": "1714:172:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21430, + "id": 21585, "nodeType": "ExpressionStatement", - "src": "1540:157:14" + "src": "1714:172:14" }, { "expression": { "arguments": [ { "hexValue": "30", - "id": 21434, + "id": 21589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1913:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 21590, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1724:1:14", + "src": "1916:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2670,14 +2826,14 @@ }, { "hexValue": "726573706f6e7365", - "id": 21435, + "id": 21591, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1727:10:14", + "src": "1919:10:14", "typeDescriptions": { "typeIdentifier": "t_stringliteral_448b8ad3a330cf8f269f487881b59efff721b3dfa8e61f7c8fd2480389459ed3", "typeString": "literal_string \"response\"" @@ -2687,6 +2843,10 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2697,32 +2857,32 @@ } ], "expression": { - "id": 21431, + "id": 21586, "name": "prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21267, - "src": "1708:7:14", + "referencedDeclaration": 21415, + "src": "1897:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, - "id": 21433, + "id": 21588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "respond", "nodeType": "MemberAccess", - "referencedDeclaration": 20954, - "src": "1708:15:14", + "referencedDeclaration": 21102, + "src": "1897:15:14", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,string memory) external" + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,string memory) external" } }, - "id": 21436, + "id": 21592, "isConstant": false, "isLValue": false, "isPure": false, @@ -2730,16 +2890,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1708:30:14", + "src": "1897:33:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21437, + "id": 21593, "nodeType": "ExpressionStatement", - "src": "1708:30:14" + "src": "1897:33:14" }, { "expression": { @@ -2747,39 +2907,39 @@ { "expression": { "expression": { - "id": 21441, + "id": 21597, "name": "IPrompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20646, - "src": "1769:8:14", + "referencedDeclaration": 20685, + "src": "1961:8:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPrompty_$20646_$", + "typeIdentifier": "t_type$_t_contract$_IPrompty_$20685_$", "typeString": "type(contract IPrompty)" } }, - "id": 21442, + "id": 21598, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "AlreadyResponded", "nodeType": "MemberAccess", - "referencedDeclaration": 20604, - "src": "1769:25:14", + "referencedDeclaration": 20622, + "src": "1961:25:14", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 21443, + "id": 21599, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "1769:34:14", + "src": "1961:34:14", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -2794,32 +2954,32 @@ } ], "expression": { - "id": 21438, + "id": 21594, "name": "cheats", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21264, - "src": "1749:6:14", + "referencedDeclaration": 21412, + "src": "1941:6:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Cheats_$21250", + "typeIdentifier": "t_contract$_Cheats_$21398", "typeString": "contract Cheats" } }, - "id": 21440, + "id": 21596, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "expectRevert", "nodeType": "MemberAccess", - "referencedDeclaration": 21172, - "src": "1749:19:14", + "referencedDeclaration": 21320, + "src": "1941:19:14", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4) external" } }, - "id": 21444, + "id": 21600, "isConstant": false, "isLValue": false, "isPure": false, @@ -2827,30 +2987,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1749:55:14", + "src": "1941:55:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21445, + "id": 21601, "nodeType": "ExpressionStatement", - "src": "1749:55:14" + "src": "1941:55:14" }, { "expression": { "arguments": [ { "hexValue": "30", - "id": 21449, + "id": 21605, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1830:1:14", + "src": "2022:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 21606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2025:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2859,14 +3035,14 @@ }, { "hexValue": "726573706f6e7365", - "id": 21450, + "id": 21607, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1833:10:14", + "src": "2028:10:14", "typeDescriptions": { "typeIdentifier": "t_stringliteral_448b8ad3a330cf8f269f487881b59efff721b3dfa8e61f7c8fd2480389459ed3", "typeString": "literal_string \"response\"" @@ -2876,6 +3052,10 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2886,32 +3066,32 @@ } ], "expression": { - "id": 21446, + "id": 21602, "name": "prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 21267, - "src": "1814:7:14", + "referencedDeclaration": 21415, + "src": "2006:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Prompty_$20955", + "typeIdentifier": "t_contract$_Prompty_$21103", "typeString": "contract Prompty" } }, - "id": 21448, + "id": 21604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "respond", "nodeType": "MemberAccess", - "referencedDeclaration": 20954, - "src": "1814:15:14", + "referencedDeclaration": 21102, + "src": "2006:15:14", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,string memory) external" + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,string memory) external" } }, - "id": 21451, + "id": 21608, "isConstant": false, "isLValue": false, "isPure": false, @@ -2919,16 +3099,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1814:30:14", + "src": "2006:33:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21452, + "id": 21609, "nodeType": "ExpressionStatement", - "src": "1814:30:14" + "src": "2006:33:14" } ] }, @@ -2937,20 +3117,20 @@ "kind": "function", "modifiers": [], "name": "testRespond", - "nameLocation": "989:11:14", + "nameLocation": "1073:11:14", "parameters": { - "id": 21352, + "id": 21502, "nodeType": "ParameterList", "parameters": [], - "src": "1000:2:14" + "src": "1084:2:14" }, "returnParameters": { - "id": 21353, + "id": 21503, "nodeType": "ParameterList", "parameters": [], - "src": "1010:0:14" + "src": "1094:0:14" }, - "scope": 21455, + "scope": 21612, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" @@ -2960,30 +3140,30 @@ "baseContracts": [ { "baseName": { - "id": 21257, + "id": 21405, "name": "DSTest", "nodeType": "IdentifierPath", "referencedDeclaration": 1786, "src": "199:6:14" }, - "id": 21258, + "id": 21406, "nodeType": "InheritanceSpecifier", "src": "199:6:14" } ], "canonicalName": "PromptyTest", "contractDependencies": [ - 20955 + 21103 ], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 21455, + 21612, 1786 ], "name": "PromptyTest", "nameLocation": "184:11:14", - "scope": 21456, + "scope": 21613, "usedErrors": [] } ], diff --git a/packages/contracts-forge/out/PromptyManager.sol/PromptyManager.json b/packages/contracts-forge/out/PromptyManager.sol/PromptyManager.json index 3fecc4f..d580ab4 100644 --- a/packages/contracts-forge/out/PromptyManager.sol/PromptyManager.json +++ b/packages/contracts-forge/out/PromptyManager.sol/PromptyManager.json @@ -91,12 +91,12 @@ } ], "bytecode": { - "object": "0x608060405234801561001057600080fd5b5060405161038038038061038083398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b610294806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063715018a61461005c5780638da5cb5b14610066578063e2a79abb1461008f578063e44f0e8c146100a2578063f2fde38b146100b5575b600080fd5b6100646100c8565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006461009d36600461022e565b6100dc565b600154610073906001600160a01b031681565b6100646100c336600461022e565b610106565b6100d0610184565b6100da60006101de565b565b6100e4610184565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61010e610184565b6001600160a01b0381166101785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610181816101de565b50565b6000546001600160a01b031633146100da5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561024057600080fd5b81356001600160a01b038116811461025757600080fd5b939250505056fea264697066735822122005c86109122f61b88c8c52186d6d1d8c038e66f0c1333ed1fc933f4e7d2ea4ee64736f6c634300080d0033", + "object": "0x608060405234801561001057600080fd5b5060405161038038038061038083398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b610294806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063715018a61461005c5780638da5cb5b14610066578063e2a79abb1461008f578063e44f0e8c146100a2578063f2fde38b146100b5575b600080fd5b6100646100c8565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006461009d36600461022e565b6100dc565b600154610073906001600160a01b031681565b6100646100c336600461022e565b610106565b6100d0610184565b6100da60006101de565b565b6100e4610184565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61010e610184565b6001600160a01b0381166101785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610181816101de565b50565b6000546001600160a01b031633146100da5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561024057600080fd5b81356001600160a01b038116811461025757600080fd5b939250505056fea2646970667358221220de208913a3e5532e3044880e0d33eb434c58408b8d7cd0a670435d74239a560364736f6c634300080d0033", "sourceMap": "157:257:11:-:0;;;228:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:1;719:10:2;936:18:1;:32::i;:::-;268:7:11;:28;;-1:-1:-1;;;;;;268:28:11;-1:-1:-1;;;;;268:28:11;;;;;;;;;;157:257;;2433:187:1;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:1;;;-1:-1:-1;;;;;;2541:17:1;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:290:15:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:15;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:15:o;:::-;157:257:11;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063715018a61461005c5780638da5cb5b14610066578063e2a79abb1461008f578063e44f0e8c146100a2578063f2fde38b146100b5575b600080fd5b6100646100c8565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006461009d36600461022e565b6100dc565b600154610073906001600160a01b031681565b6100646100c336600461022e565b610106565b6100d0610184565b6100da60006101de565b565b6100e4610184565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61010e610184565b6001600160a01b0381166101785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610181816101de565b50565b6000546001600160a01b031633146100da5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561024057600080fd5b81356001600160a01b038116811461025757600080fd5b939250505056fea264697066735822122005c86109122f61b88c8c52186d6d1d8c038e66f0c1333ed1fc933f4e7d2ea4ee64736f6c634300080d0033", + "object": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063715018a61461005c5780638da5cb5b14610066578063e2a79abb1461008f578063e44f0e8c146100a2578063f2fde38b146100b5575b600080fd5b6100646100c8565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006461009d36600461022e565b6100dc565b600154610073906001600160a01b031681565b6100646100c336600461022e565b610106565b6100d0610184565b6100da60006101de565b565b6100e4610184565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61010e610184565b6001600160a01b0381166101785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610181816101de565b50565b6000546001600160a01b031633146100da5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561024057600080fd5b81356001600160a01b038116811461025757600080fd5b939250505056fea2646970667358221220de208913a3e5532e3044880e0d33eb434c58408b8d7cd0a670435d74239a560364736f6c634300080d0033", "sourceMap": "157:257:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:1;;;:::i;:::-;;1201:85;1247:7;1273:6;-1:-1:-1;;;;;1273:6:1;1201:85;;;-1:-1:-1;;;;;178:32:15;;;160:51;;148:2;133:18;1201:85:1;;;;;;;309:103:11;;;;;;:::i;:::-;;:::i;198:23::-;;;;;-1:-1:-1;;;;;198:23:11;;;2081:198:1;;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;309:103:11:-;1094:13:1;:11;:13::i;:::-;377:7:11::1;:28:::0;;-1:-1:-1;;;;;;377:28:11::1;-1:-1:-1::0;;;;;377:28:11;;;::::1;::::0;;;::::1;::::0;;309:103::o;2081:198:1:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:1;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:1;;941:2:15;2161:73:1::1;::::0;::::1;923:21:15::0;980:2;960:18;;;953:30;1019:34;999:18;;;992:62;-1:-1:-1;;;1070:18:15;;;1063:36;1116:19;;2161:73:1::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:1;719:10:2;1422:23:1;1414:68;;;;-1:-1:-1;;;1414:68:1;;1348:2:15;1414:68:1;;;1330:21:15;;;1367:18;;;1360:30;1426:34;1406:18;;;1399:62;1478:18;;1414:68:1;1146:356:15;2433:187:1;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:1;;;-1:-1:-1;;;;;;2541:17:1;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;222:286:15:-;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;376:23;;-1:-1:-1;;;;;428:31:15;;418:42;;408:70;;474:1;471;464:12;408:70;497:5;222:286;-1:-1:-1;;;222:286:15:o", "linkReferences": {} }, @@ -109,26 +109,26 @@ }, "ast": { "absolutePath": "src/PromptyManager.sol", - "id": 20993, + "id": 21141, "exportedSymbols": { "Context": [ 1921 ], "IPrompty": [ - 20646 + 20685 ], "Ownable": [ 1899 ], "PromptyManager": [ - 20992 + 21140 ] }, "nodeType": "SourceUnit", "src": "37:378:11", "nodes": [ { - "id": 20957, + "id": 21105, "nodeType": "PragmaDirective", "src": "37:23:11", "literals": [ @@ -139,34 +139,34 @@ ] }, { - "id": 20958, + "id": 21106, "nodeType": "ImportDirective", "src": "62:52:11", "absolutePath": "lib/openzeppelin-contracts/contracts/access/Ownable.sol", "file": "@openzeppelin/contracts/access/Ownable.sol", "nameLocation": "-1:-1:-1", - "scope": 20993, + "scope": 21141, "sourceUnit": 1900, "symbolAliases": [], "unitAlias": "" }, { - "id": 20960, + "id": 21108, "nodeType": "ImportDirective", "src": "115:40:11", "absolutePath": "src/IPrompty.sol", "file": "./IPrompty.sol", "nameLocation": "-1:-1:-1", - "scope": 20993, - "sourceUnit": 20647, + "scope": 21141, + "sourceUnit": 20686, "symbolAliases": [ { "foreign": { - "id": 20959, + "id": 21107, "name": "IPrompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20646, + "referencedDeclaration": 20685, "src": "123:8:11", "typeDescriptions": {} }, @@ -176,12 +176,12 @@ "unitAlias": "" }, { - "id": 20992, + "id": 21140, "nodeType": "ContractDefinition", "src": "157:257:11", "nodes": [ { - "id": 20965, + "id": 21113, "nodeType": "VariableDeclaration", "src": "198:23:11", "constant": false, @@ -189,57 +189,57 @@ "mutability": "mutable", "name": "prompty", "nameLocation": "214:7:11", - "scope": 20992, + "scope": 21140, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IPrompty_$20646", + "typeIdentifier": "t_contract$_IPrompty_$20685", "typeString": "contract IPrompty" }, "typeName": { - "id": 20964, + "id": 21112, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 20963, + "id": 21111, "name": "IPrompty", "nodeType": "IdentifierPath", - "referencedDeclaration": 20646, + "referencedDeclaration": 20685, "src": "198:8:11" }, - "referencedDeclaration": 20646, + "referencedDeclaration": 20685, "src": "198:8:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IPrompty_$20646", + "typeIdentifier": "t_contract$_IPrompty_$20685", "typeString": "contract IPrompty" } }, "visibility": "public" }, { - "id": 20977, + "id": 21125, "nodeType": "FunctionDefinition", "src": "228:75:11", "body": { - "id": 20976, + "id": 21124, "nodeType": "Block", "src": "258:45:11", "statements": [ { "expression": { - "id": 20974, + "id": 21122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 20970, + "id": 21118, "name": "prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20965, + "referencedDeclaration": 21113, "src": "268:7:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IPrompty_$20646", + "typeIdentifier": "t_contract$_IPrompty_$20685", "typeString": "contract IPrompty" } }, @@ -248,11 +248,11 @@ "rightHandSide": { "arguments": [ { - "id": 20972, + "id": 21120, "name": "_prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20967, + "referencedDeclaration": 21115, "src": "287:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -267,18 +267,18 @@ "typeString": "address" } ], - "id": 20971, + "id": 21119, "name": "IPrompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20646, + "referencedDeclaration": 20685, "src": "278:8:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPrompty_$20646_$", + "typeIdentifier": "t_type$_t_contract$_IPrompty_$20685_$", "typeString": "type(contract IPrompty)" } }, - "id": 20973, + "id": 21121, "isConstant": false, "isLValue": false, "isPure": false, @@ -289,17 +289,17 @@ "src": "278:18:11", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IPrompty_$20646", + "typeIdentifier": "t_contract$_IPrompty_$20685", "typeString": "contract IPrompty" } }, "src": "268:28:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IPrompty_$20646", + "typeIdentifier": "t_contract$_IPrompty_$20685", "typeString": "contract IPrompty" } }, - "id": 20975, + "id": 21123, "nodeType": "ExpressionStatement", "src": "268:28:11" } @@ -311,17 +311,17 @@ "name": "", "nameLocation": "-1:-1:-1", "parameters": { - "id": 20968, + "id": 21116, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 20967, + "id": 21115, "mutability": "mutable", "name": "_prompty", "nameLocation": "248:8:11", "nodeType": "VariableDeclaration", - "scope": 20977, + "scope": 21125, "src": "240:16:11", "stateVariable": false, "storageLocation": "default", @@ -330,7 +330,7 @@ "typeString": "address" }, "typeName": { - "id": 20966, + "id": 21114, "name": "address", "nodeType": "ElementaryTypeName", "src": "240:7:11", @@ -346,41 +346,41 @@ "src": "239:18:11" }, "returnParameters": { - "id": 20969, + "id": 21117, "nodeType": "ParameterList", "parameters": [], "src": "258:0:11" }, - "scope": 20992, + "scope": 21140, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 20991, + "id": 21139, "nodeType": "FunctionDefinition", "src": "309:103:11", "body": { - "id": 20990, + "id": 21138, "nodeType": "Block", "src": "367:45:11", "statements": [ { "expression": { - "id": 20988, + "id": 21136, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 20984, + "id": 21132, "name": "prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20965, + "referencedDeclaration": 21113, "src": "377:7:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IPrompty_$20646", + "typeIdentifier": "t_contract$_IPrompty_$20685", "typeString": "contract IPrompty" } }, @@ -389,11 +389,11 @@ "rightHandSide": { "arguments": [ { - "id": 20986, + "id": 21134, "name": "_prompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20979, + "referencedDeclaration": 21127, "src": "396:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -408,18 +408,18 @@ "typeString": "address" } ], - "id": 20985, + "id": 21133, "name": "IPrompty", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20646, + "referencedDeclaration": 20685, "src": "387:8:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPrompty_$20646_$", + "typeIdentifier": "t_type$_t_contract$_IPrompty_$20685_$", "typeString": "type(contract IPrompty)" } }, - "id": 20987, + "id": 21135, "isConstant": false, "isLValue": false, "isPure": false, @@ -430,17 +430,17 @@ "src": "387:18:11", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IPrompty_$20646", + "typeIdentifier": "t_contract$_IPrompty_$20685", "typeString": "contract IPrompty" } }, "src": "377:28:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IPrompty_$20646", + "typeIdentifier": "t_contract$_IPrompty_$20685", "typeString": "contract IPrompty" } }, - "id": 20989, + "id": 21137, "nodeType": "ExpressionStatement", "src": "377:28:11" } @@ -451,10 +451,10 @@ "kind": "function", "modifiers": [ { - "id": 20982, + "id": 21130, "kind": "modifierInvocation", "modifierName": { - "id": 20981, + "id": 21129, "name": "onlyOwner", "nodeType": "IdentifierPath", "referencedDeclaration": 1818, @@ -467,17 +467,17 @@ "name": "updatePrompty", "nameLocation": "318:13:11", "parameters": { - "id": 20980, + "id": 21128, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 20979, + "id": 21127, "mutability": "mutable", "name": "_prompty", "nameLocation": "340:8:11", "nodeType": "VariableDeclaration", - "scope": 20991, + "scope": 21139, "src": "332:16:11", "stateVariable": false, "storageLocation": "default", @@ -486,7 +486,7 @@ "typeString": "address" }, "typeName": { - "id": 20978, + "id": 21126, "name": "address", "nodeType": "ElementaryTypeName", "src": "332:7:11", @@ -502,12 +502,12 @@ "src": "331:18:11" }, "returnParameters": { - "id": 20983, + "id": 21131, "nodeType": "ParameterList", "parameters": [], "src": "367:0:11" }, - "scope": 20992, + "scope": 21140, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" @@ -517,13 +517,13 @@ "baseContracts": [ { "baseName": { - "id": 20961, + "id": 21109, "name": "Ownable", "nodeType": "IdentifierPath", "referencedDeclaration": 1899, "src": "184:7:11" }, - "id": 20962, + "id": 21110, "nodeType": "InheritanceSpecifier", "src": "184:7:11" } @@ -533,13 +533,13 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 20992, + 21140, 1899, 1921 ], "name": "PromptyManager", "nameLocation": "166:14:11", - "scope": 20993, + "scope": 21141, "usedErrors": [] } ], diff --git a/packages/contracts-forge/out/test.sol/DSTest.json b/packages/contracts-forge/out/test.sol/DSTest.json index b81349e..c91b0c8 100644 --- a/packages/contracts-forge/out/test.sol/DSTest.json +++ b/packages/contracts-forge/out/test.sol/DSTest.json @@ -296,13 +296,13 @@ } ], "bytecode": { - "object": "0x60806040526000805460ff1916600117905534801561001d57600080fd5b506102598061002d6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063ba414fa61461003b578063fa7626d414610057575b600080fd5b610043610064565b604051901515815260200160405180910390f35b6000546100439060ff1681565b60008054610100900460ff16156100845750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561018a5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b82840152825180830384018152606083019093526000929091610112917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016101ca565b60408051601f198184030181529082905261012c916101ee565b6000604051808303816000865af19150503d8060008114610169576040519150601f19603f3d011682016040523d82523d6000602084013e61016e565b606091505b50915050808060200190518101906101869190610201565b9150505b919050565b6000815160005b818110156101b05760208185018101518683015201610196565b818111156101bf576000828601525b509290920192915050565b6001600160e01b03198316815260006101e6600483018461018f565b949350505050565b60006101fa828461018f565b9392505050565b60006020828403121561021357600080fd5b815180151581146101fa57600080fdfea264697066735822122078e7aa34a08e0da1c57f623361174fc626514e2aa51fbc5692968f2e629c52c964736f6c634300080d0033", - "sourceMap": "715:15433:0:-:0;;;1572:26;;;-1:-1:-1;;1572:26:0;1594:4;1572:26;;;715:15433;;;;;;;;;;;;;;;;", + "object": "0x60806040526000805460ff1916600117905534801561001d57600080fd5b506102598061002d6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063ba414fa61461003b578063fa7626d414610057575b600080fd5b610043610064565b604051901515815260200160405180910390f35b6000546100439060ff1681565b60008054610100900460ff16156100845750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561018a5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b82840152825180830384018152606083019093526000929091610112917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016101ca565b60408051601f198184030181529082905261012c916101ee565b6000604051808303816000865af19150503d8060008114610169576040519150601f19603f3d011682016040523d82523d6000602084013e61016e565b606091505b50915050808060200190518101906101869190610201565b9150505b919050565b6000815160005b818110156101b05760208185018101518683015201610196565b818111156101bf576000828601525b509290920192915050565b6001600160e01b03198316815260006101e6600483018461018f565b949350505050565b60006101fa828461018f565b9392505050565b60006020828403121561021357600080fd5b815180151581146101fa57600080fdfea2646970667358221220b2970974d801637ae213141c99341eb1249ae7fa243f886dc10fa98c68ad456064736f6c634300080d0033", + "sourceMap": "715:15435:0:-:0;;;1572:26;;;-1:-1:-1;;1572:26:0;1594:4;1572:26;;;715:15435;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063ba414fa61461003b578063fa7626d414610057575b600080fd5b610043610064565b604051901515815260200160405180910390f35b6000546100439060ff1681565b60008054610100900460ff16156100845750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561018a5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b82840152825180830384018152606083019093526000929091610112917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016101ca565b60408051601f198184030181529082905261012c916101ee565b6000604051808303816000865af19150503d8060008114610169576040519150601f19603f3d011682016040523d82523d6000602084013e61016e565b606091505b50915050808060200190518101906101869190610201565b9150505b919050565b6000815160005b818110156101b05760208185018101518683015201610196565b818111156101bf576000828601525b509290920192915050565b6001600160e01b03198316815260006101e6600483018461018f565b949350505050565b60006101fa828461018f565b9392505050565b60006020828403121561021357600080fd5b815180151581146101fa57600080fdfea264697066735822122078e7aa34a08e0da1c57f623361174fc626514e2aa51fbc5692968f2e629c52c964736f6c634300080d0033", - "sourceMap": "715:15433:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584;;;:::i;:::-;;;179:14:15;;172:22;154:41;;142:2;127:18;1819:584:0;;;;;;;1572:26;;;;;;;;;1819:584;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;2990:42;2978:55;3059:16;1980:374;;2196:43;;;1671:64;2196:43;;;380:51:15;;;-1:-1:-1;;;447:18:15;;;440:34;2196:43:0;;;;;;;;;353:18:15;;;2196:43:0;;;-1:-1:-1;;1671:64:0;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:0;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;485:336:15:-;526:3;564:5;558:12;588:1;598:128;612:6;609:1;606:13;598:128;;;709:4;694:13;;;690:24;;684:31;671:11;;;664:52;627:12;598:128;;;744:6;741:1;738:13;735:48;;;779:1;770:6;765:3;761:16;754:27;735:48;-1:-1:-1;799:16:15;;;;;485:336;-1:-1:-1;;485:336:15:o;826:278::-;-1:-1:-1;;;;;;1011:33:15;;999:46;;981:3;1061:37;1095:1;1086:11;;1078:6;1061:37;:::i;:::-;1054:44;826:278;-1:-1:-1;;;;826:278:15:o;1109:189::-;1238:3;1263:29;1288:3;1280:6;1263:29;:::i;:::-;1256:36;1109:189;-1:-1:-1;;;1109:189:15:o;1303:277::-;1370:6;1423:2;1411:9;1402:7;1398:23;1394:32;1391:52;;;1439:1;1436;1429:12;1391:52;1471:9;1465:16;1524:5;1517:13;1510:21;1503:5;1500:32;1490:60;;1546:1;1543;1536:12", + "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063ba414fa61461003b578063fa7626d414610057575b600080fd5b610043610064565b604051901515815260200160405180910390f35b6000546100439060ff1681565b60008054610100900460ff16156100845750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561018a5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b82840152825180830384018152606083019093526000929091610112917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016101ca565b60408051601f198184030181529082905261012c916101ee565b6000604051808303816000865af19150503d8060008114610169576040519150601f19603f3d011682016040523d82523d6000602084013e61016e565b606091505b50915050808060200190518101906101869190610201565b9150505b919050565b6000815160005b818110156101b05760208185018101518683015201610196565b818111156101bf576000828601525b509290920192915050565b6001600160e01b03198316815260006101e6600483018461018f565b949350505050565b60006101fa828461018f565b9392505050565b60006020828403121561021357600080fd5b815180151581146101fa57600080fdfea2646970667358221220b2970974d801637ae213141c99341eb1249ae7fa243f886dc10fa98c68ad456064736f6c634300080d0033", + "sourceMap": "715:15435:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584;;;:::i;:::-;;;179:14:15;;172:22;154:41;;142:2;127:18;1819:584:0;;;;;;;1572:26;;;;;;;;;1819:584;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;2990:42;2978:55;3059:16;1980:374;;2196:43;;;1671:64;2196:43;;;380:51:15;;;-1:-1:-1;;;447:18:15;;;440:34;2196:43:0;;;;;;;;;353:18:15;;;2196:43:0;;;-1:-1:-1;;1671:64:0;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:0;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;485:336:15:-;526:3;564:5;558:12;588:1;598:128;612:6;609:1;606:13;598:128;;;709:4;694:13;;;690:24;;684:31;671:11;;;664:52;627:12;598:128;;;744:6;741:1;738:13;735:48;;;779:1;770:6;765:3;761:16;754:27;735:48;-1:-1:-1;799:16:15;;;;;485:336;-1:-1:-1;;485:336:15:o;826:278::-;-1:-1:-1;;;;;;1011:33:15;;999:46;;981:3;1061:37;1095:1;1086:11;;1078:6;1061:37;:::i;:::-;1054:44;826:278;-1:-1:-1;;;;826:278:15:o;1109:189::-;1238:3;1263:29;1288:3;1280:6;1263:29;:::i;:::-;1256:36;1109:189;-1:-1:-1;;;1109:189:15:o;1303:277::-;1370:6;1423:2;1411:9;1402:7;1398:23;1394:32;1391:52;;;1439:1;1436;1429:12;1391:52;1471:9;1465:16;1524:5;1517:13;1510:21;1503:5;1500:32;1490:60;;1546:1;1543;1536:12", "linkReferences": {} }, "methodIdentifiers": { @@ -318,7 +318,7 @@ ] }, "nodeType": "SourceUnit", - "src": "689:15460:0", + "src": "689:15462:0", "nodes": [ { "id": 1, @@ -334,7 +334,7 @@ { "id": 1786, "nodeType": "ContractDefinition", - "src": "715:15433:0", + "src": "715:15435:0", "nodes": [ { "id": 5, @@ -20735,11 +20735,11 @@ { "id": 1639, "nodeType": "FunctionDefinition", - "src": "14688:342:0", + "src": "14688:344:0", "body": { "id": 1638, "nodeType": "Block", - "src": "14749:281:0", + "src": "14749:283:0", "statements": [ { "condition": { @@ -20958,11 +20958,11 @@ }, "id": 1637, "nodeType": "IfStatement", - "src": "14759:265:0", + "src": "14759:267:0", "trueBody": { "id": 1636, "nodeType": "Block", - "src": "14829:195:0", + "src": "14829:197:0", "statements": [ { "eventCall": { @@ -21025,7 +21025,7 @@ "eventCall": { "arguments": [ { - "hexValue": "202056616c75652061", + "hexValue": "20204578706563746564", "id": 1624, "isConstant": false, "isLValue": false, @@ -21033,20 +21033,20 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "14927:11:0", + "src": "14927:12:0", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26", - "typeString": "literal_string \" Value a\"" + "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", + "typeString": "literal_string \" Expected\"" }, - "value": " Value a" + "value": " Expected" }, { "id": 1625, - "name": "a", + "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1601, - "src": "14940:1:0", + "referencedDeclaration": 1603, + "src": "14941:1:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -21056,8 +21056,8 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26", - "typeString": "literal_string \" Value a\"" + "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", + "typeString": "literal_string \" Expected\"" }, { "typeIdentifier": "t_string_memory_ptr", @@ -21083,7 +21083,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14910:32:0", + "src": "14910:33:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -21092,13 +21092,13 @@ }, "id": 1627, "nodeType": "EmitStatement", - "src": "14905:37:0" + "src": "14905:38:0" }, { "eventCall": { "arguments": [ { - "hexValue": "202056616c75652062", + "hexValue": "2020202041637475616c", "id": 1629, "isConstant": false, "isLValue": false, @@ -21106,20 +21106,20 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "14978:11:0", + "src": "14979:12:0", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3", - "typeString": "literal_string \" Value b\"" + "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", + "typeString": "literal_string \" Actual\"" }, - "value": " Value b" + "value": " Actual" }, { "id": 1630, - "name": "b", + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1603, - "src": "14991:1:0", + "referencedDeclaration": 1601, + "src": "14993:1:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -21129,8 +21129,8 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3", - "typeString": "literal_string \" Value b\"" + "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", + "typeString": "literal_string \" Actual\"" }, { "typeIdentifier": "t_string_memory_ptr", @@ -21142,7 +21142,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, - "src": "14961:16:0", + "src": "14962:16:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" @@ -21156,7 +21156,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14961:32:0", + "src": "14962:33:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -21165,7 +21165,7 @@ }, "id": 1632, "nodeType": "EmitStatement", - "src": "14956:37:0" + "src": "14957:38:0" }, { "expression": { @@ -21177,7 +21177,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, - "src": "15007:4:0", + "src": "15009:4:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" @@ -21191,7 +21191,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15007:6:0", + "src": "15009:6:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -21200,7 +21200,7 @@ }, "id": 1635, "nodeType": "ExpressionStatement", - "src": "15007:6:0" + "src": "15009:6:0" } ] } @@ -21287,11 +21287,11 @@ { "id": 1674, "nodeType": "FunctionDefinition", - "src": "15035:254:0", + "src": "15037:254:0", "body": { "id": 1673, "nodeType": "Block", - "src": "15115:174:0", + "src": "15117:174:0", "statements": [ { "condition": { @@ -21314,7 +21314,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1641, - "src": "15156:1:0", + "src": "15158:1:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -21334,7 +21334,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "15139:3:0", + "src": "15141:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" @@ -21347,7 +21347,7 @@ "lValueRequested": false, "memberName": "encodePacked", "nodeType": "MemberAccess", - "src": "15139:16:0", + "src": "15141:16:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" @@ -21361,7 +21361,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15139:19:0", + "src": "15141:19:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -21381,7 +21381,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "15129:9:0", + "src": "15131:9:0", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" @@ -21395,7 +21395,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15129:30:0", + "src": "15131:30:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -21414,7 +21414,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1643, - "src": "15190:1:0", + "src": "15192:1:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -21434,7 +21434,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "15173:3:0", + "src": "15175:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" @@ -21447,7 +21447,7 @@ "lValueRequested": false, "memberName": "encodePacked", "nodeType": "MemberAccess", - "src": "15173:16:0", + "src": "15175:16:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" @@ -21461,7 +21461,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15173:19:0", + "src": "15175:19:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -21481,7 +21481,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "15163:9:0", + "src": "15165:9:0", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" @@ -21495,14 +21495,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15163:30:0", + "src": "15165:30:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "15129:64:0", + "src": "15131:64:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21510,11 +21510,11 @@ }, "id": 1672, "nodeType": "IfStatement", - "src": "15125:158:0", + "src": "15127:158:0", "trueBody": { "id": 1671, "nodeType": "Block", - "src": "15195:88:0", + "src": "15197:88:0", "statements": [ { "eventCall": { @@ -21528,7 +21528,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15231:7:0", + "src": "15233:7:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" @@ -21541,7 +21541,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1645, - "src": "15240:3:0", + "src": "15242:3:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -21564,7 +21564,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, - "src": "15214:16:0", + "src": "15216:16:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" @@ -21578,7 +21578,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15214:30:0", + "src": "15216:30:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -21587,7 +21587,7 @@ }, "id": 1665, "nodeType": "EmitStatement", - "src": "15209:35:0" + "src": "15211:35:0" }, { "expression": { @@ -21598,7 +21598,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1641, - "src": "15267:1:0", + "src": "15269:1:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -21610,7 +21610,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1643, - "src": "15270:1:0", + "src": "15272:1:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -21644,7 +21644,7 @@ 1674 ], "referencedDeclaration": 1639, - "src": "15258:8:0", + "src": "15260:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" @@ -21658,7 +21658,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15258:14:0", + "src": "15260:14:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -21667,7 +21667,7 @@ }, "id": 1670, "nodeType": "ExpressionStatement", - "src": "15258:14:0" + "src": "15260:14:0" } ] } @@ -21678,7 +21678,7 @@ "kind": "function", "modifiers": [], "name": "assertEq", - "nameLocation": "15044:8:0", + "nameLocation": "15046:8:0", "parameters": { "id": 1646, "nodeType": "ParameterList", @@ -21688,10 +21688,10 @@ "id": 1641, "mutability": "mutable", "name": "a", - "nameLocation": "15067:1:0", + "nameLocation": "15069:1:0", "nodeType": "VariableDeclaration", "scope": 1674, - "src": "15053:15:0", + "src": "15055:15:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -21702,7 +21702,7 @@ "id": 1640, "name": "string", "nodeType": "ElementaryTypeName", - "src": "15053:6:0", + "src": "15055:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -21715,10 +21715,10 @@ "id": 1643, "mutability": "mutable", "name": "b", - "nameLocation": "15084:1:0", + "nameLocation": "15086:1:0", "nodeType": "VariableDeclaration", "scope": 1674, - "src": "15070:15:0", + "src": "15072:15:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -21729,7 +21729,7 @@ "id": 1642, "name": "string", "nodeType": "ElementaryTypeName", - "src": "15070:6:0", + "src": "15072:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -21742,10 +21742,10 @@ "id": 1645, "mutability": "mutable", "name": "err", - "nameLocation": "15101:3:0", + "nameLocation": "15103:3:0", "nodeType": "VariableDeclaration", "scope": 1674, - "src": "15087:17:0", + "src": "15089:17:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -21756,7 +21756,7 @@ "id": 1644, "name": "string", "nodeType": "ElementaryTypeName", - "src": "15087:6:0", + "src": "15089:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -21765,13 +21765,13 @@ "visibility": "internal" } ], - "src": "15052:53:0" + "src": "15054:53:0" }, "returnParameters": { "id": 1647, "nodeType": "ParameterList", "parameters": [], - "src": "15115:0:0" + "src": "15117:0:0" }, "scope": 1786, "stateMutability": "nonpayable", @@ -21781,11 +21781,11 @@ { "id": 1726, "nodeType": "FunctionDefinition", - "src": "15295:345:0", + "src": "15297:345:0", "body": { "id": 1725, "nodeType": "Block", - "src": "15377:263:0", + "src": "15379:263:0", "statements": [ { "expression": { @@ -21800,7 +21800,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1681, - "src": "15387:2:0", + "src": "15389:2:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21817,14 +21817,14 @@ "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "15392:4:0", + "src": "15394:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "15387:9:0", + "src": "15389:9:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21832,7 +21832,7 @@ }, "id": 1686, "nodeType": "ExpressionStatement", - "src": "15387:9:0" + "src": "15389:9:0" }, { "condition": { @@ -21852,7 +21852,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1676, - "src": "15410:1:0", + "src": "15412:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -21865,7 +21865,7 @@ "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "15410:8:0", + "src": "15412:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21880,7 +21880,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1678, - "src": "15422:1:0", + "src": "15424:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -21893,13 +21893,13 @@ "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "15422:8:0", + "src": "15424:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "15410:20:0", + "src": "15412:20:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21908,7 +21908,7 @@ "falseBody": { "id": 1723, "nodeType": "Block", - "src": "15599:35:0", + "src": "15601:35:0", "statements": [ { "expression": { @@ -21923,7 +21923,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1681, - "src": "15613:2:0", + "src": "15615:2:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21940,14 +21940,14 @@ "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "15618:5:0", + "src": "15620:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "15613:10:0", + "src": "15615:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21955,23 +21955,23 @@ }, "id": 1722, "nodeType": "ExpressionStatement", - "src": "15613:10:0" + "src": "15615:10:0" } ] }, "id": 1724, "nodeType": "IfStatement", - "src": "15406:228:0", + "src": "15408:228:0", "trueBody": { "id": 1718, "nodeType": "Block", - "src": "15432:161:0", + "src": "15434:161:0", "statements": [ { "body": { "id": 1716, "nodeType": "Block", - "src": "15482:101:0", + "src": "15484:101:0", "statements": [ { "condition": { @@ -21991,7 +21991,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1676, - "src": "15504:1:0", + "src": "15506:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -22004,7 +22004,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1693, - "src": "15506:1:0", + "src": "15508:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22015,7 +22015,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15504:4:0", + "src": "15506:4:0", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -22030,7 +22030,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1678, - "src": "15512:1:0", + "src": "15514:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -22043,7 +22043,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1693, - "src": "15514:1:0", + "src": "15516:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22054,13 +22054,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15512:4:0", + "src": "15514:4:0", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, - "src": "15504:12:0", + "src": "15506:12:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22068,11 +22068,11 @@ }, "id": 1715, "nodeType": "IfStatement", - "src": "15500:69:0", + "src": "15502:69:0", "trueBody": { "id": 1714, "nodeType": "Block", - "src": "15518:51:0", + "src": "15520:51:0", "statements": [ { "expression": { @@ -22087,7 +22087,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1681, - "src": "15540:2:0", + "src": "15542:2:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22104,14 +22104,14 @@ "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "15545:5:0", + "src": "15547:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "15540:10:0", + "src": "15542:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22119,7 +22119,7 @@ }, "id": 1713, "nodeType": "ExpressionStatement", - "src": "15540:10:0" + "src": "15542:10:0" } ] } @@ -22142,7 +22142,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1693, - "src": "15463:1:0", + "src": "15465:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22157,7 +22157,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1676, - "src": "15467:1:0", + "src": "15469:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -22170,13 +22170,13 @@ "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "15467:8:0", + "src": "15469:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "15463:12:0", + "src": "15465:12:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22193,10 +22193,10 @@ "id": 1693, "mutability": "mutable", "name": "i", - "nameLocation": "15456:1:0", + "nameLocation": "15458:1:0", "nodeType": "VariableDeclaration", "scope": 1717, - "src": "15451:6:0", + "src": "15453:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22207,7 +22207,7 @@ "id": 1692, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "15451:4:0", + "src": "15453:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22226,7 +22226,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15460:1:0", + "src": "15462:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -22234,7 +22234,7 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "15451:10:0" + "src": "15453:10:0" }, "loopExpression": { "expression": { @@ -22246,14 +22246,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "15477:3:0", + "src": "15479:3:0", "subExpression": { "id": 1700, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1693, - "src": "15477:1:0", + "src": "15479:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22266,10 +22266,10 @@ }, "id": 1702, "nodeType": "ExpressionStatement", - "src": "15477:3:0" + "src": "15479:3:0" }, "nodeType": "ForStatement", - "src": "15446:137:0" + "src": "15448:137:0" } ] } @@ -22280,7 +22280,7 @@ "kind": "function", "modifiers": [], "name": "checkEq0", - "nameLocation": "15304:8:0", + "nameLocation": "15306:8:0", "parameters": { "id": 1679, "nodeType": "ParameterList", @@ -22290,10 +22290,10 @@ "id": 1676, "mutability": "mutable", "name": "a", - "nameLocation": "15326:1:0", + "nameLocation": "15328:1:0", "nodeType": "VariableDeclaration", "scope": 1726, - "src": "15313:14:0", + "src": "15315:14:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -22304,7 +22304,7 @@ "id": 1675, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "15313:5:0", + "src": "15315:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -22317,10 +22317,10 @@ "id": 1678, "mutability": "mutable", "name": "b", - "nameLocation": "15342:1:0", + "nameLocation": "15344:1:0", "nodeType": "VariableDeclaration", "scope": 1726, - "src": "15329:14:0", + "src": "15331:14:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -22331,7 +22331,7 @@ "id": 1677, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "15329:5:0", + "src": "15331:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -22340,7 +22340,7 @@ "visibility": "internal" } ], - "src": "15312:32:0" + "src": "15314:32:0" }, "returnParameters": { "id": 1682, @@ -22351,10 +22351,10 @@ "id": 1681, "mutability": "mutable", "name": "ok", - "nameLocation": "15373:2:0", + "nameLocation": "15375:2:0", "nodeType": "VariableDeclaration", "scope": 1726, - "src": "15368:7:0", + "src": "15370:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22365,7 +22365,7 @@ "id": 1680, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "15368:4:0", + "src": "15370:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22374,7 +22374,7 @@ "visibility": "internal" } ], - "src": "15367:9:0" + "src": "15369:9:0" }, "scope": 1786, "stateMutability": "pure", @@ -22384,11 +22384,11 @@ { "id": 1758, "nodeType": "FunctionDefinition", - "src": "15645:291:0", + "src": "15647:291:0", "body": { "id": 1757, "nodeType": "Block", - "src": "15705:231:0", + "src": "15707:231:0", "statements": [ { "condition": { @@ -22400,7 +22400,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "15719:15:0", + "src": "15721:15:0", "subExpression": { "arguments": [ { @@ -22409,7 +22409,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1728, - "src": "15729:1:0", + "src": "15731:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -22421,7 +22421,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1730, - "src": "15732:1:0", + "src": "15734:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -22444,7 +22444,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1726, - "src": "15720:8:0", + "src": "15722:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (bytes memory,bytes memory) pure returns (bool)" @@ -22458,7 +22458,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15720:14:0", + "src": "15722:14:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -22472,11 +22472,11 @@ }, "id": 1756, "nodeType": "IfStatement", - "src": "15715:215:0", + "src": "15717:215:0", "trueBody": { "id": 1755, "nodeType": "Block", - "src": "15736:194:0", + "src": "15738:194:0", "statements": [ { "eventCall": { @@ -22490,7 +22490,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15759:37:0", + "src": "15761:37:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9bb7b728691fe2872efdd27bd07c4a95b3586c3b7ec3afa731a7c21a76e39cfc", "typeString": "literal_string \"Error: a == b not satisfied [bytes]\"" @@ -22510,7 +22510,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, - "src": "15755:3:0", + "src": "15757:3:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory)" @@ -22524,7 +22524,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15755:42:0", + "src": "15757:42:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -22533,7 +22533,7 @@ }, "id": 1741, "nodeType": "EmitStatement", - "src": "15750:47:0" + "src": "15752:47:0" }, { "eventCall": { @@ -22547,7 +22547,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15832:12:0", + "src": "15834:12:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b", "typeString": "literal_string \" Expected\"" @@ -22556,11 +22556,11 @@ }, { "id": 1744, - "name": "a", + "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "15846:1:0", + "referencedDeclaration": 1730, + "src": "15848:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -22583,7 +22583,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 79, - "src": "15816:15:0", + "src": "15818:15:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (string memory,bytes memory)" @@ -22597,7 +22597,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15816:32:0", + "src": "15818:32:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -22606,7 +22606,7 @@ }, "id": 1746, "nodeType": "EmitStatement", - "src": "15811:37:0" + "src": "15813:37:0" }, { "eventCall": { @@ -22620,7 +22620,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15883:12:0", + "src": "15885:12:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b", "typeString": "literal_string \" Actual\"" @@ -22629,11 +22629,11 @@ }, { "id": 1749, - "name": "b", + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1730, - "src": "15897:1:0", + "referencedDeclaration": 1728, + "src": "15899:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -22656,7 +22656,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 79, - "src": "15867:15:0", + "src": "15869:15:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (string memory,bytes memory)" @@ -22670,7 +22670,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15867:32:0", + "src": "15869:32:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -22679,7 +22679,7 @@ }, "id": 1751, "nodeType": "EmitStatement", - "src": "15862:37:0" + "src": "15864:37:0" }, { "expression": { @@ -22691,7 +22691,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, - "src": "15913:4:0", + "src": "15915:4:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" @@ -22705,7 +22705,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15913:6:0", + "src": "15915:6:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -22714,7 +22714,7 @@ }, "id": 1754, "nodeType": "ExpressionStatement", - "src": "15913:6:0" + "src": "15915:6:0" } ] } @@ -22725,7 +22725,7 @@ "kind": "function", "modifiers": [], "name": "assertEq0", - "nameLocation": "15654:9:0", + "nameLocation": "15656:9:0", "parameters": { "id": 1731, "nodeType": "ParameterList", @@ -22735,10 +22735,10 @@ "id": 1728, "mutability": "mutable", "name": "a", - "nameLocation": "15677:1:0", + "nameLocation": "15679:1:0", "nodeType": "VariableDeclaration", "scope": 1758, - "src": "15664:14:0", + "src": "15666:14:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -22749,7 +22749,7 @@ "id": 1727, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "15664:5:0", + "src": "15666:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -22762,10 +22762,10 @@ "id": 1730, "mutability": "mutable", "name": "b", - "nameLocation": "15693:1:0", + "nameLocation": "15695:1:0", "nodeType": "VariableDeclaration", "scope": 1758, - "src": "15680:14:0", + "src": "15682:14:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -22776,7 +22776,7 @@ "id": 1729, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "15680:5:0", + "src": "15682:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -22785,13 +22785,13 @@ "visibility": "internal" } ], - "src": "15663:32:0" + "src": "15665:32:0" }, "returnParameters": { "id": 1732, "nodeType": "ParameterList", "parameters": [], - "src": "15705:0:0" + "src": "15707:0:0" }, "scope": 1786, "stateMutability": "nonpayable", @@ -22801,11 +22801,11 @@ { "id": 1785, "nodeType": "FunctionDefinition", - "src": "15941:205:0", + "src": "15943:205:0", "body": { "id": 1784, "nodeType": "Block", - "src": "16020:126:0", + "src": "16022:126:0", "statements": [ { "condition": { @@ -22817,7 +22817,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "16034:15:0", + "src": "16036:15:0", "subExpression": { "arguments": [ { @@ -22826,7 +22826,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1760, - "src": "16044:1:0", + "src": "16046:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -22838,7 +22838,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1762, - "src": "16047:1:0", + "src": "16049:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -22861,7 +22861,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1726, - "src": "16035:8:0", + "src": "16037:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (bytes memory,bytes memory) pure returns (bool)" @@ -22875,7 +22875,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16035:14:0", + "src": "16037:14:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -22889,11 +22889,11 @@ }, "id": 1783, "nodeType": "IfStatement", - "src": "16030:110:0", + "src": "16032:110:0", "trueBody": { "id": 1782, "nodeType": "Block", - "src": "16051:89:0", + "src": "16053:89:0", "statements": [ { "eventCall": { @@ -22907,7 +22907,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "16087:7:0", + "src": "16089:7:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1", "typeString": "literal_string \"Error\"" @@ -22920,7 +22920,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1764, - "src": "16096:3:0", + "src": "16098:3:0", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -22943,7 +22943,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 85, - "src": "16070:16:0", + "src": "16072:16:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory)" @@ -22957,7 +22957,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16070:30:0", + "src": "16072:30:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -22966,7 +22966,7 @@ }, "id": 1776, "nodeType": "EmitStatement", - "src": "16065:35:0" + "src": "16067:35:0" }, { "expression": { @@ -22977,7 +22977,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1760, - "src": "16124:1:0", + "src": "16126:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -22989,7 +22989,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1762, - "src": "16127:1:0", + "src": "16129:1:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -23015,7 +23015,7 @@ 1785 ], "referencedDeclaration": 1758, - "src": "16114:9:0", + "src": "16116:9:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory,bytes memory)" @@ -23029,7 +23029,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16114:15:0", + "src": "16116:15:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -23038,7 +23038,7 @@ }, "id": 1781, "nodeType": "ExpressionStatement", - "src": "16114:15:0" + "src": "16116:15:0" } ] } @@ -23049,7 +23049,7 @@ "kind": "function", "modifiers": [], "name": "assertEq0", - "nameLocation": "15950:9:0", + "nameLocation": "15952:9:0", "parameters": { "id": 1765, "nodeType": "ParameterList", @@ -23059,10 +23059,10 @@ "id": 1760, "mutability": "mutable", "name": "a", - "nameLocation": "15973:1:0", + "nameLocation": "15975:1:0", "nodeType": "VariableDeclaration", "scope": 1785, - "src": "15960:14:0", + "src": "15962:14:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -23073,7 +23073,7 @@ "id": 1759, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "15960:5:0", + "src": "15962:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -23086,10 +23086,10 @@ "id": 1762, "mutability": "mutable", "name": "b", - "nameLocation": "15989:1:0", + "nameLocation": "15991:1:0", "nodeType": "VariableDeclaration", "scope": 1785, - "src": "15976:14:0", + "src": "15978:14:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -23100,7 +23100,7 @@ "id": 1761, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "15976:5:0", + "src": "15978:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -23113,10 +23113,10 @@ "id": 1764, "mutability": "mutable", "name": "err", - "nameLocation": "16006:3:0", + "nameLocation": "16008:3:0", "nodeType": "VariableDeclaration", "scope": 1785, - "src": "15992:17:0", + "src": "15994:17:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -23127,7 +23127,7 @@ "id": 1763, "name": "string", "nodeType": "ElementaryTypeName", - "src": "15992:6:0", + "src": "15994:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -23136,13 +23136,13 @@ "visibility": "internal" } ], - "src": "15959:51:0" + "src": "15961:51:0" }, "returnParameters": { "id": 1766, "nodeType": "ParameterList", "parameters": [], - "src": "16020:0:0" + "src": "16022:0:0" }, "scope": 1786, "stateMutability": "nonpayable", diff --git a/packages/contracts-forge/src/IPrompty.sol b/packages/contracts-forge/src/IPrompty.sol index 5446b27..d235882 100644 --- a/packages/contracts-forge/src/IPrompty.sol +++ b/packages/contracts-forge/src/IPrompty.sol @@ -5,6 +5,8 @@ interface IPrompty { struct PromptyInstance { uint256 id; string name; + bool isVisible; + string description; mapping(address => bool) allowedResponders; } @@ -26,9 +28,21 @@ interface IPrompty { uint128 minChars, uint128 maxChars ); + event PromptResponse(uint256 promptId, address responder, string response); event ResponderAdded(uint256 instanceId, address responder); - event InstanceCreated(uint256 id, string name); + event InstanceCreated( + uint256 id, + string name, + string description, + bool isVisible + ); + event InstanceUpdated( + uint256 id, + string name, + string description, + bool isVisible + ); error InvalidPrompt(); error InvalidPromptParams(); @@ -41,10 +55,23 @@ interface IPrompty { function createInstance( address[] memory allowedResponders, - string memory name + string memory name, + string memory description, + bool isVisible + ) external; + + function updateSettings( + uint256 instanceId, + string memory newName, + string memory newDescription, + bool newIsVisible, + address[] memory newAllowedResponders ) external; - function addResponder(uint256 instanceID, address responder) external; + function addResponders( + uint256 instanceID, + address[] memory allowedResponders + ) external; function createPrompt( uint256 instanceId, @@ -54,5 +81,9 @@ interface IPrompty { uint128 maxChars ) external; - function respond(uint256 promptId, string memory response) external; + function respond( + uint256 instanceId, + uint256 promptId, + string memory response + ) external; } diff --git a/packages/contracts-forge/src/Prompty.sol b/packages/contracts-forge/src/Prompty.sol index 81373d5..ad7d5d1 100644 --- a/packages/contracts-forge/src/Prompty.sol +++ b/packages/contracts-forge/src/Prompty.sol @@ -13,13 +13,21 @@ contract Prompty is IPrompty { function createInstance( address[] memory allowedResponders, - string memory name + string memory name, + string memory description, + bool isVisible ) public { PromptyInstance storage instance = instances[instanceCount]; instance.name = name; + instance.isVisible = isVisible; - emit InstanceCreated(instanceCount, name); + emit InstanceCreated( + instanceCount, + name, + description, + instance.isVisible + ); for (uint256 i = 0; i < allowedResponders.length; i++) { instance.allowedResponders[allowedResponders[i]] = true; @@ -31,15 +39,44 @@ contract Prompty is IPrompty { } } - function addResponder(uint256 instanceID, address responder) public { + function addResponders( + uint256 instanceID, + address[] memory allowedResponders + ) public { PromptyInstance storage instance = instances[instanceID]; - if (!instance.allowedResponders[responder]) { - instance.allowedResponders[responder] = true; - emit ResponderAdded(instanceID, responder); + for (uint256 i = 0; i < allowedResponders.length; i++) { + instance.allowedResponders[allowedResponders[i]] = true; + emit ResponderAdded(instanceCount, allowedResponders[i]); } } + function updateSettings( + uint256 instanceId, + string memory newName, + string memory newDescription, + bool newIsVisible, + address[] memory newAllowedResponders + ) public { + PromptyInstance storage instance = instances[instanceId]; + + if (instances[instanceId].allowedResponders[msg.sender] == false) { + revert NotAllowed(); + } + + instance.name = newName; + instance.description = newDescription; + instance.isVisible = newIsVisible; + addResponders(instanceId, newAllowedResponders); + + emit InstanceUpdated( + instanceId, + instance.name, + instance.description, + instance.isVisible + ); + } + function createPrompt( uint256 instanceId, string memory prompt, @@ -75,7 +112,15 @@ contract Prompty is IPrompty { currentPromptId += 1; } - function respond(uint256 promptId, string memory response) public { + function respond( + uint256 instanceId, + uint256 promptId, + string memory response + ) public { + if (instances[instanceId].allowedResponders[msg.sender] == false) { + revert NotAllowed(); + } + if (promptId >= currentPromptId) revert InvalidPromptID(); if (prompts[promptId].endTime < block.timestamp) revert PromptExpired(); if (prompts[promptId].responses[msg.sender]) revert AlreadyResponded(); diff --git a/packages/contracts-forge/test/Prompty.t.sol b/packages/contracts-forge/test/Prompty.t.sol index ea93c1c..9478dfd 100644 --- a/packages/contracts-forge/test/Prompty.t.sol +++ b/packages/contracts-forge/test/Prompty.t.sol @@ -18,7 +18,12 @@ contract PromptyTest is DSTest { address[] memory allowedResponders; allowedResponders[0] = 0xD286064cc27514B914BAB0F2FaD2E1a89A91F314; - prompty.createInstance(allowedResponders, "test"); + prompty.createInstance( + allowedResponders, + "test", + "test description", + true + ); prompty.createPrompt(0, "prompt", block.timestamp + 10, 1, 100); @@ -37,26 +42,32 @@ contract PromptyTest is DSTest { function testRespond() public { cheats.expectRevert(IPrompty.InvalidPromptID.selector); - prompty.respond(0, "response"); + prompty.respond(0, 0, "response"); address[] memory allowedResponders; allowedResponders[0] = 0xD286064cc27514B914BAB0F2FaD2E1a89A91F314; - prompty.createInstance(allowedResponders, "test"); + prompty.createInstance( + allowedResponders, + "test", + "test description", + true + ); prompty.createPrompt(0, "prompt", block.timestamp + 10, 1, 100); cheats.expectRevert(IPrompty.ResponseTooShort.selector); - prompty.respond(0, ""); + prompty.respond(0, 0, ""); cheats.expectRevert(IPrompty.ResponseTooLong.selector); prompty.respond( + 0, 0, " " ); - prompty.respond(0, "response"); + prompty.respond(0, 0, "response"); cheats.expectRevert(IPrompty.AlreadyResponded.selector); - prompty.respond(0, "response"); + prompty.respond(0, 0, "response"); } } diff --git a/packages/contracts/.env.sample b/packages/contracts/.env.sample deleted file mode 100644 index ef146b5..0000000 --- a/packages/contracts/.env.sample +++ /dev/null @@ -1,8 +0,0 @@ -ETHEREUM_RINKEBY_RPC_URL= -ETHEREUM_RINKEBY_DEPLOYER_PRIVATE_KEY= -POLYGON_MUMBAI_RPC_URL= -POLYGON_MUMBAI_DEPLOYER_PRIVATE_KEY= -POLYGON_MAINNET_RPC_URL= -POLYGON_MAINNET_DEPLOYER_PRIVATE_KEY= -ETHERSCAN_API_KEY= -COINMARKETCAP_API_KEY= diff --git a/packages/contracts/.gitignore b/packages/contracts/.gitignore deleted file mode 100644 index b743e4e..0000000 --- a/packages/contracts/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -cache -artifacts/build-info -artifacts/**/*.dbg.json -*.tsbuildinfo - -.env* diff --git a/packages/contracts/artifacts/contracts/Prompty.sol/Prompty.json b/packages/contracts/artifacts/contracts/Prompty.sol/Prompty.json deleted file mode 100644 index ca70a3d..0000000 --- a/packages/contracts/artifacts/contracts/Prompty.sol/Prompty.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Prompty", - "sourceName": "contracts/Prompty.sol", - "abi": [ - { - "inputs": [], - "name": "AlreadyResponded", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPrompt", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPromptID", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPromptParams", - "type": "error" - }, - { - "inputs": [], - "name": "PromptExpired", - "type": "error" - }, - { - "inputs": [], - "name": "ResponseTooLong", - "type": "error" - }, - { - "inputs": [], - "name": "ResponseTooShort", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "promptId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "creator", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "prompt", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "startTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "endTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint128", - "name": "minChars", - "type": "uint128" - }, - { - "indexed": false, - "internalType": "uint128", - "name": "maxChars", - "type": "uint128" - } - ], - "name": "PromptCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "promptId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "responder", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "response", - "type": "string" - } - ], - "name": "PromptResponse", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "prompt", - "type": "string" - }, - { - "internalType": "uint256", - "name": "endTime", - "type": "uint256" - }, - { - "internalType": "uint128", - "name": "minChars", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "maxChars", - "type": "uint128" - } - ], - "name": "create", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "currentPromptId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "prompts", - "outputs": [ - { - "internalType": "uint256", - "name": "startTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "endTime", - "type": "uint256" - }, - { - "internalType": "uint128", - "name": "minChars", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "maxChars", - "type": "uint128" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "promptId", - "type": "uint256" - }, - { - "internalType": "string", - "name": "response", - "type": "string" - } - ], - "name": "respond", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040526000805534801561001457600080fd5b5061072b806100246000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806317e7d99d14610051578063bfa810db1461006d578063d4cf9af714610082578063d8fcb578146100f3575b600080fd5b61005a60005481565b6040519081526020015b60405180910390f35b61008061007b366004610518565b610106565b005b6100c4610090366004610580565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b0391821692840192909252166060820152608001610064565b610080610101366004610599565b61025c565b835161013e576040517f8bbe2dc600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561017157604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161019b57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b0316106101c657604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517fab7be343fe9a457e76003123d1df41b4e3c19e374de088eb3805db5a4432f35292610236929133918a918a908a908a9061062d565b60405180910390a160016000808282546102509190610691565b90915550505050505050565b6000548210610297576040517fbad818f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260016020819052604090912001544211156102e3576040517fbf75c95800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff161561033a576040517f4a3574d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b039091161115610391576040517f4a8105ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b031610156103ee576040517f4e0f0f3600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e58809161044d9185919085906106b7565b60405180910390a15050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261048057600080fd5b813567ffffffffffffffff8082111561049b5761049b610459565b604051601f8301601f19908116603f011681019082821181831017156104c3576104c3610459565b816040528381528660208588010111156104dc57600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160801b038116811461051357600080fd5b919050565b6000806000806080858703121561052e57600080fd5b843567ffffffffffffffff81111561054557600080fd5b6105518782880161046f565b94505060208501359250610567604086016104fc565b9150610575606086016104fc565b905092959194509250565b60006020828403121561059257600080fd5b5035919050565b600080604083850312156105ac57600080fd5b82359150602083013567ffffffffffffffff8111156105ca57600080fd5b6105d68582860161046f565b9150509250929050565b6000815180845260005b81811015610606576020818501810151868301820152016105ea565b81811115610618576000602083870101525b50601f01601f19169290920160200192915050565b87815273ffffffffffffffffffffffffffffffffffffffff8716602082015260e06040820152600061066260e08301886105e0565b60608301969096525060808101939093526001600160801b0391821660a08401521660c0909101529392505050565b600082198211156106b257634e487b7160e01b600052601160045260246000fd5b500190565b83815273ffffffffffffffffffffffffffffffffffffffff831660208201526060604082015260006106ec60608301846105e0565b9594505050505056fea2646970667358221220264c817d05ce523886af884cca11b5a3fda57aeaa8aa06366ea43e66514a346064736f6c63430008090033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806317e7d99d14610051578063bfa810db1461006d578063d4cf9af714610082578063d8fcb578146100f3575b600080fd5b61005a60005481565b6040519081526020015b60405180910390f35b61008061007b366004610518565b610106565b005b6100c4610090366004610580565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b0391821692840192909252166060820152608001610064565b610080610101366004610599565b61025c565b835161013e576040517f8bbe2dc600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561017157604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161019b57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b0316106101c657604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517fab7be343fe9a457e76003123d1df41b4e3c19e374de088eb3805db5a4432f35292610236929133918a918a908a908a9061062d565b60405180910390a160016000808282546102509190610691565b90915550505050505050565b6000548210610297576040517fbad818f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260016020819052604090912001544211156102e3576040517fbf75c95800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff161561033a576040517f4a3574d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b039091161115610391576040517f4a8105ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b031610156103ee576040517f4e0f0f3600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e58809161044d9185919085906106b7565b60405180910390a15050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261048057600080fd5b813567ffffffffffffffff8082111561049b5761049b610459565b604051601f8301601f19908116603f011681019082821181831017156104c3576104c3610459565b816040528381528660208588010111156104dc57600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160801b038116811461051357600080fd5b919050565b6000806000806080858703121561052e57600080fd5b843567ffffffffffffffff81111561054557600080fd5b6105518782880161046f565b94505060208501359250610567604086016104fc565b9150610575606086016104fc565b905092959194509250565b60006020828403121561059257600080fd5b5035919050565b600080604083850312156105ac57600080fd5b82359150602083013567ffffffffffffffff8111156105ca57600080fd5b6105d68582860161046f565b9150509250929050565b6000815180845260005b81811015610606576020818501810151868301820152016105ea565b81811115610618576000602083870101525b50601f01601f19169290920160200192915050565b87815273ffffffffffffffffffffffffffffffffffffffff8716602082015260e06040820152600061066260e08301886105e0565b60608301969096525060808101939093526001600160801b0391821660a08401521660c0909101529392505050565b600082198211156106b257634e487b7160e01b600052601160045260246000fd5b500190565b83815273ffffffffffffffffffffffffffffffffffffffff831660208201526060604082015260006106ec60608301846105e0565b9594505050505056fea2646970667358221220264c817d05ce523886af884cca11b5a3fda57aeaa8aa06366ea43e66514a346064736f6c63430008090033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/contracts/contracts/Prompty.sol b/packages/contracts/contracts/Prompty.sol deleted file mode 100644 index 5638b3c..0000000 --- a/packages/contracts/contracts/Prompty.sol +++ /dev/null @@ -1,85 +0,0 @@ -// SPDX-License-Identifier: CC0-1.0 - -pragma solidity ^0.8.9; - -contract Prompty { - struct Prompt { - uint256 startTime; - uint256 endTime; - uint128 minChars; - uint128 maxChars; - mapping(address => bool) responses; - } - - // struct PromptResponseMetadata { - // uint256 promptId; - // } - - event PromptCreated( - uint256 promptId, - address creator, - string prompt, - uint256 startTime, - uint256 endTime, - uint128 minChars, - uint128 maxChars - ); - event PromptResponse(uint256 promptId, address responder, string response); - - error InvalidPrompt(); - error InvalidPromptParams(); - error InvalidPromptID(); - error PromptExpired(); - error AlreadyResponded(); - error ResponseTooShort(); - error ResponseTooLong(); - - uint256 public currentPromptId = 0; - mapping(uint256 => Prompt) public prompts; - - // mapping(uint256 => uint256) public responses; - - function create( - string memory prompt, - uint256 endTime, - uint128 minChars, - uint128 maxChars - ) public { - if (bytes(prompt).length == 0) revert InvalidPrompt(); - if (minChars > maxChars) revert InvalidPromptParams(); - if (minChars <= 0) revert InvalidPromptParams(); - if (maxChars >= 4096) revert InvalidPromptParams(); - - Prompt storage p = prompts[currentPromptId]; - p.startTime = block.timestamp; - p.endTime = endTime; - p.minChars = minChars; - p.maxChars = maxChars; - - emit PromptCreated( - currentPromptId, - msg.sender, - prompt, - block.timestamp, - endTime, - minChars, - maxChars - ); - currentPromptId += 1; - } - - function respond(uint256 promptId, string memory response) public { - if (promptId >= currentPromptId) revert InvalidPromptID(); - if (prompts[promptId].endTime < block.timestamp) revert PromptExpired(); - if (prompts[promptId].responses[msg.sender]) revert AlreadyResponded(); - if (bytes(response).length < prompts[promptId].minChars) - revert ResponseTooShort(); - if (bytes(response).length > prompts[promptId].maxChars) - revert ResponseTooLong(); - - prompts[promptId].responses[msg.sender] = true; - emit PromptResponse(promptId, msg.sender, response); - } - - // TODO - add in signer thingy -} diff --git a/packages/contracts/contracts/PromptyResponses.sol b/packages/contracts/contracts/PromptyResponses.sol deleted file mode 100644 index e69de29..0000000 diff --git a/packages/contracts/deploys.json b/packages/contracts/deploys.json deleted file mode 100644 index c42abf4..0000000 --- a/packages/contracts/deploys.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rinkeby": { - "Prompty": { - "address": "0x7cFc9c436bE1bd47116C43573bF2Ddb0bD0b4460", - "blockNumber": 10544356 - } - } -} \ No newline at end of file diff --git a/packages/contracts/foundry.toml b/packages/contracts/foundry.toml deleted file mode 100644 index e4e73a3..0000000 --- a/packages/contracts/foundry.toml +++ /dev/null @@ -1,11 +0,0 @@ -[default] -src = 'src' -out = 'artifacts' -libs = ['node_modules'] -remappings = [ - '@opengsn/=node_modules/@opengsn/', - '@openzeppelin/=node_modules/@openzeppelin/', - 'hardhat/=node_modules/hardhat/', -] - -# See more config options https://github.com/gakonst/foundry/tree/master/config \ No newline at end of file diff --git a/packages/contracts/hardhat.config.ts b/packages/contracts/hardhat.config.ts deleted file mode 100644 index 50f0d04..0000000 --- a/packages/contracts/hardhat.config.ts +++ /dev/null @@ -1,57 +0,0 @@ -import "@typechain/hardhat"; -import "@nomiclabs/hardhat-ethers"; -import "@nomiclabs/hardhat-etherscan"; -import "hardhat-gas-reporter"; - -import dotenv from "dotenv"; - -dotenv.config(); - -/** - * @type import('hardhat/config').HardhatUserConfig - */ -export default { - solidity: { - version: "0.8.9", - settings: { - optimizer: { - enabled: true, - runs: 1000, - }, - }, - }, - ...(process.env.NODE_ENV !== "production" && process.env.NODE_ENV !== "ci" - ? { - networks: { - hardhat: { - chainId: 1337, - mining: { - auto: false, - interval: 1000, - }, - }, - mumbai: { - url: process.env.POLYGON_MUMBAI_RPC_URL, - accounts: [process.env.POLYGON_MUMBAI_DEPLOYER_PRIVATE_KEY], - }, - rinkeby: { - url: process.env.ETHEREUM_RINKEBY_RPC_URL, - accounts: [process.env.ETHEREUM_RINKEBY_DEPLOYER_PRIVATE_KEY], - }, - matic: { - url: process.env.POLYGON_MAINNET_RPC_URL, - accounts: [process.env.POLYGON_MAINNET_DEPLOYER_PRIVATE_KEY], - }, - }, - etherscan: { - apiKey: process.env.ETHERSCAN_API_KEY, - }, - gasReporter: { - currency: "USD", - gasPrice: 100, - token: "MATIC", - coinmarketcap: process.env.COINMARKETCAP_API_KEY, - }, - } - : {}), -}; diff --git a/packages/contracts/lib/ds-test b/packages/contracts/lib/ds-test index 2c7dbcc..9310e87 160000 --- a/packages/contracts/lib/ds-test +++ b/packages/contracts/lib/ds-test @@ -1 +1 @@ -Subproject commit 2c7dbcc8586b33f358e3307a443e524490c17666 +Subproject commit 9310e879db8ba3ea6d5c6489a579118fd264a3f5 diff --git a/packages/contracts/package.json b/packages/contracts/package.json deleted file mode 100644 index bd34476..0000000 --- a/packages/contracts/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "@prompty/contracts", - "private": true, - "engines": { - "node": ">=14 <16" - }, - "scripts": { - "start": "hardhat node", - "test": "hardhat test", - "build": "hardhat compile && tsc --build", - "clean": "hardhat clean", - "deploy": "hardhat clean && hardhat run scripts/deploy.ts", - "deploy:local": "npm run deploy -- --network localhost", - "deploy:mumbai": "npm run deploy -- --network mumbai", - "deploy:rinkeby": "npm run deploy -- --network rinkeby", - "deploy:matic": "npm run deploy -- --network matic" - }, - "dependencies": { - "@opengsn/contracts": "^2.2.5", - "@openzeppelin/contracts": "^4.4.2" - }, - "devDependencies": { - "@ethersproject/abi": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/providers": "^5.5.0", - "@nomiclabs/hardhat-ethers": "^2.0.3", - "@nomiclabs/hardhat-etherscan": "^2.1.8", - "@typechain/ethers-v5": "^8.0.5", - "@typechain/hardhat": "^3.0.0", - "@types/chai": "^4.3.0", - "@types/mocha": "^9.0.0", - "@types/node": "^16.11.12", - "chai": "^4.3.4", - "dotenv": "^10.0.0", - "eslint": "^8.4.1", - "ethers": "^5.5.2", - "hardhat": "^2.7.1", - "hardhat-gas-reporter": "^1.0.6", - "ts-node": "^10.4.0", - "typechain": "^6.0.5", - "typescript": "^4.5.5" - } -} diff --git a/packages/contracts/scripts/deploy.ts b/packages/contracts/scripts/deploy.ts deleted file mode 100644 index 40177da..0000000 --- a/packages/contracts/scripts/deploy.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { ContractFactory } from "ethers"; -import { parseUnits } from "ethers/lib/utils"; -import fs from "fs/promises"; -import hre, { ethers, network } from "hardhat"; - -import { Prompty, Prompty__factory } from "../typechain-types"; - -const exists = (path: string) => - fs - .access(path) - .then(() => true) - .catch(() => false); - -// TODO: add type for deploys JSON - -const contractsToRedeploy = process.env.REDEPLOY_CONTRACTS?.split(",") || []; - -const deployContract = async ( - factory: T, - args: Parameters -) => { - const deploysPath = `${__dirname}/../deploys.json`; - const deploys = (await exists(deploysPath)) - ? JSON.parse((await fs.readFile(deploysPath)).toString()) - : {}; - - const deployedContracts = deploys[network.name] || {}; - const contractName = factory.constructor.name.replace(/__factory$/, ""); - - if ( - deployedContracts[contractName] && - !contractsToRedeploy.includes(contractName) - ) { - const { address } = deployedContracts[contractName]; - console.log( - `Contract ${contractName} has already been deployed to ${address}. Use \`REDEPLOY_CONTRACTS=${contractName}\` to deploy a new contract and override the stored address.` - ); - return factory.attach(address); - } - - const contract = await factory.deploy(...args); - // For some reason, `contract.address` is returning a different address - // than the one deployed. Might be a Polygon issue? - // - // Instead, grab `contractAddress` from the deploy transaction receipt. - const tx = await contract.deployTransaction.wait(); - console.log( - `${contractName} deployed at ${tx.contractAddress} (block #${ - tx.blockNumber - }), cost: ${ethers.utils.formatUnits( - tx.gasUsed.mul(tx.effectiveGasPrice), - 18 - )}` - ); - - // TODO: consider storing args? and use that to determine if we should redeploy? - - await fs.writeFile( - deploysPath, - JSON.stringify( - { - ...deploys, - [network.name]: { - ...deployedContracts, - [contractName]: { - address: tx.contractAddress, - blockNumber: tx.blockNumber, - }, - }, - }, - null, - 2 - ) - ); - - console.log("Waiting for 10 confirmations before verify…"); - await contract.deployTransaction.wait(10); - - console.log("Verifying contract…"); - await hre.run("verify:verify", { - address: tx.contractAddress, - constructorArguments: [], - }); - - return factory.attach(tx.contractAddress); -}; - -const start = async () => { - const [deployer] = await ethers.getSigners(); - console.log(`Starting deploy on ${network.name} from ${deployer.address}`); - - // TODO: figure out how to get TS to infer contract type so we don't have to cast - const prompty = (await deployContract(new Prompty__factory(deployer), [ - { gasPrice: parseUnits("10", "gwei") }, - ])) as Prompty; - - console.log("Done!"); -}; - -start().catch((e: Error) => { - console.error(e); - process.exit(1); -}); diff --git a/packages/contracts/scripts/test.ts b/packages/contracts/scripts/test.ts deleted file mode 100644 index 059119d..0000000 --- a/packages/contracts/scripts/test.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { JsonRpcProvider } from "@ethersproject/providers"; -import { Wallet } from "ethers"; -import fs from "fs/promises"; -import { Prompty__factory } from "../typechain-types"; - -import dotenv from "dotenv"; - -const exists = (path: string) => - fs - .access(path) - .then(() => true) - .catch(() => false); - -const start = async () => { - dotenv.config(); - const provider = new JsonRpcProvider(process.env.ETHEREUM_RINKEBY_RPC_URL); - const deployer = new Wallet( - `0x${process.env.ETHEREUM_RINKEBY_DEPLOYER_PRIVATE_KEY}`, - provider - ); - - const deploysPath = `${__dirname}/../deploys.json`; - const deploys = (await exists(deploysPath)) - ? JSON.parse((await fs.readFile(deploysPath)).toString()) - : {}; - const addr = deploys["rinkeby"]?.["Prompty"].address; - - const prompty = Prompty__factory.connect(addr, deployer); - - // await prompty.create("what's up?", 1650775598, 1, 1000); - await prompty.respond(0, "the sky"); - - console.log(addr); -}; - -start().catch((e: Error) => { - console.error(e); - process.exit(1); -}); diff --git a/packages/contracts/src/Contract.sol b/packages/contracts/src/Contract.sol deleted file mode 100644 index 655b543..0000000 --- a/packages/contracts/src/Contract.sol +++ /dev/null @@ -1,4 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -contract Contract {} diff --git a/packages/contracts/test/Contract.t.sol b/packages/contracts/test/Contract.t.sol deleted file mode 100644 index 6a16541..0000000 --- a/packages/contracts/test/Contract.t.sol +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -import "ds-test/test.sol"; - -contract ContractTest is DSTest { - function setUp() public {} - - function testExample() public { - assertTrue(true); - } -} diff --git a/packages/contracts/test/ExampleNFT.ts b/packages/contracts/test/ExampleNFT.ts deleted file mode 100644 index 4e0602d..0000000 --- a/packages/contracts/test/ExampleNFT.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { expect } from "chai"; -import { ethers } from "hardhat"; -import { Prompty } from "../typechain-types"; - -describe("ExampleNFT contract", () => { - it("can mint", async () => { - const [deployer] = await ethers.getSigners(); - const ContractFactory = await ethers.getContractFactory("Prompty"); - const contract = (await ContractFactory.deploy()) as Prompty; - - console.log(deployer); - await contract.connect(deployer).create("what's up?", 1650775598, 1, 1000); - // await console.log(await contract.prompts(0)); - // console.log(await contract.respond(0, "the sky")); - // console.log(await contract.respond(1, "the sky")); - }); -}); diff --git a/packages/contracts/tsconfig.json b/packages/contracts/tsconfig.json deleted file mode 100644 index 1570985..0000000 --- a/packages/contracts/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "include": ["./typechain-types"], - "compilerOptions": { - "lib": ["esnext"], - "target": "es6", - "module": "commonjs", - "strict": true, - "esModuleInterop": true, - "resolveJsonModule": true, - "isolatedModules": true - }, -} diff --git a/packages/contracts/typechain-types/Prompty.js b/packages/contracts/typechain-types/Prompty.js deleted file mode 100644 index c8ad2e5..0000000 --- a/packages/contracts/typechain-types/Prompty.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/contracts/typechain-types/Prompty.ts b/packages/contracts/typechain-types/Prompty.ts deleted file mode 100644 index 9c7ca2c..0000000 --- a/packages/contracts/typechain-types/Prompty.ts +++ /dev/null @@ -1,272 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface PromptyInterface extends utils.Interface { - functions: { - "create(string,uint256,uint128,uint128)": FunctionFragment; - "currentPromptId()": FunctionFragment; - "prompts(uint256)": FunctionFragment; - "respond(uint256,string)": FunctionFragment; - }; - - encodeFunctionData( - functionFragment: "create", - values: [string, BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "currentPromptId", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "prompts", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "respond", - values: [BigNumberish, string] - ): string; - - decodeFunctionResult(functionFragment: "create", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "currentPromptId", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "prompts", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "respond", data: BytesLike): Result; - - events: { - "PromptCreated(uint256,address,string,uint256,uint256,uint128,uint128)": EventFragment; - "PromptResponse(uint256,address,string)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "PromptCreated"): EventFragment; - getEvent(nameOrSignatureOrTopic: "PromptResponse"): EventFragment; -} - -export type PromptCreatedEvent = TypedEvent< - [BigNumber, string, string, BigNumber, BigNumber, BigNumber, BigNumber], - { - promptId: BigNumber; - creator: string; - prompt: string; - startTime: BigNumber; - endTime: BigNumber; - minChars: BigNumber; - maxChars: BigNumber; - } ->; - -export type PromptCreatedEventFilter = TypedEventFilter; - -export type PromptResponseEvent = TypedEvent< - [BigNumber, string, string], - { promptId: BigNumber; responder: string; response: string } ->; - -export type PromptResponseEventFilter = TypedEventFilter; - -export interface Prompty extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: PromptyInterface; - - 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: { - create( - prompt: string, - endTime: BigNumberish, - minChars: BigNumberish, - maxChars: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - currentPromptId(overrides?: CallOverrides): Promise<[BigNumber]>; - - prompts( - arg0: BigNumberish, - overrides?: CallOverrides - ): Promise< - [BigNumber, BigNumber, BigNumber, BigNumber] & { - startTime: BigNumber; - endTime: BigNumber; - minChars: BigNumber; - maxChars: BigNumber; - } - >; - - respond( - promptId: BigNumberish, - response: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - create( - prompt: string, - endTime: BigNumberish, - minChars: BigNumberish, - maxChars: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - currentPromptId(overrides?: CallOverrides): Promise; - - prompts( - arg0: BigNumberish, - overrides?: CallOverrides - ): Promise< - [BigNumber, BigNumber, BigNumber, BigNumber] & { - startTime: BigNumber; - endTime: BigNumber; - minChars: BigNumber; - maxChars: BigNumber; - } - >; - - respond( - promptId: BigNumberish, - response: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - callStatic: { - create( - prompt: string, - endTime: BigNumberish, - minChars: BigNumberish, - maxChars: BigNumberish, - overrides?: CallOverrides - ): Promise; - - currentPromptId(overrides?: CallOverrides): Promise; - - prompts( - arg0: BigNumberish, - overrides?: CallOverrides - ): Promise< - [BigNumber, BigNumber, BigNumber, BigNumber] & { - startTime: BigNumber; - endTime: BigNumber; - minChars: BigNumber; - maxChars: BigNumber; - } - >; - - respond( - promptId: BigNumberish, - response: string, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "PromptCreated(uint256,address,string,uint256,uint256,uint128,uint128)"( - promptId?: null, - creator?: null, - prompt?: null, - startTime?: null, - endTime?: null, - minChars?: null, - maxChars?: null - ): PromptCreatedEventFilter; - PromptCreated( - promptId?: null, - creator?: null, - prompt?: null, - startTime?: null, - endTime?: null, - minChars?: null, - maxChars?: null - ): PromptCreatedEventFilter; - - "PromptResponse(uint256,address,string)"( - promptId?: null, - responder?: null, - response?: null - ): PromptResponseEventFilter; - PromptResponse( - promptId?: null, - responder?: null, - response?: null - ): PromptResponseEventFilter; - }; - - estimateGas: { - create( - prompt: string, - endTime: BigNumberish, - minChars: BigNumberish, - maxChars: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - currentPromptId(overrides?: CallOverrides): Promise; - - prompts(arg0: BigNumberish, overrides?: CallOverrides): Promise; - - respond( - promptId: BigNumberish, - response: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - populateTransaction: { - create( - prompt: string, - endTime: BigNumberish, - minChars: BigNumberish, - maxChars: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - currentPromptId(overrides?: CallOverrides): Promise; - - prompts( - arg0: BigNumberish, - overrides?: CallOverrides - ): Promise; - - respond( - promptId: BigNumberish, - response: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; -} diff --git a/packages/contracts/typechain-types/common.js b/packages/contracts/typechain-types/common.js deleted file mode 100644 index c8ad2e5..0000000 --- a/packages/contracts/typechain-types/common.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/packages/contracts/typechain-types/common.ts b/packages/contracts/typechain-types/common.ts deleted file mode 100644 index 2fc40c7..0000000 --- a/packages/contracts/typechain-types/common.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { Listener } from "@ethersproject/providers"; -import type { Event, EventFilter } from "ethers"; - -export interface TypedEvent< - TArgsArray extends Array = any, - TArgsObject = any -> extends Event { - args: TArgsArray & TArgsObject; -} - -export interface TypedEventFilter<_TEvent extends TypedEvent> - extends EventFilter {} - -export interface TypedListener { - (...listenerArg: [...__TypechainArgsArray, TEvent]): void; -} - -type __TypechainArgsArray = T extends TypedEvent ? U : never; - -export interface OnEvent { - ( - eventFilter: TypedEventFilter, - listener: TypedListener - ): TRes; - (eventName: string, listener: Listener): TRes; -} - -export type MinEthersFactory = { - deploy(...a: ARGS[]): Promise; -}; - -export type GetContractTypeFromFactory = F extends MinEthersFactory< - infer C, - any -> - ? C - : never; - -export type GetARGsTypeFromFactory = F extends MinEthersFactory - ? Parameters - : never; diff --git a/packages/contracts/typechain-types/factories/Prompty__factory.js b/packages/contracts/typechain-types/factories/Prompty__factory.js deleted file mode 100644 index 268507b..0000000 --- a/packages/contracts/typechain-types/factories/Prompty__factory.js +++ /dev/null @@ -1,244 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Prompty__factory = void 0; -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -const ethers_1 = require("ethers"); -const _abi = [ - { - inputs: [], - name: "AlreadyResponded", - type: "error", - }, - { - inputs: [], - name: "InvalidPrompt", - type: "error", - }, - { - inputs: [], - name: "InvalidPromptID", - type: "error", - }, - { - inputs: [], - name: "InvalidPromptParams", - type: "error", - }, - { - inputs: [], - name: "PromptExpired", - type: "error", - }, - { - inputs: [], - name: "ResponseTooLong", - type: "error", - }, - { - inputs: [], - name: "ResponseTooShort", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "promptId", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "creator", - type: "address", - }, - { - indexed: false, - internalType: "string", - name: "prompt", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "startTime", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "endTime", - type: "uint256", - }, - { - indexed: false, - internalType: "uint128", - name: "minChars", - type: "uint128", - }, - { - indexed: false, - internalType: "uint128", - name: "maxChars", - type: "uint128", - }, - ], - name: "PromptCreated", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "promptId", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "responder", - type: "address", - }, - { - indexed: false, - internalType: "string", - name: "response", - type: "string", - }, - ], - name: "PromptResponse", - type: "event", - }, - { - inputs: [ - { - internalType: "string", - name: "prompt", - type: "string", - }, - { - internalType: "uint256", - name: "endTime", - type: "uint256", - }, - { - internalType: "uint128", - name: "minChars", - type: "uint128", - }, - { - internalType: "uint128", - name: "maxChars", - type: "uint128", - }, - ], - name: "create", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "currentPromptId", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "prompts", - outputs: [ - { - internalType: "uint256", - name: "startTime", - type: "uint256", - }, - { - internalType: "uint256", - name: "endTime", - type: "uint256", - }, - { - internalType: "uint128", - name: "minChars", - type: "uint128", - }, - { - internalType: "uint128", - name: "maxChars", - type: "uint128", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "promptId", - type: "uint256", - }, - { - internalType: "string", - name: "response", - type: "string", - }, - ], - name: "respond", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -]; -const _bytecode = "0x60806040526000805534801561001457600080fd5b5061072b806100246000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806317e7d99d14610051578063bfa810db1461006d578063d4cf9af714610082578063d8fcb578146100f3575b600080fd5b61005a60005481565b6040519081526020015b60405180910390f35b61008061007b366004610518565b610106565b005b6100c4610090366004610580565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b0391821692840192909252166060820152608001610064565b610080610101366004610599565b61025c565b835161013e576040517f8bbe2dc600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561017157604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161019b57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b0316106101c657604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517fab7be343fe9a457e76003123d1df41b4e3c19e374de088eb3805db5a4432f35292610236929133918a918a908a908a9061062d565b60405180910390a160016000808282546102509190610691565b90915550505050505050565b6000548210610297576040517fbad818f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260016020819052604090912001544211156102e3576040517fbf75c95800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff161561033a576040517f4a3574d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b039091161115610391576040517f4a8105ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b031610156103ee576040517f4e0f0f3600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e58809161044d9185919085906106b7565b60405180910390a15050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261048057600080fd5b813567ffffffffffffffff8082111561049b5761049b610459565b604051601f8301601f19908116603f011681019082821181831017156104c3576104c3610459565b816040528381528660208588010111156104dc57600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160801b038116811461051357600080fd5b919050565b6000806000806080858703121561052e57600080fd5b843567ffffffffffffffff81111561054557600080fd5b6105518782880161046f565b94505060208501359250610567604086016104fc565b9150610575606086016104fc565b905092959194509250565b60006020828403121561059257600080fd5b5035919050565b600080604083850312156105ac57600080fd5b82359150602083013567ffffffffffffffff8111156105ca57600080fd5b6105d68582860161046f565b9150509250929050565b6000815180845260005b81811015610606576020818501810151868301820152016105ea565b81811115610618576000602083870101525b50601f01601f19169290920160200192915050565b87815273ffffffffffffffffffffffffffffffffffffffff8716602082015260e06040820152600061066260e08301886105e0565b60608301969096525060808101939093526001600160801b0391821660a08401521660c0909101529392505050565b600082198211156106b257634e487b7160e01b600052601160045260246000fd5b500190565b83815273ffffffffffffffffffffffffffffffffffffffff831660208201526060604082015260006106ec60608301846105e0565b9594505050505056fea2646970667358221220264c817d05ce523886af884cca11b5a3fda57aeaa8aa06366ea43e66514a346064736f6c63430008090033"; -const isSuperArgs = (xs) => xs.length > 1; -class Prompty__factory extends ethers_1.ContractFactory { - constructor(...args) { - if (isSuperArgs(args)) { - super(...args); - } - else { - super(_abi, _bytecode, args[0]); - } - } - deploy(overrides) { - return super.deploy(overrides || {}); - } - getDeployTransaction(overrides) { - return super.getDeployTransaction(overrides || {}); - } - attach(address) { - return super.attach(address); - } - connect(signer) { - return super.connect(signer); - } - static createInterface() { - return new ethers_1.utils.Interface(_abi); - } - static connect(address, signerOrProvider) { - return new ethers_1.Contract(address, _abi, signerOrProvider); - } -} -exports.Prompty__factory = Prompty__factory; -Prompty__factory.bytecode = _bytecode; -Prompty__factory.abi = _abi; diff --git a/packages/contracts/typechain-types/factories/Prompty__factory.ts b/packages/contracts/typechain-types/factories/Prompty__factory.ts deleted file mode 100644 index e885cec..0000000 --- a/packages/contracts/typechain-types/factories/Prompty__factory.ts +++ /dev/null @@ -1,260 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { Prompty, PromptyInterface } from "../Prompty"; - -const _abi = [ - { - inputs: [], - name: "AlreadyResponded", - type: "error", - }, - { - inputs: [], - name: "InvalidPrompt", - type: "error", - }, - { - inputs: [], - name: "InvalidPromptID", - type: "error", - }, - { - inputs: [], - name: "InvalidPromptParams", - type: "error", - }, - { - inputs: [], - name: "PromptExpired", - type: "error", - }, - { - inputs: [], - name: "ResponseTooLong", - type: "error", - }, - { - inputs: [], - name: "ResponseTooShort", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "promptId", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "creator", - type: "address", - }, - { - indexed: false, - internalType: "string", - name: "prompt", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "startTime", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "endTime", - type: "uint256", - }, - { - indexed: false, - internalType: "uint128", - name: "minChars", - type: "uint128", - }, - { - indexed: false, - internalType: "uint128", - name: "maxChars", - type: "uint128", - }, - ], - name: "PromptCreated", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "promptId", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "responder", - type: "address", - }, - { - indexed: false, - internalType: "string", - name: "response", - type: "string", - }, - ], - name: "PromptResponse", - type: "event", - }, - { - inputs: [ - { - internalType: "string", - name: "prompt", - type: "string", - }, - { - internalType: "uint256", - name: "endTime", - type: "uint256", - }, - { - internalType: "uint128", - name: "minChars", - type: "uint128", - }, - { - internalType: "uint128", - name: "maxChars", - type: "uint128", - }, - ], - name: "create", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "currentPromptId", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "prompts", - outputs: [ - { - internalType: "uint256", - name: "startTime", - type: "uint256", - }, - { - internalType: "uint256", - name: "endTime", - type: "uint256", - }, - { - internalType: "uint128", - name: "minChars", - type: "uint128", - }, - { - internalType: "uint128", - name: "maxChars", - type: "uint128", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "promptId", - type: "uint256", - }, - { - internalType: "string", - name: "response", - type: "string", - }, - ], - name: "respond", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -]; - -const _bytecode = - "0x60806040526000805534801561001457600080fd5b5061072b806100246000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806317e7d99d14610051578063bfa810db1461006d578063d4cf9af714610082578063d8fcb578146100f3575b600080fd5b61005a60005481565b6040519081526020015b60405180910390f35b61008061007b366004610518565b610106565b005b6100c4610090366004610580565b60016020819052600091825260409091208054918101546002909101546001600160801b0380821691600160801b90041684565b6040805194855260208501939093526001600160801b0391821692840192909252166060820152608001610064565b610080610101366004610599565b61025c565b835161013e576040517f8bbe2dc600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806001600160801b0316826001600160801b0316111561017157604051633e740fb360e21b815260040160405180910390fd5b6000826001600160801b03161161019b57604051633e740fb360e21b815260040160405180910390fd5b611000816001600160801b0316106101c657604051633e740fb360e21b815260040160405180910390fd5b600080548152600160208190526040808320428082559281018790556001600160801b03858116600160801b02908716176002820155925490517fab7be343fe9a457e76003123d1df41b4e3c19e374de088eb3805db5a4432f35292610236929133918a918a908a908a9061062d565b60405180910390a160016000808282546102509190610691565b90915550505050505050565b6000548210610297576040517fbad818f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260016020819052604090912001544211156102e3576040517fbf75c95800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260016020908152604080832033845260030190915290205460ff161561033a576040517f4a3574d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526001602052604090206002015481516001600160801b039091161115610391576040517f4a8105ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152600160205260409020600201548151600160801b9091046001600160801b031610156103ee576040517f4e0f0f3600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260016020818152604080842033808652600390910190925292839020805460ff191690921790915590517fbe9cb8e0cb97f7a26dfb1157ad83fd3c704ba622bb3b160671cc89dca52e58809161044d9185919085906106b7565b60405180910390a15050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261048057600080fd5b813567ffffffffffffffff8082111561049b5761049b610459565b604051601f8301601f19908116603f011681019082821181831017156104c3576104c3610459565b816040528381528660208588010111156104dc57600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160801b038116811461051357600080fd5b919050565b6000806000806080858703121561052e57600080fd5b843567ffffffffffffffff81111561054557600080fd5b6105518782880161046f565b94505060208501359250610567604086016104fc565b9150610575606086016104fc565b905092959194509250565b60006020828403121561059257600080fd5b5035919050565b600080604083850312156105ac57600080fd5b82359150602083013567ffffffffffffffff8111156105ca57600080fd5b6105d68582860161046f565b9150509250929050565b6000815180845260005b81811015610606576020818501810151868301820152016105ea565b81811115610618576000602083870101525b50601f01601f19169290920160200192915050565b87815273ffffffffffffffffffffffffffffffffffffffff8716602082015260e06040820152600061066260e08301886105e0565b60608301969096525060808101939093526001600160801b0391821660a08401521660c0909101529392505050565b600082198211156106b257634e487b7160e01b600052601160045260246000fd5b500190565b83815273ffffffffffffffffffffffffffffffffffffffff831660208201526060604082015260006106ec60608301846105e0565b9594505050505056fea2646970667358221220264c817d05ce523886af884cca11b5a3fda57aeaa8aa06366ea43e66514a346064736f6c63430008090033"; - -type PromptyConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: PromptyConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Prompty__factory extends ContractFactory { - constructor(...args: PromptyConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - deploy( - overrides?: Overrides & { from?: string | Promise } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - getDeployTransaction( - overrides?: Overrides & { from?: string | Promise } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - attach(address: string): Prompty { - return super.attach(address) as Prompty; - } - connect(signer: Signer): Prompty__factory { - return super.connect(signer) as Prompty__factory; - } - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): PromptyInterface { - return new utils.Interface(_abi) as PromptyInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): Prompty { - return new Contract(address, _abi, signerOrProvider) as Prompty; - } -} diff --git a/packages/contracts/typechain-types/hardhat.d.ts b/packages/contracts/typechain-types/hardhat.d.ts deleted file mode 100644 index ada2b81..0000000 --- a/packages/contracts/typechain-types/hardhat.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { ethers } from "ethers"; -import { - FactoryOptions, - HardhatEthersHelpers as HardhatEthersHelpersBase, -} from "@nomiclabs/hardhat-ethers/types"; - -import * as Contracts from "."; - -declare module "hardhat/types/runtime" { - interface HardhatEthersHelpers extends HardhatEthersHelpersBase { - getContractFactory( - name: "Prompty", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - - getContractAt( - name: "Prompty", - address: string, - signer?: ethers.Signer - ): Promise; - - // default types - getContractFactory( - name: string, - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - abi: any[], - bytecode: ethers.utils.BytesLike, - signer?: ethers.Signer - ): Promise; - getContractAt( - nameOrAbi: string | any[], - address: string, - signer?: ethers.Signer - ): Promise; - } -} diff --git a/packages/contracts/typechain-types/index.js b/packages/contracts/typechain-types/index.js deleted file mode 100644 index 9df5347..0000000 --- a/packages/contracts/typechain-types/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Prompty__factory = void 0; -var Prompty__factory_1 = require("./factories/Prompty__factory"); -Object.defineProperty(exports, "Prompty__factory", { enumerable: true, get: function () { return Prompty__factory_1.Prompty__factory; } }); diff --git a/packages/contracts/typechain-types/index.ts b/packages/contracts/typechain-types/index.ts deleted file mode 100644 index c13d242..0000000 --- a/packages/contracts/typechain-types/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { Prompty } from "./Prompty"; - -export { Prompty__factory } from "./factories/Prompty__factory"; diff --git a/packages/subgraph/abis/Prompty.json b/packages/subgraph/abis/Prompty.json index 01e5861..7df74cd 100644 --- a/packages/subgraph/abis/Prompty.json +++ b/packages/subgraph/abis/Prompty.json @@ -53,11 +53,54 @@ "internalType": "string", "name": "name", "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isVisible", + "type": "bool" } ], "name": "InstanceCreated", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isVisible", + "type": "bool" + } + ], + "name": "InstanceUpdated", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -165,12 +208,12 @@ "type": "uint256" }, { - "internalType": "address", - "name": "responder", - "type": "address" + "internalType": "address[]", + "name": "allowedResponders", + "type": "address[]" } ], - "name": "addResponder", + "name": "addResponders", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -186,6 +229,16 @@ "internalType": "string", "name": "name", "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "internalType": "bool", + "name": "isVisible", + "type": "bool" } ], "name": "createInstance", @@ -258,6 +311,16 @@ "internalType": "string", "name": "name", "type": "string" + }, + { + "internalType": "bool", + "name": "isVisible", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" } ], "stateMutability": "view", @@ -299,6 +362,11 @@ }, { "inputs": [ + { + "internalType": "uint256", + "name": "instanceId", + "type": "uint256" + }, { "internalType": "uint256", "name": "promptId", @@ -314,5 +382,41 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "instanceId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "updateDescription", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "instanceId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isVisible", + "type": "bool" + } + ], + "name": "updateVisibility", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" } ] diff --git a/packages/subgraph/schema.graphql b/packages/subgraph/schema.graphql index ecbb6d0..593280c 100644 --- a/packages/subgraph/schema.graphql +++ b/packages/subgraph/schema.graphql @@ -1,7 +1,9 @@ type PromptyInstance @entity { id: ID! name: String! + description: String! allowedResponders: [Wallet!] + visible: Boolean! prompts: [Prompt!]! @derivedFrom(field: "instance") } diff --git a/packages/subgraph/src/mapping.ts b/packages/subgraph/src/mapping.ts index 1b7ea6b..0fc872a 100644 --- a/packages/subgraph/src/mapping.ts +++ b/packages/subgraph/src/mapping.ts @@ -1,5 +1,6 @@ import { InstanceCreated, + InstanceUpdated, PromptCreated, PromptResponse, Prompty, @@ -13,6 +14,18 @@ export function handleInstanceCreated(event: InstanceCreated): void { instance.name = event.params.name; instance.allowedResponders = []; + instance.description = event.params.description; + instance.visible = event.params.isVisible; + + instance.save(); +} + +export function handleInstanceUpdated(event: InstanceUpdated): void { + const instance = PromptyInstance.load(event.params.id.toString())!; + + instance.name = event.params.name; + instance.description = event.params.description; + instance.visible = event.params.isVisible; instance.save(); } diff --git a/packages/subgraph/subgraph-matic.yaml b/packages/subgraph/subgraph-matic.yaml index 12d4736..7eec4fd 100644 --- a/packages/subgraph/subgraph-matic.yaml +++ b/packages/subgraph/subgraph-matic.yaml @@ -25,6 +25,8 @@ dataSources: handler: handlePromptResponse - event: ResponderAdded(uint256,address) handler: handleResponderAdded - - event: InstanceCreated(uint256,string) + - event: InstanceCreated(uint256,string,string,bool) handler: handleInstanceCreated + - event: InstanceUpdated(uint256,string,string,bool) + handler: handleInstanceUpdated file: ./src/mapping.ts diff --git a/packages/subgraph/subgraph-mumbai.yaml b/packages/subgraph/subgraph-mumbai.yaml index 32d8df5..7b6fe73 100644 --- a/packages/subgraph/subgraph-mumbai.yaml +++ b/packages/subgraph/subgraph-mumbai.yaml @@ -7,7 +7,7 @@ dataSources: network: mumbai source: abi: Prompty - address: "0xAD8e2B2684ab04f66ac526Db8bfb9f68a231d996" + address: "0x6b24fbc6ac225508aba6899cfe844f5d229deaae" startBlock: 27345637 mapping: kind: ethereum/events @@ -25,6 +25,8 @@ dataSources: handler: handlePromptResponse - event: ResponderAdded(uint256,address) handler: handleResponderAdded - - event: InstanceCreated(uint256,string) + - event: InstanceCreated(uint256,string,string,bool) handler: handleInstanceCreated + - event: InstanceUpdated(uint256,string,string,bool) + handler: handleInstanceUpdated file: ./src/mapping.ts diff --git a/packages/subgraph/subgraph-rinkeby.yaml b/packages/subgraph/subgraph-rinkeby.yaml index cb91e53..e37bfd7 100644 --- a/packages/subgraph/subgraph-rinkeby.yaml +++ b/packages/subgraph/subgraph-rinkeby.yaml @@ -25,6 +25,8 @@ dataSources: handler: handlePromptResponse - event: ResponderAdded(uint256,address); handler: handleResponderAdded - - event: InstanceCreated(uint256,string); + - event: InstanceCreated(uint256,string,string,bool) handler: handleInstanceCreated + - event: InstanceUpdated(uint256,string,string,bool) + handler: handleInstanceUpdated file: ./src/mapping.ts