From 54fd60980884d136269f5f3bb24515cf607c5479 Mon Sep 17 00:00:00 2001 From: peetzweg/ Date: Fri, 23 Feb 2024 18:20:41 +0100 Subject: [PATCH] adds testcases for decoding payload data of a ink!v4 and ink!v5 event --- packages/api-contract/src/Abi/Abi.spec.ts | 66 ++ packages/api-contract/src/Abi/index.ts | 38 +- .../api-contract/src/Abi/toLatest.spec.ts | 16 +- .../compare/ink_v4_erc20Contract.test.json | 253 ++++ .../compare/ink_v4_erc20Metadata.test.json | 253 ++++ .../compare/ink_v5_erc20Contract.test.json | 370 ++++++ .../compare/ink_v5_erc20Metadata.test.json | 370 ++++++ .../test/contracts/ink/v4/erc20.contract.json | 1 + .../src/test/contracts/ink/v4/erc20.json | 821 +++++++++++++ .../src/test/contracts/ink/v4/erc20.wasm | Bin 0 -> 21078 bytes .../src/test/contracts/ink/v4/index.ts | 2 + .../test/contracts/ink/v5/erc20.contract.json | 1027 +---------------- .../src/test/contracts/ink/v5/erc20.json | 1024 ++++++++++++++++ .../src/test/contracts/ink/v5/erc20.wasm | Bin 0 -> 21581 bytes .../contracts/ink/v5/flipper.contract.json | 2 +- .../src/test/contracts/ink/v5/flipper.json | 4 +- .../src/test/contracts/ink/v5/index.ts | 3 +- packages/api-contract/src/types.ts | 3 +- 18 files changed, 3204 insertions(+), 1049 deletions(-) create mode 100644 packages/api-contract/src/test/compare/ink_v4_erc20Contract.test.json create mode 100644 packages/api-contract/src/test/compare/ink_v4_erc20Metadata.test.json create mode 100644 packages/api-contract/src/test/compare/ink_v5_erc20Contract.test.json create mode 100644 packages/api-contract/src/test/compare/ink_v5_erc20Metadata.test.json create mode 100644 packages/api-contract/src/test/contracts/ink/v4/erc20.contract.json create mode 100644 packages/api-contract/src/test/contracts/ink/v4/erc20.json create mode 100644 packages/api-contract/src/test/contracts/ink/v4/erc20.wasm create mode 100644 packages/api-contract/src/test/contracts/ink/v5/erc20.json create mode 100644 packages/api-contract/src/test/contracts/ink/v5/erc20.wasm diff --git a/packages/api-contract/src/Abi/Abi.spec.ts b/packages/api-contract/src/Abi/Abi.spec.ts index 41a58c669c23..62cc1d505db2 100644 --- a/packages/api-contract/src/Abi/Abi.spec.ts +++ b/packages/api-contract/src/Abi/Abi.spec.ts @@ -9,6 +9,7 @@ import fs from 'node:fs'; import process from 'node:process'; import { TypeDefInfo } from '@polkadot/types/types'; +import { hexToU8a } from '@polkadot/util'; import { blake2AsHex } from '@polkadot/util-crypto'; import abis from '../test/contracts/index.js'; @@ -122,4 +123,69 @@ describe('Abi', (): void => { // the hash as per the actual Abi expect(bundle.source.hash).toEqual(abi.info.source.wasmHash.toHex()); }); + + it('decoding <=ink!v4 events', (): void => { + const abi = new Abi(abis['ink_v4_erc20Metadata']); + + const dataHex = '0x0001d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb10600000000000000'; + const dataU8A = hexToU8a(dataHex); + + const decodedEvent = abi.decodeEvent(dataU8A); + + expect(decodedEvent.event.args.length).toEqual(3); + expect(decodedEvent.args.length).toEqual(3); + expect(decodedEvent.event.identifier).toEqual('Transfer'); + + const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { + return { + ...prev, + [cur.name]: decodedEvent.args[index].toHuman() + }; + }, {}); + + const expectedEvent = { + from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', + to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', + value: '123.4567 MUnit' + }; + + expect(decodedEventHuman).toEqual(expectedEvent); + }); + + it('decoding <=ink!v5 events', (): void => { + const metadataJson = abis['ink_v5_erc20Metadata']; + + expect(metadataJson).toBeDefined(); + const abi = new Abi(metadataJson); + + const dataHex = '0x01d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb10600000000000000'; + const dataU8A = hexToU8a(dataHex); + + const signatureTopicHex = '0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb'; + + expect(abi.events.length).toEqual(2); + expect(abi.events[0].signatureTopic).toEqual(signatureTopicHex); + + const signatureTopicHash = abi.registry.createType('Hash', signatureTopicHex); + const decodedEvent = abi.decodeEvent(dataU8A, signatureTopicHash); + + expect(decodedEvent.event.args.length).toEqual(3); + expect(decodedEvent.args.length).toEqual(3); + expect(decodedEvent.event.identifier).toEqual('erc20::erc20::Transfer'); + + const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { + return { + ...prev, + [cur.name]: decodedEvent.args[index].toHuman() + }; + }, {}); + + const expectedEvent = { + from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', + to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', + value: '123.4567 MUnit' + }; + + expect(decodedEventHuman).toEqual(expectedEvent); + }); }); diff --git a/packages/api-contract/src/Abi/index.ts b/packages/api-contract/src/Abi/index.ts index dae29ebf7675..9e99e4125e9f 100644 --- a/packages/api-contract/src/Abi/index.ts +++ b/packages/api-contract/src/Abi/index.ts @@ -2,14 +2,15 @@ // SPDX-License-Identifier: Apache-2.0 import type { Bytes } from '@polkadot/types'; -import { Option, TypeRegistry } from '@polkadot/types'; -import { TypeDefInfo } from '@polkadot/types-create'; import type { ChainProperties, ContractConstructorSpecLatest, ContractEventSpecLatest, ContractMessageParamSpecLatest, ContractMessageSpecLatest, ContractMetadata, ContractMetadataLatest, ContractProjectInfo, ContractTypeSpec } from '@polkadot/types/interfaces'; import type { Hash } from '@polkadot/types/interfaces/runtime'; import type { Codec, Registry, TypeDef } from '@polkadot/types/types'; -import { assertReturn, compactAddLength, compactStripLength, isBn, isNumber, isObject, isString, isUndefined, logger, stringCamelCase, stringify, u8aConcat, u8aToHex } from '@polkadot/util'; import type { AbiConstructor, AbiEvent, AbiMessage, AbiParam, DecodedEvent, DecodedMessage } from '../types.js'; +import { Option, TypeRegistry } from '@polkadot/types'; +import { TypeDefInfo } from '@polkadot/types-create'; +import { assertReturn, compactAddLength, compactStripLength, isBn, isNumber, isObject, isString, isUndefined, logger, stringCamelCase, stringify, u8aConcat, u8aToHex } from '@polkadot/util'; + import { convertVersions, enumVersions } from './toLatest.js'; interface AbiJson { @@ -162,24 +163,27 @@ export class Abi { /** * Warning: Unstable API, bound to change */ - public decodeEvent (data: Bytes | Uint8Array, signatureTopic: Hash): DecodedEvent { - // try to find a topic signature match - ink! v5 upwards - let event = this.events.find((e) => e.signatureTopic === signatureTopic.toHex()); - - if (event) { - return event.fromU8a(data.subarray(0)); - } + public decodeEvent (data: Bytes | Uint8Array, signatureTopic?: Hash): DecodedEvent { + if (signatureTopic !== undefined) { + const event = this.events.find((e) => e.signatureTopic !== undefined && e.signatureTopic === signatureTopic.toHex()); + if (event) { + return event.fromU8a(data.subarray(0)); + } else { + throw new Error(`Unable to find event with signature_topic ${signatureTopic.toHex()}`); + } + } else { // otherwise fallback to using the index to determine event - ink! v4 downwards - const index = data[0]; + const index = data[0]; - event = this.events[index]; + const event = this.events[index]; - if (!event) { - throw new Error(`Unable to find event with index ${index}`); - } + if (!event) { + throw new Error(`Unable to find event with index ${index}`); + } - return event.fromU8a(data.subarray(1)); + return event.fromU8a(data.subarray(1)); + } } /** @@ -252,7 +256,7 @@ export class Abi { args: this.#decodeArgs(args, data), event }), - identifier: [spec.module_path, spec.label.toString()].join('::'), + identifier: [spec.module_path, spec.label].filter((t) => !t.isEmpty).join('::'), index, signatureTopic: spec.signature_topic.toHex() || undefined }; diff --git a/packages/api-contract/src/Abi/toLatest.spec.ts b/packages/api-contract/src/Abi/toLatest.spec.ts index b69a50c7689a..c7d4105bc320 100644 --- a/packages/api-contract/src/Abi/toLatest.spec.ts +++ b/packages/api-contract/src/Abi/toLatest.spec.ts @@ -140,16 +140,30 @@ describe('v4ToLatest', (): void => { describe('v5ToLatest', (): void => { const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V5: abis['ink_v5_erc20'] }); + const contract = registry.createType('ContractMetadata', { V5: abis['ink_v5_erc20Metadata'] }); const latest = v5ToLatest(registry, contract.asV5); + it('has the correct messages', (): void => { + expect( + latest.spec.messages.map(({ label }) => label.toString()) + ).toEqual(['total_supply', 'balance_of', 'allowance', 'transfer', 'approve', 'transfer_from']); + }); + it('has new event fields', (): void => { + expect( + latest.spec.events.length + ).toEqual(2); + expect( latest.spec.events.every((e) => e.has('module_path')) ).toEqual(true); + expect(latest.spec.events[0].module_path.toString()).toEqual('erc20::erc20'); + expect( latest.spec.events.every((e) => e.has('signature_topic')) ).toEqual(true); + + expect(latest.spec.events[0].signature_topic.toHex()).toEqual('0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb'); }); }); diff --git a/packages/api-contract/src/test/compare/ink_v4_erc20Contract.test.json b/packages/api-contract/src/test/compare/ink_v4_erc20Contract.test.json new file mode 100644 index 000000000000..db8cc7b0c7d5 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v4_erc20Contract.test.json @@ -0,0 +1,253 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 1, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 4, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 8, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 9, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Result", + "lookupIndex": 9, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 11, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 13, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 14, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 15, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v4_erc20Metadata.test.json b/packages/api-contract/src/test/compare/ink_v4_erc20Metadata.test.json new file mode 100644 index 000000000000..db8cc7b0c7d5 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v4_erc20Metadata.test.json @@ -0,0 +1,253 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 1, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 4, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 8, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 9, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Result", + "lookupIndex": 9, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 11, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 13, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 14, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 15, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v5_erc20Contract.test.json b/packages/api-contract/src/test/compare/ink_v5_erc20Contract.test.json new file mode 100644 index 000000000000..c8d5fe3675ec --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v5_erc20Contract.test.json @@ -0,0 +1,370 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 5, + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 6, + "lookupName": "InkStorageTraitsImplsAutoKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::AutoKey" + }, + { + "info": "Null", + "lookupIndex": 7, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Tuple", + "lookupIndex": 10, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + ] + }, + { + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageTraitsImplsResolverKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 12, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Struct", + "lookupIndex": 13, + "lookupName": "Erc20", + "type": "{\"totalSupply\":\"u128\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", + "docs": [], + "namespace": "erc20::erc20::Erc20", + "sub": [ + { + "docs": [], + "name": "totalSupply", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "namespace": "", + "typeName": "" + }, + { + "docs": [], + "name": "balances", + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + }, + { + "docs": [], + "name": "allowances", + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 14, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 17, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 20, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 21, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 22, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 23, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 24, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v5_erc20Metadata.test.json b/packages/api-contract/src/test/compare/ink_v5_erc20Metadata.test.json new file mode 100644 index 000000000000..c8d5fe3675ec --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v5_erc20Metadata.test.json @@ -0,0 +1,370 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 5, + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 6, + "lookupName": "InkStorageTraitsImplsAutoKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::AutoKey" + }, + { + "info": "Null", + "lookupIndex": 7, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Tuple", + "lookupIndex": 10, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + ] + }, + { + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageTraitsImplsResolverKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 12, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Struct", + "lookupIndex": 13, + "lookupName": "Erc20", + "type": "{\"totalSupply\":\"u128\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", + "docs": [], + "namespace": "erc20::erc20::Erc20", + "sub": [ + { + "docs": [], + "name": "totalSupply", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "namespace": "", + "typeName": "" + }, + { + "docs": [], + "name": "balances", + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + }, + { + "docs": [], + "name": "allowances", + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 14, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 17, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 20, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 21, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 22, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 23, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 24, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v4/erc20.contract.json b/packages/api-contract/src/test/contracts/ink/v4/erc20.contract.json new file mode 100644 index 000000000000..b8c817049c77 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v4/erc20.contract.json @@ -0,0 +1 @@ +{"source":{"hash":"0x114f55289bcdfd0d28e0bbd1c63452b4e45901a022b1011d298fa2eb12d1711d","language":"ink! 4.3.0","compiler":"rustc 1.75.0","wasm":"0x0061736d0100000001601060037f7f7f017f60027f7f0060027f7f017f60037f7f7f0060017f0060047f7f7f7f0060047f7f7f7f017f60057f7f7f7f7f0060000060017f017f60027e7e0060047f7f7e7e0060037e7e7f0060037f7e7e006000017f60047f7f7e7e017f02c7010a057365616c310b6765745f73746f726167650006057365616c301176616c75655f7472616e736665727265640001057365616c3005696e7075740001057365616c300663616c6c65720001057365616c300d64656275675f6d6573736167650002057365616c300f686173685f626c616b65325f3235360003057365616c300d6465706f7369745f6576656e740005057365616c320b7365745f73746f726167650006057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100351500007030b0101030c0d0101030305030101070401010001010304070e03010409030201020004030108010a0a0104080f0408030501040801090200000202020204010202070605060105020203050205040501700110100608017f01418080040b0711020463616c6c0037066465706c6f79003a0915010041010b0f54532c2a465748272747274445424a0ad37d502b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b2200200120034d044020002001360204200020023602000f0b200120032004100b000b0e0020002001200241cc960410580bbb0102037f017e230041306b2204240020044100360220200442808001370228200441d0a30436022441b7c380e57e200441246a2205100d20002005100e20012005100e20042004290224370218200441106a200441186a2206200428022c100f2004280214210020042802102101200429021821072004410036022c20042007370224200220032005101020042004290224370218200441086a2006200428022c100f200120002004280208200428020c10071a200441306a24000b2601017f230041106b220224002002200036020c20012002410c6a41041021200241106a24000b0a0020012000412010210b4501017f2002200128020422034b0440419ca00441234194a2041017000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b2a01017f230041106b2203240020032001370308200320003703002002200341101021200341106a24000bb50102047f017e230041306b2203240020034100360220200342808001370228200341d0a30436022441e7b98fb102200341246a2204100d20002004100e20032003290224370218200341106a200341186a2205200328022c100f2003280214210020032802102106200329021821072003410036022c20032007370224200120022004101020032003290224370218200341086a2005200328022c100f200620002003280208200328020c10071a200341306a24000bd10102037f017e230041d0006b22022400200241186a220420001013200229021821052002410036022c2002200537022420012802002001280204200241246a2203101420012802082003100e20022002290224370218200241106a2004200228022c100f2003200228021020022802141015200241086a200028020020002802042000280208220110162002410036024c200220022903083702442003200241c4006a100e20012001200228024c6a22034b044041c08204411c41c886041017000b20002003360208200241d0006a24000b3f01027f2001280204220320012802082202490440200220034184a2041029000b200041003602082000200320026b3602042000200128020020026a3602000b100020012002101c20022000200110210b8f0201077f230041d0006b22032400200341286a22044200370300200341206a22054200370300200341186a22064200370300200342003703100240200241214f0440200341c8006a22074200370300200341406b22084200370300200341386a220942003703002003420037033020012002200341306a1005200420072903003703002005200829030037030020062009290300370300200320032903303703100c010b200341086a2002200341106a412041988204100a2003280208200328020c2001200241a88204101a0b20002003290310370000200041186a200341286a290300370000200041106a200341206a290300370000200041086a200341186a290300370000200341d0006a24000b2900200220034904402003200241b886041029000b2000200220036b3602042000200120036a3602000b4601017f230041206b220324002003410c6a420037020020034101360204200341f49f043602082003200136021c200320003602182003200341186a36020020032002102b000bd10102037f017e230041d0006b22022400200241186a220420001013200229021821052002410036022c2002200537022420012802002001280204200241246a2203101420012802082003101920022002290224370218200241106a2004200228022c100f2003200228021020022802141015200241086a200028020020002802042000280208220110162002410036024c200220022903083702442003200241c4006a100e20012001200228024c6a22034b044041c08204411c41c886041017000b20002003360208200241d0006a24000b210020002d00004504402001410010300f0b200141011030200041016a2001100e0b7b002001200346044020002002200110091a0f0b230041306b220024002000200336020420002001360200200041146a42023702002000412c6a41053602002000410336020c200041a09804360208200041053602242000200041206a360210200020003602282000200041046a360220200041086a2004102b000b6a01037f230041206b22012400200141086a200028020020002802042000280208220210162001410036021c200120012903083702144103200141146a101c20022002200128021c6a22034b044041c08204411c41c886041017000b20002003360208200141206a24000b7401017f230041106b2202240002402000413f4d04402001200041027410300c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210210c010b200041ffffffff034d044020004102744102722001100d0c010b20014103103020002001100d0b200241106a24000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101e45044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b3d01027f200028020422032002492204450440200120022000280200220120024190a304101a2000200320026b3602042000200120026a3602000b20040ba90102017f027e230041406a220224002002411f6a2001101d0240024020022d001f0d002002200110202002290300a70d00200241106a2903002103200229030821042000200229002037000820004200370300200041286a2004370300200041306a2003370300200041206a200241386a290000370000200041186a200241306a290000370000200041106a200241286a2900003700000c010b200042013703000b200241406b24000b5f02017f037e230041106b2202240020024200370308200242003703000240200120024110101e45044020022903082104200229030021050c010b420121030b2000200537030820002003370300200041106a2004370300200241106a24000b5c01037f02402000280208220420026a220320044f04402003200028020422054b0d01200028020020046a200320046b2001200241e4a104101a200020033602080f0b4180a004411c41c4a1041017000b2003200541d4a104100b000bb20101027f230041306b2201240020014180800136020441d0a304200141046a2202100320014180800136022c200141d0a3043602282002200141286a101d20012d00040440200141003a000441a0850441c100200141046a41dc820441e485041023000b2000200141066a290000370001200041096a2001410e6a290000370000200041116a200141166a290000370000200041186a2001411d6a290000370000200020012d00053a0000200141306a24000b7c01017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a42023702002005413c6a41013602002005410236021c200541fc9004360218200541023602342005200541306a3602202005200541106a3602382005200541086a360230200541186a2004102b000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10012000290308210120002903002102200041206a2400410541042001200284501b0b850302047f027e230041d0006b220324002003410036023020034280800137023c200341d0a30436023841b7c380e57e200341386a2204100d20012004100e20022004100e20032003290238370228200341206a200341286a2003280240100f2003280224210220032802202105200328022821012003200328022c2206360238200520022001200410002102200341186a20032802382001200641908504100a027e024002400240024020020e0400010103010b200328021821012003200328021c36023c200320013602382003200341386a10202003290300a70d0120032903082107200341106a2903000c030b200341c4006a42003702002003410136023c200341a08604360238200341f49f04360240200341386a41a88604102b000b200341003a0037200341c4006a42013702002003410136023c2003419081043602382003410336022c2003200341286a3602402003200341376a360228200341386a41988104102b000b42000b21082000200737030020002008370308200341d0006a24000bff0202057f027e230041d0006b220224002002410036023020024280800137023c200241d0a30436023841e7b98fb102200241386a2204100d20012004100e20022002290238370228200241206a200241286a2002280240100f2002280224210320022802202105200228022821012002200228022c2206360238200520032001200410002103200241186a20022802382001200641908504100a027e024002400240024020030e0400010103010b200228021821012002200228021c36023c200220013602382002200241386a10202002290300a70d0120022903082107200241106a2903000c030b200241c4006a42003702002002410136023c200241a08604360238200241f49f04360240200241386a41a88604102b000b200241003a0037200241c4006a42013702002002410136023c2002419081043602382002410336022c2002200241286a3602402002200241376a360228200241386a41988104102b000b42000b21082000200737030020002008370308200241d0006a24000b0300010b1b002000418180014f044020004180800141f48504100b000b20000b0e0020002001200241ac960410580b840101017f230041306b22022400200241146a42013702002002410136020c200241f49e0436020820024102360224200220002d0000410274220041a0a3046a28020036022c2002200041b4a3046a2802003602282002200241206a3602102002200241286a36022020012802142001280218200241086a10432100200241306a240020000b3c01017f230041206b22022400200241013b011c2002200136021820022000360214200241989004360210200241f49f0436020c2002410c6a1049000bdd0401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b410121002001280214220341ec82044106200141186a280200220528020c22041100000d0c024020012d001c410471450440200341929104410120041100000d0e200341e4890441052004110000450d010c0e0b200341939104410220041100000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241e489044105102d0d0d2002419091044102102d0d0d0b200341fc8f044101200411000021000c0c0b200128021441f28204410d200141186a28020028020c11000021000c0b0b200128021441ff8204410e200141186a28020028020c11000021000c0a0b2001280214418d8304410b200141186a28020028020c11000021000c090b200128021441988304411a200141186a28020028020c11000021000c080b200128021441b28304410e200141186a28020028020c11000021000c070b200128021441c083044110200141186a28020028020c11000021000c060b200128021441d08304410c200141186a28020028020c11000021000c050b200128021441dc8304410b200141186a28020028020c11000021000c040b200128021441e783044107200141186a28020028020c11000021000c030b200128021441ee8304410f200141186a28020028020c11000021000c020b200128021441fd83044111200141186a28020028020c11000021000c010b2001280214418e84044113200141186a28020028020c11000021000b200241106a240020000bd40701107f230041d0006b22032400200341003b014c200320023602482003410036024420034281808080a00137023c2003200236023820034100360234200320023602302003200136022c2003410a3602282000280204210c2000280200210d2000280208210e200341406b210f027f0340024020032d004d450440200328022c210a02400240024002402003280238220b200328023022104b0d0020032802342202200b4b0d00200328023c2204450d012004200f6a41016b21110340200a200222076a210020112d0000210602400240024002400240027f02400240200b20026b220541084f0440024002402000200041036a417c712202460440200541086b2108410021020c010b200341206a20062000200220006b2202105620032802204101460d012002200541086b22084b0d030b200641818284086c21090340200020026a220141046a2802002009732212417f73201241818284086b7120012802002009732201417f73200141818284086b7172418081828478710d03200241086a220220084d0d000b0c020b200328022421010c020b200341106a20062000200510562003280214210120032802100c020b200220054b0d02200341186a2006200020026a200520026b1056410020032802184101470d011a2002200328021c6a22012002490d030b41010b22004101460440200141016a2202450d0302402007200220076a22024d04402003200236023420022004490d07200220104d0d010c070b41e08f04411c41b89d041017000b200441054f0d04027f200a200220046b6a2106200f210720042105034041002005450d011a200541016b210520072d0000210820062d00002109200641016a2106200741016a210720082009460d000b200920086b0b0d05200341086a20032802442002200a105220032002360244200328020c2100200328020821020c0a0b2003200b3602340c060b41b08f04412141d895041017000b41e08f04411c41e895041017000b41e08f04411c41a89d041017000b2004410441c89d04100b000b2002200b4d0d000b0b200341013a004d20032d004c044020032802482101200328024421040c020b20032802482201200328024422044f04404100210220012004470d020c030b41b08f04412141909b041017000b41b08f04412141989d041017000b200320042001200a105220032802042100200328020021020b20020d010b41000c020b0240200e2d00000440200d418c91044104200c28020c1100000d010b200e2000047f200020026a41016b2d0000410a460541000b22013a0000200d20022000200c28020c110000450d010b0b41010b2100200341d0006a240020000bd70502047f017e230041b0016b22012400200141086a200041e00010091a20014280800137028001200141d0a30436027c02402001290308500440200141fc006a101b200141f0006a220020014184016a2802003602002001200129027c370368200141a0016a2202200141e8006a220341e88604102f2001200141206a36029c012001411536029801200141f4860436029401200220014194016a10182000200141a8016a280200360200200120012902a0013703682001200141c1006a3602a801200141133602a4012001418987043602a0012003200210180c010b200141fc006a101b200141f0006a220020014184016a2802003602002001200129027c370368200141a0016a2202200141e8006a220341ac8704102f2001200141106a36029c012001411636029801200141b8870436029401200220014194016a10122000200141a8016a280200360200200120012902a0013703682001200141306a3602a801200141183602a401200141ce87043602a0012003200210120b20014190016a20002802003602002001200129036837038801230041206b22002400200041186a22024100360200200020014188016a2204290200370310200041086a200041106a200441086a280200100f20002903082105200341086a2002280200360200200320002903103702002003200537020c200041206a2400200141a8016a200141f0006a2802003602002001200129026822053703a001200141f8006a2802002103200128027421022001410036027020012005370268027f2001290308500440200141e8006a220041001030200141206a20001019200141c1006a20001019200141106a0c010b200141e8006a220041011030200141106a2000100e200141306a2000100e200141d0006a0b2200290300200041086a290300200141e8006a1010200120012902683703a0012001200141a0016a2001280270100f20022003200128020020012802041006200141b0016a24000bef0102037f017e230041d0006b22032400200341186a220520011013200329021821062003410036022c2003200637022420022802002002280204200341246a2204101420042002280208410f102120032003290224370218200341106a2005200328022c100f2004200328021020032802141015200341086a200128020020012802042001280208220210162003410036024c200320032903083702442004200341c4006a100e20022002200328024c6a22044b044041c08204411c41c886041017000b200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b970101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a42023702002000412c6a41053602002000410236020c200041e89004360208200041053602242000200041206a360210200020003602282000200041046a360220200041086a41f4a104102b000b3c01027f230041106b22002400200042808001370208200041d0a304360204200041046a2201410110302001410110304101200028020c10281035000b5101027f230041106b22022400200242808001370208200241d0a304360204200241046a2203410010302003200141ff0171410247047f20034101103020010541000b10302000200228020c10281035000b3e01027f230041106b22022400200242808001370208200241d0a304360204200241046a22034100103020002001200310104100200228020c10281035000bab0102057f017e230041306b2202240020024100360220200242808001370228200241d0a3043602244100200241246a2203100d20022002290224370218200241106a200241186a2204200228022c100f2002280214210520022802102106200229021821072002410036022c20022007370224200020012003101020022002290224370218200241086a2004200228022c100f200620052002280208200228020c10071a200241306a24000b0d00200041d0a30420011008000b2e01017f230041e0006b22012400200141086a200041d80010091a200142003703002001102e200141e0006a24000be71302077f047e23004190056b2200240002400240102441ff017141054604402000418080013602b00441d0a304200041b0046a22021002200041f0006a20002802b00441d0a3044180800141908504100a200020002903703702d001200041003602b004200041d0016a20024104101e0d0120002d00b304210120002d00b204210320002d00b1042102027f02400240024002400240024020002d00b0042204410b6b0e050508080801000b0240200441e8006b0e03040802000b2004418401460d02200441db0147200241ff017141e3004772200341f50047200141a8014772720d0741000c050b200241ff017141f50047200341da004772200141d60047720d06200041b0046a200041d0016a101d20002d00b0040d06200041e8016a200041ba046a290000370300200041f0016a200041c2046a290000370300200041f7016a200041c9046a2900003700002000200041b2046a2900003703e00120002d00b104210241010c040b200241ff0171200341164772200141de0047720d05200041a0026a200041d0016a101d20002d00a0020d05200041f8006a200041d0016a101d20002d00780d05200041e7046a20004191016a290000370000200041df046a20004189016a290000370000200041d7046a20004181016a290000370000200041b8046a200041aa026a290000370300200041c0046a200041b2026a290000370300200041c7046a200041b9026a290000370000200020002900793700cf042000200041a2026a2900003703b00420002d00a1022102200041e0016a200041b0046a413f10091a41020c030b200241ff017141a10147200341dd004772200141a10147720d04200041b0046a200041d0016a101f20002903b0044200520d04200041ae036a200041a6026a200041fe006a200041b8046a4130100941301009413010091a200041e0016a200041a8036a413610091a41030c020b200241ff0171411247200341e6004772200141a00147720d03200041b0046a200041d0016a101f20002903b0044200520d03200041ae036a200041a6026a200041fe006a200041b8046a4130100941301009413010091a200041e0016a200041a8036a413610091a41040c010b200241ff0171413947200341ef0047722001411847720d02200041ee036a200041d0016a101d20002d00ee030d022000418f046a200041d0016a101d20002d008f040d02200041d8006a200041d0016a10202000290358a70d02200041e8006a290300210720002903602108200041c0036a200041ef036a220241186a290000370300200041b8036a200241106a290000370300200041b0036a200241086a290000370300200041d0036a20004198046a290000370300200041d8036a200041a0046a290000370300200041e0036a200041a8046a29000037030020002000290090043703c803200020022900003703a803200041e8026a2201200041a8036a41c00010091a200041a6026a200041fe006a200041b6046a200141c000100941c000100941c00010091a200041e0016a200041a0026a413f10091a2000200041e2026a2800003600db01200020002800df023602d80141050b2101200041f8006a410272200041e0016a413f10091a200041bc016a20002800db01360000200041c8016a2007370300200020002802d8013600b901200020083703c001200020023a0079200020013a0078200041003602a8022000428080013702b404200041d0a3043602b0044100200041b0046a2203100d200020002902b0043702a002200041d0006a200041a0026a20002802b804100f200028025421042000280250210520002802a0022102200020002802a40222063602b004200520042002200310002103200041c8006a20002802b0042002200641908504100a024002400240024020030e0401000002000b200041bc046a4200370200200041013602b404200041a086043602b004200041f49f043602b804200041b0046a41a88604102b000b200028024821022000200028024c3602b404200020023602b004200041306a200041b0046a10202000290330a7450d01200041bc046a4200370200200041013602b404200041ec88043602b0040c040b200041bc046a4200370200200041013602b404200041bc88043602b0040c030b200041f8006a4101722102200041406b29030021072000200029033822083703e001200020073703e80102400240024002400240024002400240200141016b0e050001040502030b230041406a22012400200141286a200241086a290000370200200141306a200241106a290000370200200141386a200241186a2900003702002001200041e0016a36021c20012002290000370220200141086a200141206a1026200129030821072000200141106a29030037030820002007370300200141406b24002000290300200041086a2903001033000b230041e0006b220124002001200041e0016a36021c200141086a200141206a200241c0001009200141406b102520012903082107200041106a2202200141106a29030037030820022007370300200141e0006a24002000290310200041186a2903001033000b200041b8046a20004180016a41d000100921022000200041e0016a3602b004200041f8046a290300210820004180056a2903002107200041a0026a22011022200041206a20022001102541012103410121012000290320220a2008542204200041286a290300220920075420072009511b0d04410221012002200041d8046a20082007103841ff017122054102460d03200541004721010c040b200820071033000b200041b8046a20004180016a4130100921022000200041e0016a3602b004200041e0046a2903002107200041d8046a2903002108200041a0026a2201102220012002200820071038220241ff0171410247220145044020002903e001200041e8016a29030010340b200120021032000b200041b0036a20004180016a4130100921022000200041e0016a3602a803200041d8036a2903002107200041d0036a2903002108200041e8026a220110222001200220082007100c200041b8026a20004180036a290000370300200041b0026a200041f8026a290000370300200041a8026a200041f0026a290000370300200041c8026a20004188016a290300370300200041d0026a20004190016a290300370300200041d8026a20004198016a290300370300200020002900e8023703a00220002000290380013703c002200041b8046a200041a0026a41c00010091a20004180056a2007370300200041f8046a2008370300200042013703b004200041b0046a102e20002903e001200041e8016a2903001034410041021032000b2002200041a0026a200a20087d200920077d2004ad7d100c20002903e001200041e8016a2903001034410021030b200320011032000b200041043a00b004200041b0046a1039000b1031000b200041f49f043602b804200041b0046a41948804102b000bd10202037f037e23004180016b22042400200441186a200010260240200429031822082002542206200441206a290300220720035420032007511b4504402000200820027d200720037d2006ad7d1011200441086a200110262004290308220720027c220920075422052005ad200441106a290300220720037c7c220820075420072008511b0d012001200920081011200441396a2000290000370000200441c1006a200041086a290000370000200441c9006a200041106a290000370000200441d1006a200041186a290000370000200441da006a2001290000370100200441e2006a200141086a290000370100200441ea006a200141106a290000370100200441f2006a200141186a290000370100200441013a0038200441013a00592004200337033020042002370328200441286a1036410221050b20044180016a240020050f0b41c08204411c41f488041017000b4801017f230041206b220124002001410c6a420137020020014101360204200141f49e043602002001410436021c200120003602182001200141186a360208200141948804102b000bf40402087f037e230041c0016b2200240002401024220141ff0171410546044020004180800136025041d0a304200041d0006a22011002200041286a200028025041d0a3044180800141908504100a200020002903283702502000410036023002402001200041306a4104101e0d0020002d0030419b01470d0020002d003141ae01470d0020002d0032419d01470d0020002d003341de00470d00200041106a200041d0006a10202000290310a7450d020b1031000b200020013a0050200041d0006a1039000b200041206a290300210820002903182109200041306a1022200041ec006a200041c8006a2202290000370200200041e4006a200041406b2203290000370200200041dc006a200041386a220429000037020020002000290030370254200041ec8004360250200041003602b0012000428080013702b801200041d0a3043602b40141e7b98fb102200041b4016a2201100d200041d4006a2001100e200020002902b4013702a801200041086a200041a8016a220520002802bc01100f200028020c21062000280208210720002902a801210a200041003602bc012000200a3702b4012009200820011010200020002902b4013702a8012000200520002802bc01100f200720062000280200200028020410071a2000419a016a200229000037010020004192016a20032900003701002000418a016a200429000037010020004182016a20002900303701002000200837035820002009370350200041013a008101200041003a0060200041d0006a1036200920081034230041106b22002400200042808001370208200041d0a304360204200041046a2201410010302001410010304100200028020c10281035000b7701027f230041106b2204240020022000280204200028020822036b4b0440200441086a200020032002103c2004280208200428020c103d200028020821030b200028020020036a2001200210091a2003200220036a22014b044041908904411c419c8f041017000b20002001360208200441106a24000bc00301057f230041206b220424000240027f4100200220036a22032002490d001a200128020422024100480d01410820024101742206200320032006491b2203200341084d1b2203417f73411f76210702402002450440200441003602180c010b2004200236021c20044101360218200420012802003602140b200441146a2105230041106b22022400200441086a2206027f02402007044020034100480d01027f20052802040440200541086a2802002207450440200241086a2003104020022802082105200228020c0c020b200528020021080240200310412205450440410021050c010b20052008200710091a0b20030c010b2002200310402002280200210520022802040b21072005044020062005360204200641086a200736020041000c030b20064101360204200641086a200336020041010c020b20064100360204200641086a200336020041010c010b2006410036020441010b360200200241106a24002004280208450440200428020c210220012003360204200120023602004181808080780c010b200441106a2802002103200428020c0b21012000200336020420002001360200200441206a24000f0b41b08904412141f88a041017000b1f00024020004181808080784704402000450d012001103e000b0f0b103f000b860101017f230041306b220124002001200036020c2001411c6a420137020020014102360214200141c88c043602102001410536022c2001200141286a36021820012001410c6a360228230041206b22002400200041003b011c200041d88c043602182000200141106a360214200041989004360210200041f49f0436020c2000410c6a1049000b3c01017f230041206b22002400200041146a42003702002000410136020c2000419c8b04360208200041f49f04360210200041086a41a48b04102b000b2001017f41d2a3052d00001a20011041210220002001360204200020023602000b800101027f0240027f410041c8a304280200220120006a22022001490d001a41cca3042802002002490440200041ffff036a22024110764000220141ffff034b0d022001411074220120024180807c716a22022001490d0241cca30420023602004100200020016a22022001490d011a0b41c8a304200236020020010b0f0b41000b0c00200041ec8904200110430bfc0301067f230041406a22032400200341346a2001360200200341033a003c2003412036022c2003410036023820032000360230200341003602242003410036021c027f02400240200228021022014504402002410c6a28020022004103742106200041ffffffff017121072002280200210820022802082101034020042006460d02200420086a220041046a28020022050440200328023020002802002005200328023428020c1100000d040b200441086a21042001280200210020012802042105200141086a210120002003411c6a2005110200450d000b0c020b200241146a28020022044105742100200441ffffff3f7121072002280208210620022802002208210403402000450d01200441046a28020022050440200328023020042802002005200328023428020c1100000d030b2003200128021036022c200320012d001c3a003c20032001280218360238200341106a2006200141086a10552003200329031037021c200341086a20062001105520032003290308370224200441086a2104200041206b210020012802142105200141206a2101200620054103746a22052802002003411c6a2005280204110200450d000b0c010b200228020420074b04402003280230200820074103746a22002802002000280204200328023428020c1100000d010b41000c010b41010b2101200341406b240020010b0c00200020012002103b41000bd10201037f230041106b220224000240024020002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280204460440230041106b22042400200441086a200020034101103c2004280208200428020c103d200441106a2400200028020821030b200028020020036a20013a0000200341016a2201450d04200020013602080c030b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b103b0b200241106a240041000f0b41908904411c418c8f041017000bd606020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e034020004104490d09200341196a20006a220241046b200e4290ce0080220d42f0b1037e200e7ca7220441ffff037141e4006e2206410174418592046a2f00003b0000200241026b2006419c7f6c20046a41ffff0371410174418592046a2f00003b0000200041046b2100200e42ffc1d72f562102200d210e20020d000b200da7220241e3004d0d02200041024f0d010c080b41272100200241e3004d0d020b200041026b2200200341196a6a200da7220441ffff037141e4006e2202419c7f6c20046a41ffff0371410174418592046a2f00003b00000b2002410a4f044020004102490d060c040b20000d010c050b2002410a4f0d020b200041016b2200200341196a6a200241306a3a00000c020b000b200041026b2200200341196a6a2002410174418592046a2f00003b00000b02400240200041274d0440412820006b412720006b2206200128021c220541017122071b2102410021042005410471044041f49f042104200241f49f0441f49f04104b20026a22024b0d020b412b418080c40020071b2107200341196a20006a2108200128020045044041012100200128021422022001280218220120072004104e0d03200220082006200128020c11000021000c030b2002200128020422094f044041012100200128021422022001280218220120072004104e0d03200220082006200128020c11000021000c030b200541087104402001280210210b2001413036021020012d0020210c41012100200141013a0020200128021422052001280218220a20072004104e0d03200341106a2001200920026b4101104f20032802102202418080c400460d0320032802142104200520082006200a28020c1100000d03200220042005200a10500d032001200c3a00202001200b360210410021000c030b41012100200341086a2001200920026b4101104f20032802082205418080c400460d02200328020c2109200128021422022001280218220120072004104e0d02200220082006200128020c1100000d022005200920022001105021000c020b0c020b41e08f04411c41c094041017000b200341406b240020000f0b41b08f04412141e49e041017000b1b00200128021441e489044105200141186a28020028020c1100000b0e0020002802001a03400c000b000bc20201047f230041406a220124002001200036020c2001411c6a420137020020014102360214200141c0a0043602102001410636022c2001200141286a36021820012001410c6a360228410021000240024002400240034020002000200241037441c4a0046a2802006a22004b0d014101210220032104410121032004450d000b20004101744100200041104e1b2200044020004100480d0220012000104020012802002202450d030b200141003602382001200036023420012002360230200141306a200141106a10420d032001280230210020012802382103024041d0a3052d000045044041d1a3052d00004101710d010b200020031004410947044041d0a30541013a00000b41d1a30541013a00000b000b41908904411c41d49e041017000b103f000b2000103e000b41e88c0441332001413f6a41d4890441888e041023000b2000200042b1a1a2be8cd0b08931370308200042b2c98bdc9db884a6203703000b8e04010a7f230041106b220224000240200120006b220141104f04402000200041036a417c71220620006b2200104c22042006200120006b2200417c716a2000410371104c6a220320044f0440200041027621050240024003402005450d0520022006200541c0012005200541c0014f1b41d09704104d200228020c21052002280208210620022002280200200228020422002000417c7141bc9904104d200228020c210820022802082107024020022802042200450440410021000c010b2002280200220420004102746a21094100210003402004220a41106a21044100210102400340200020002001200a6a280200220b417f73410776200b410676724181828408716a22004d0440200141046a22014110470d010c020b0b41e08f04411c41fc99041017000b20042009470d000b0b20032003200041087641ff81fc0771200041ff81fc07716a418180046c4110766a22034b0d012008450d000b200841027421014100210003402000200020072802002204417f734107762004410676724181828408716a22004b0d02200741046a2107200141046b22010d000b20032003200041087641ff81fc0771200041ff81fc07716a418180046c4110766a22034d0d0441e08f04411c41dc99041017000b41e08f04411c41cc99041017000b41e08f04411c41ec99041017000b41e08f04411c41ac99041017000b20002001104c21030b200241106a240020030b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41e08f04411c41d49e041017000b3d0020022003490440419ca004412320041017000b20002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080b39000240027f2002418080c40047044041012000200220012802101102000d011a0b20030d0141000b0f0b200020034100200128020c1100000bb20101027f024002400240024020012d0020220441016b0e03010200030b200341ff01710d00410021040c020b20022104410021020c010b200241016a2203044020024101762104200341017621020c010b41e08f04411c41d094041017000b200441016a2104200141186a2802002105200128021021032001280214210102400340200441016b2204450d01200120032005280210110200450d000b418080c40021030b20002002360204200020033602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110200450d000b200441016b0b2001490b900201067f02402000027f418080c400200128020022022001280204460d001a2001200241016a2205360200024020022d0000220341187441187541004e0d002001200241026a220536020020022d0001413f7121042003411f712106200341df014d0440200641067420047221030c010b2001200241036a220536020020022d0002413f712004410674722107200341f00149044020072006410c747221030c010b2001200241046a2205360200418080c4002006411274418080f0007120022d0003413f71200741067472722203418080c400460d011a0b20012802082204200520026b6a22022004490d012001200236020820030b360204200020043602000f0b41e08f04411c41809b041017000b2c00200120024d04402000200220016b3602042000200120036a3602000f0b41b08f04412141949c041017000bca0301067f230041306b22022400200028020421042000280200210302400240027f024020012802002205200128020822007204402000450d032001410c6a28020021002002410036022c200220033602242002200320046a360228200041016a21000340200041016b22000440200241186a200241246a1051200228021c418080c400470d010c050b0b200241106a200241246a10512002280214418080c400460d03024020022802102200450d00200020044f044020002004460d010c030b200020036a2c00004140480d020b200241086a4100200020031052200228020c210620022802080c020b200128021420032004200141186a28020028020c11000021000c030b41000b21002006200420001b21042000200320001b21030b2005450440200128021420032004200141186a28020028020c11000021000c010b200128020422002003200320046a104b22054b044020022001200020056b4100104f4101210020022802002205418080c400460d01200228020421062001280214220720032004200141186a280200220128020c1100000d012005200620072001105021000c010b200128021420032004200141186a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1102000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044107470d0120012802000b2802002104410121030b20002004360204200020033602000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000beb0201057f230041406a22022400200028020021054101210002402001280214220441a89004410c200141186a280200220628020c22011100000d00200528020c21032002411c6a42033702002002413c6a4105360200200241346a41053602002002410336021420024180900436021020022003410c6a3602382002200341086a3602302002410236022c200220033602282002200241286a36021820042006200241106a10430d00200528020822030440200441b49004410220011100000d01200241386a200341106a290200370300200241306a200341086a2902003703002002200329020037032820042006200241286a104321000c010b200220052802002203200528020428020c11010041002100200229030042c1f7f9e8cc93b2d14185200241086a29030042e4dec78590d085de7d858450450d0041012100200441b49004410220011100000d00200420032802002003280204200111000021000b200241406b240020000b6901017f230041306b220424002004200136020420042000360200200441146a42023702002004412c6a41053602002004410236020c20042003360208200441053602242004200441206a3602102004200441046a36022820042004360220200441086a2002102b000b0bbb230500418080040bb5022f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f73746f726167652d342e332e302f7372632f6c617a792f6d617070696e672e727300e7dc23264661696c656420746f206765742076616c756520696e204d617070696e673a207000010020000000000001006b0000009c000000250000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273a8000100700000009d00000020000000a8000100700000009d000000300041c082040bc106617474656d707420746f206164642077697468206f766572666c6f77080000000100000001000000030000004465636f646543616c6c65655472617070656443616c6c656552657665727465644b65794e6f74466f756e645f42656c6f7753756273697374656e63655468726573686f6c645472616e736665724661696c65645f456e646f776d656e74546f6f4c6f77436f64654e6f74466f756e644e6f7443616c6c61626c65556e6b6e6f776e4c6f6767696e6744697361626c656443616c6c52756e74696d654661696c656445636473615265636f766572794661696c65642f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300210201006e000000e40000001700000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000a8000100700000006b0100000e000000a8000100700000002401000032000000656e636f756e746572656420756e6578706563746564206572726f72040301001c000000a800010070000000ed000000170000005010010071000000c10000003d0000005010010071000000c40000000900000045726332303a3a5472616e7366657200f40f0100000000005803010045726332303a3a5472616e736665723a3a66726f6d45726332303a3a5472616e736665723a3a746f45726332303a3a417070726f76616c00f40f0100000000009c03010045726332303a3a417070726f76616c3a3a6f776e657245726332303a3a417070726f76616c3a3a7370656e6465722f55736572732f70706f6c6f637a656b2f6769742f696e6b2d6578616d706c65732f65726332302f6c69622e7273e60301002e000000070000000500000073746f7261676520656e7472792077617320656d707479002404010017000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e747279004404010027000000e60301002e000000cf0000002700419089040bc106617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000900000000000000010000000a0000004572726f720000000b0000000c000000040000000c0000000d0000000e0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72730000000405010071000000980100001c0000006361706163697479206f766572666c6f770000008805010011000000040501007100000021020000050000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c65640000002306010015000000380601000d000000b40501006f000000a20100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72739b0601006d00000064020000200000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e72730000001807010071000000610700000d0000001807010071000000d00700000900000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f770041e08f040b9410617474656d707420746f206164642077697468206f766572666c6f77293a0000f40f010000000000fd07010001000000fd070100010000000900000000000000010000000f00000070616e69636b6564206174203a0a696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320360801002000000056080100120000003a200000f40f0100000000007808010002000000202020202c0a28280a2f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000cd09010070000000050500000d000000cd0901007000000097050000300000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e7273000000600a010075000000760000004b000000600a010075000000770000003400000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820f80a0100120000000a0b01002200000072616e676520656e6420696e646578203c0b0100100000000a0b0100220000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273005c0b010073000000c405000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028e00b010015000000f50b01002b000000fc070100010000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e72730000380c0100720000004700000015000000380c0100720000004f00000032000000380c0100720000005a00000009000000380c010072000000660000000d000000380c0100720000006400000011000000380c01007200000054000000110000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e72730000000c0d01007100000091000000110000000c0d0100710000004f0200002d0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e727300a00d010073000000d3000000130000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e7273240e010074000000a101000047000000240e010074000000b401000020000000240e010074000000b401000011000000240e010074000000b8010000370000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e72730000d80e01007a00000095000000010000009508010070000000d201000005000000f40f010000000000756e61626c6520746f206465636f64652073656c6563746f72656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f646520696e707574636f756c64206e6f74207265616420696e7075747061696420616e20756e70617961626c65206d657373616765004180a0040bc703617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290af40f0100000000003f100100010000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e727300000050100100710000005a0000001c00000050100100710000005a0000001400000050100100710000005a00000031000000501001007100000065000000090000005010010071000000830000002500000050100100710000008d000000210000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f7061726974792d7363616c652d636f6465632d332e362e392f7372632f636f6465632e727300241101006b000000770000000e000000190000001c0000001600000014000000190000007c0f0100950f0100b10f0100c70f0100db0f01","build_info":{"build_mode":"Debug","cargo_contract_version":"3.2.0","rust_toolchain":"stable-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"erc20","version":"4.3.0","authors":["Parity Technologies "]},"spec":{"constructors":[{"args":[{"label":"total_supply","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":["Creates a new ERC-20 contract with the specified initial supply."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":1},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":0},"blockNumber":{"displayName":["BlockNumber"],"type":14},"chainExtension":{"displayName":["ChainExtension"],"type":15},"hash":{"displayName":["Hash"],"type":12},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":13}},"events":[{"args":[{"docs":[],"indexed":true,"label":"from","type":{"displayName":["Option"],"type":11}},{"docs":[],"indexed":true,"label":"to","type":{"displayName":["Option"],"type":11}},{"docs":[],"indexed":false,"label":"value","type":{"displayName":["Balance"],"type":0}}],"docs":["Event emitted when a token transfer occurs."],"label":"Transfer"},{"args":[{"docs":[],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":true,"label":"spender","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":false,"label":"value","type":{"displayName":["Balance"],"type":0}}],"docs":["Event emitted when an approval occurs that `spender` is allowed to withdraw","up to the amount of `value` tokens from `owner`."],"label":"Approval"}],"lang_error":{"displayName":["ink","LangError"],"type":3},"messages":[{"args":[],"default":false,"docs":[" Returns the total token supply."],"label":"total_supply","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":4},"selector":"0xdb6375a8"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the account balance for the specified `owner`.",""," Returns `0` if the account is non-existent."],"label":"balance_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":4},"selector":"0x0f755a56"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"label":"spender","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the amount which `spender` is still allowed to withdraw from `owner`.",""," Returns `0` if no allowance has been set."],"label":"allowance","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":4},"selector":"0x6a00165e"},{"args":[{"label":"to","type":{"displayName":["AccountId"],"type":5}},{"label":"value","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":[" Transfers `value` amount of tokens from the caller's account to account `to`.",""," On success a `Transfer` event is emitted.",""," # Errors",""," Returns `InsufficientBalance` error if there are not enough tokens on"," the caller's account balance."],"label":"transfer","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x84a15da1"},{"args":[{"label":"spender","type":{"displayName":["AccountId"],"type":5}},{"label":"value","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":[" Allows `spender` to withdraw from the caller's account multiple times, up to"," the `value` amount.",""," If this function is called again it overwrites the current allowance with"," `value`.",""," An `Approval` event is emitted."],"label":"approve","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x681266a0"},{"args":[{"label":"from","type":{"displayName":["AccountId"],"type":5}},{"label":"to","type":{"displayName":["AccountId"],"type":5}},{"label":"value","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":[" Transfers `value` tokens on the behalf of `from` to the account `to`.",""," This can be used to allow a contract to transfer tokens on ones behalf and/or"," to charge fees in sub-currencies, for example.",""," On success a `Transfer` event is emitted.",""," # Errors",""," Returns `InsufficientAllowance` error if there are not enough tokens allowed"," for the caller to withdraw from `from`.",""," Returns `InsufficientBalance` error if there are not enough tokens on"," the account balance of `from`."],"label":"transfer_from","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x0b396f18"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x00000000","ty":0}},"name":"total_supply"},{"layout":{"root":{"layout":{"leaf":{"key":"0x2623dce7","ty":0}},"root_key":"0x2623dce7"}},"name":"balances"},{"layout":{"root":{"layout":{"leaf":{"key":"0xeca021b7","ty":0}},"root_key":"0xeca021b7"}},"name":"allowances"}],"name":"Erc20"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"primitive":"u128"}}},{"id":1,"type":{"def":{"variant":{"variants":[{"fields":[{"type":2}],"index":0,"name":"Ok"},{"fields":[{"type":3}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":2},{"name":"E","type":3}],"path":["Result"]}},{"id":2,"type":{"def":{"tuple":[]}}},{"id":3,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":4,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":3}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":3}],"path":["Result"]}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":7}}}},{"id":7,"type":{"def":{"primitive":"u8"}}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":3}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":3}],"path":["Result"]}},{"id":9,"type":{"def":{"variant":{"variants":[{"fields":[{"type":2}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":2},{"name":"E","type":10}],"path":["Result"]}},{"id":10,"type":{"def":{"variant":{"variants":[{"index":0,"name":"InsufficientBalance"},{"index":1,"name":"InsufficientAllowance"}]}},"path":["erc20","erc20","Error"]}},{"id":11,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":5}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":5}],"path":["Option"]}},{"id":12,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":13,"type":{"def":{"primitive":"u64"}}},{"id":14,"type":{"def":{"primitive":"u32"}}},{"id":15,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v4/erc20.json b/packages/api-contract/src/test/contracts/ink/v4/erc20.json new file mode 100644 index 000000000000..c92cda4372c8 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v4/erc20.json @@ -0,0 +1,821 @@ +{ + "source": { + "hash": "0x114f55289bcdfd0d28e0bbd1c63452b4e45901a022b1011d298fa2eb12d1711d", + "language": "ink! 4.3.0", + "compiler": "rustc 1.75.0", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "3.2.0", + "rust_toolchain": "stable-aarch64-apple-darwin", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "erc20", + "version": "4.3.0", + "authors": [ + "Parity Technologies " + ] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "label": "total_supply", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + "Creates a new ERC-20 contract with the specified initial supply." + ], + "label": "new", + "payable": false, + "returnType": { + "displayName": [ + "ink_primitives", + "ConstructorResult" + ], + "type": 1 + }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": [ + "AccountId" + ], + "type": 5 + }, + "balance": { + "displayName": [ + "Balance" + ], + "type": 0 + }, + "blockNumber": { + "displayName": [ + "BlockNumber" + ], + "type": 14 + }, + "chainExtension": { + "displayName": [ + "ChainExtension" + ], + "type": 15 + }, + "hash": { + "displayName": [ + "Hash" + ], + "type": 12 + }, + "maxEventTopics": 4, + "timestamp": { + "displayName": [ + "Timestamp" + ], + "type": 13 + } + }, + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": [ + "Option" + ], + "type": 11 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": [ + "Option" + ], + "type": 11 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when a token transfer occurs." + ], + "label": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when an approval occurs that `spender` is allowed to withdraw", + "up to the amount of `value` tokens from `owner`." + ], + "label": "Approval" + } + ], + "lang_error": { + "displayName": [ + "ink", + "LangError" + ], + "type": 3 + }, + "messages": [ + { + "args": [], + "default": false, + "docs": [ + " Returns the total token supply." + ], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 4 + }, + "selector": "0xdb6375a8" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + } + ], + "default": false, + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 4 + }, + "selector": "0x0f755a56" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + } + ], + "default": false, + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 4 + }, + "selector": "0x6a00165e" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 8 + }, + "selector": "0x84a15da1" + }, + { + "args": [ + { + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with", + " `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 8 + }, + "selector": "0x681266a0" + }, + { + "args": [ + { + "label": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 8 + }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 0 + } + }, + "name": "total_supply" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x2623dce7", + "ty": 0 + } + }, + "root_key": "0x2623dce7" + } + }, + "name": "balances" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xeca021b7", + "ty": 0 + } + }, + "root_key": "0xeca021b7" + } + }, + "name": "allowances" + } + ], + "name": "Erc20" + } + }, + "root_key": "0x00000000" + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 1, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 2 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 3 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "E", + "type": 3 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 2, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 3, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": [ + "ink_primitives", + "LangError" + ] + } + }, + { + "id": 4, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 0 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 3 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 3 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 5, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "AccountId" + ] + } + }, + { + "id": 6, + "type": { + "def": { + "array": { + "len": 32, + "type": 7 + } + } + } + }, + { + "id": 7, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 8, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 9 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 3 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 9 + }, + { + "name": "E", + "type": 3 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 9, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 2 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 10, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InsufficientBalance" + }, + { + "index": 1, + "name": "InsufficientAllowance" + } + ] + } + }, + "path": [ + "erc20", + "erc20", + "Error" + ] + } + }, + { + "id": 11, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 5 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 5 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 12, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "Hash" + ] + } + }, + { + "id": 13, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 14, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 15, + "type": { + "def": { + "variant": {} + }, + "path": [ + "ink_env", + "types", + "NoChainExtension" + ] + } + } + ], + "version": "4" +} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v4/erc20.wasm b/packages/api-contract/src/test/contracts/ink/v4/erc20.wasm new file mode 100644 index 0000000000000000000000000000000000000000..799afda9ce661ab9ce23f4622459a2d2289a93b5 GIT binary patch literal 21078 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 F|1WbE1VjJ; literal 0 HcmV?d00001 diff --git a/packages/api-contract/src/test/contracts/ink/v4/index.ts b/packages/api-contract/src/test/contracts/ink/v4/index.ts index abe6c64bfa33..b9ec4dbdf248 100644 --- a/packages/api-contract/src/test/contracts/ink/v4/index.ts +++ b/packages/api-contract/src/test/contracts/ink/v4/index.ts @@ -1,5 +1,7 @@ // Copyright 2017-2024 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 +export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; +export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; export { default as flipperContract } from './flipper.contract.json' assert { type: 'json' }; export { default as flipperMetadata } from './flipper.json' assert { type: 'json' }; diff --git a/packages/api-contract/src/test/contracts/ink/v5/erc20.contract.json b/packages/api-contract/src/test/contracts/ink/v5/erc20.contract.json index 37d7e5f88d3d..56f4b9e564a6 100644 --- a/packages/api-contract/src/test/contracts/ink/v5/erc20.contract.json +++ b/packages/api-contract/src/test/contracts/ink/v5/erc20.contract.json @@ -1,1026 +1 @@ -{ - "source": { - "hash": "0x37cb53e1aa5636a016d38d70a3f8ca2a533c4c6f9da07541f1ae7ce1ed01b5c2", - "language": "ink! 5.0.0-rc", - "compiler": "rustc 1.75.0", - "wasm": "0x0061736d01000000014d0d60027f7f0060037f7f7f0060037f7f7f017f60017f0060000060047f7f7f7f017f60027e7e0060047f7f7f7f0060047f7f7e7e0060037e7e7f0060037f7e7e006000017f60047f7f7e7e017f02b10109057365616c310b6765745f73746f726167650005057365616c3005696e7075740000057365616c300d6465706f7369745f6576656e740007057365616c320b7365745f73746f726167650005057365616c300b7365616c5f72657475726e0001057365616c300663616c6c65720000057365616c301176616c75655f7472616e736665727265640000057365616c300f686173685f626c616b65325f323536000103656e76066d656d6f72790201021003222102020202080000090a0001030103000000030100030b0001000604060000040c040616037f01418080040b7f0041c880050b7f0041d080050b0711020463616c6c0026066465706c6f7900280ad932212b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b6f01017f0240200020014d04402000210303402002450d02200320012d00003a0000200141016a2101200341016a2103200241016b21020c000b000b200141016b2101200041016b210303402002450d01200220036a200120026a2d00003a0000200241016b21020c000b000b20000b2501017f037f2002200346047f200005200020036a20013a0000200341016a21030c010b0b0b3f01027f0340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b9e0101037f230041106b22042400200442808001370208200441c8800436020441b7c380e57e200441046a2205100d20002005100e20012005100e024020042802082206200428020c2200490d00200428020421012004410036020c2004200620006b3602082004200020016a360204200220032005100f200428020c220620042802084b0d00200120002004280204200610031a200441106a24000f0b000b2601017f230041106b220224002002200036020c20012002410c6a41041014200241106a24000b0a0020012000412010140b2a01017f230041106b2203240020032001370308200320003703002002200341101014200341106a24000b980101047f230041106b22032400200342808001370208200341c8800436020441e7b98fb102200341046a2205100d20002005100e024020032802082204200328020c2200490d00200328020421062003410036020c2003200420006b3602082003200020066a360204200120022005100f200328020c220420032802084b0d00200620002003280204200410031a200341106a24000f0b000ba90101057f230041306b2202240002402000280204220420002802082203490d00200028020021052002410036020c2002200420036b22043602082002200320056a22053602042001200241046a2206100e200228020c220120022802084b0d0020062002280204200110122002410036022c20022004360228200220053602242006200241246a100e2003200228022c6a22012003490d0020002001360208200241306a24000f0b000bed0101077f230041406a22032400200341186a22044200370300200341106a22054200370300200341086a22064200370300200342003703000240200241214f0440200341386a22074200370300200341306a22084200370300200341286a220942003703002003420037032020012002200341206a1007200420072903003703002005200829030037030020062009290300370300200320032903203703000c010b20032001200210081a0b20002003290300370000200041186a200341186a290300370000200041106a200341106a290300370000200041086a200341086a290300370000200341406b24000bb40101077f230041306b2201240002402000280204220320002802082202490d00200028020021042001410036020c2001200320026b22033602082001200220046a2204360204200141003a0024200141046a2205200141246a220641011014200128020c220720012802084b0d0020052001280204200710122001410036022c200120033602282001200436022420052006100e20022002200128022c6a22024b0d0020002002360208200141306a24000f0b000b4801027f024002402000280208220320026a22042003490d00200420002802044b0d00200420036b2002470d01200028020020036a2001200210081a200020043602080f0b000b000b3e01027f024020002802082201200028020422024b2001200246720d00200028020020016a410c3a0000200141016a2201450d00200020013602080f0b000b5502027f017e230041206b22022400200241086a20011017200241186a29030021042002280208210320002002290310370308200041106a200437030020002003200128020472410047ad370300200241206a24000b5c02017f037e20012802042202411049047e4201052001200241106b36020420012001280200220141106a360200200141086a29000021032001290000210442000b21052000200437030820002005370300200041106a20033703000bb90102027f017e230041206b22032400420121040240200128020422024120490d002001200241206b36020420012001280200220241206a360200200341086a200110172003290308a70d00200341186a2903002104200041286a200329031037030020002002290000370008200041306a2004370300200041206a200241186a290000370000200041186a200241106a290000370000200041106a200241086a290000370000420021040b20002004370300200341206a24000bb00201057f230041306b2201240020014280800137020c200141c88004360208200141086a1015200141286a200141106a28020036020020012001290208370320200141146a2202200141206a41858004101a200041316a2104024020002d001004402002200041116a10110c010b200141146a10130b200141286a2001411c6a28020036020020012001290214370320024020042d00000440200141206a200041326a10110c010b200141206a10130b02402001280224220320012802282202490d0020012802202105200141003602282001200320026b3602242001200220056a360220200041106a200141206a2203101b20042003101b2000290300200041086a2903002003100f2001280228220020012802244b0d0020052002200128022020001002200141306a24000f0b000bd10101057f230041306b2203240002400240200204402001280204220520012802082204490d02200128020021062003410036020c2003200520046b22053602082003200420066a22063602042002200341046a2207100e200328020c220220032802084b0d0220072003280204200210122003410036022c20032005360228200320063602242007200341246a100e2004200328022c6a22022004490d02200120023602080c010b200110130b20002001290200370200200041086a200141086a280200360200200341306a24000f0b000b210020002d00004504402001410010250f0b200141011025200041016a2001100e0b6d01017f230041106b2201240020014180800136020c41c880042001410c6a1005200041c98004290000370001200041096a41d18004290000370000200041116a41d98004290000370000200041186a41e08004290000370000200041c880042d00003a0000200141106a24000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10062000290308210120002903002102200041206a2400410541042001200284501b0bda0102047f027e230041306b22022400200242808001370228200241c8800436022441e7b98fb102200241246a2203100d20012003100e024020022802282205200228022c2201490d00200228022421042002200520016b220536022420042001200120046a2201200310002104200520022802242203490d00027e0240024020040e0400030301030b2002200336022820022001360224200241086a200241246a10162002290308a70d0220022903102106200241186a2903000c010b42000b21072000200637030020002007370308200241306a24000f0b000be00102037f027e230041306b22032400200342808001370228200341c8800436022441b7c380e57e200341246a2204100d20012004100e20022004100e024020032802282205200328022c2201490d00200328022421022003200520016b220536022420022001200120026a2201200410002102200520032802242204490d00027e0240024020020e0400030301030b2003200436022820032001360224200341086a200341246a10162003290308a70d0220032903102106200341186a2903000c010b42000b21072000200637030020002007370308200341306a24000f0b000b4401027f41c8800441003a000041012103200141ff0171410247044041c9800441013a000041022103200121020b200341c880046a20023a00002000200341016a1024000b4c01017f230041106b22022400200241c8800436020441c8800441003a0000200242808081801037020820002001200241046a100f200228020c2202418180014f0440000b410020021024000b130041c880044181023b0100410141021024000b8e0101057f230041106b22022400200242808001370208200241c880043602044100200241046a2206100d024020022802082203200228020c2204490d00200228020421052002410036020c2002200320046b3602082002200420056a360204200020012006100f200228020c220320022802084b0d00200520042002280204200310031a200241106a24000f0b000b0d00200041c8800420011004000b2d01017f2000280208220220002802044904402000200241016a360208200028020020026a20013a00000f0b000ba91202087f047e23004190046b2200240002400240101d41ff01714105470d002000418080013602b80341c88004200041b8036a100120002802b8032202418180014f0d0020024104490d01200041cc80043602a8032000200241046b22053602ac0341cb80042d0000210141ca80042d0000210341c980042d00002104027f02400240024002400240024041c880042d00002206410b6b0e050508080801000b0240200641e8006b0e03040802000b2006418401460d02200641db0147200441e3004772200341f50047200141a8014772720d0741000c050b200441f50047200541204972200341da0047200141d6004772720d0620004190016a41d5800429000037030020004198016a41dd80042900003703002000419f016a41e48004290000370000200041cd80042900003703880141cc80042d0000210241010c040b2004200341164772200141de004720054120497272200241c4006b41604f720d05200041df036a41f48004290200370000200041e7036a41fc8004290200370000200041ef036a41848104290200370000200041c0036a41d58004290000370300200041c8036a41dd8004290000370300200041cf036a41e48004290000370000200041ec80042902003700d703200041cd80042900003703b80341cc80042d0000210220004188016a200041b8036a413f10081a41020c030b200441a10147200341dd004772200141a10147720d04200041b8036a200041a8036a101820002903b8034200520d04200041d6026a200041ce016a200041366a200041c0036a4130100841301008413010081a20004188016a200041d0026a413610081a41030c020b2004411247200341e6004772200141a00147720d03200041b8036a200041a8036a101820002903b8034200520d03200041d6026a200041ce016a200041366a200041c0036a4130100841301008413010081a20004188016a200041d0026a413610081a41040c010b2004413947200341ef0047722001411847200541204972720d02200241c4006b220241604f2002410f4d720d02200041d8026a41d48004290200370300200041e0026a41dc8004290200370300200041e8026a41e48004290200370300200041f8026a41f4800429020037030020004180036a41fc800429020037030020004188036a41848104290200370300200041cc80042902003703d002200041ec80042902003703f002419481042902002108418c8104290200210920004190026a2201200041d0026a41c00010081a200041ce016a200041366a200041be036a200141c000100841c000100841c00010081a20004188016a200041c8016a413f10081a20002000418a026a28000036009f03200020002800870236029c0341050b2101200041306a220441027220004188016a413f10081a200041f4006a200028009f0336000020004180016a20083703002000200028029c0336007120002009370378200020023a0031200020013a00302000428080013702bc03200041c880043602b8034100200041b8036a2205100d20002802bc03220620002802c0032202490d0020002802b80321032000200620026b22063602b80320032002200220036a220320051000200620002802b803220249722002411047200241104972720d0020044101722102200341086a290000210820002003290000220937038801200020083703900102400240024002400240024002400240200141016b0e050001040502030b230041406a22012400200141286a200241086a290000370200200141306a200241106a290000370200200141386a200241186a290000370200200120004188016a36021c20012002290000370220200141086a200141206a101e200129030821082000200141106a29030037030820002008370300200141406b24002000290300200041086a2903001021000b230041e0006b22012400200120004188016a36021c200141086a200141206a200241c0001008200141406b101f20012903082108200041106a2202200141106a29030037030820022008370300200141e0006a24002000290310200041186a2903001021000b200041c0036a200041386a41d00010082102200020004188016a3602b80320004180046a290300210920004188046a2903002108200041c8016a2201101c200041206a20022001101f41012103410121012000290320220b2009542204200041286a290300220a2008542008200a511b0d04410221012002200041e0036a20092008102741ff017122054102460d03200541004721010c040b200920081021000b200041c0036a200041386a413010082102200020004188016a3602b803200041e8036a2903002108200041e0036a2903002109200041c8016a2201101c20012002200920081027220241ff0171410246047f20002903880120004190016a290300102341000541010b20021020000b200041d8026a200041386a413010082102200020004188016a3602d00220004180036a2903002108200041f8026a290300210920004190026a2201101c2001200220092008100c200041e0016a200041a8026a290000370300200041d8016a200041a0026a290000370300200041d0016a20004198026a290000370300200041f0016a200041406b290300370300200041f8016a200041c8006a29030037030020004180026a200041d0006a29030037030020002000290090023703c801200020002903383703e801200041b8036a2203200041c8016a41c00010081a20004180046a22052008370300200020093703f80320004280800137029403200041c880043602900320004190036a1015200041b0036a220120004198036a28020036020020002000290290033703a8032000419c036a2204200041a8036a220241a68004101a2004200310112001200041a4036a2802003602002000200029029c033703a8032002200041d8036a2206101120002802ac03220720012802002201490d0220002802a8032104200041003602b0032000200720016b3602ac032000200120046a3602a80320032002100e20062002100e20002903f80320052903002002100f20002802b003220220002802ac034b0d022004200120002802a8032002100220002903880120004190016a2903001023410041021020000b2002200041c8016a200b20097d200a20087d2004ad7d100c20002903880120004190016a2903001023410021030b200320011020000b000b1022000bc80202037f037e23004180016b22042400200441186a2000101e0240200429031822082002542206200441206a290300220720035420032007511b4504402000200820027d200720037d2006ad7d1010200441086a2001101e2004290308220720027c220920075422052005ad200441106a290300220720037c7c220820075420072008511b4101460d012001200920081010200441396a2000290000370000200441c1006a200041086a290000370000200441c9006a200041106a290000370000200441d1006a200041186a290000370000200441da006a2001290000370100200441e2006a200141086a290000370100200441ea006a200141106a290000370100200441f2006a200141186a290000370100200441013a0038200441013a00592004200337033020042002370328200441286a1019410221050b20044180016a240020050f0b000bef0302067f027e23004190016b220024000240101d41ff01714105470d0020004180800136022841c88004200041286a2204100120002802282201418180014f0d00024020014104490d0041c880042d0000419b01470d0041c980042d000041ae01470d0041ca80042d0000419d01470d0041cb80042d000041de0047200141146b416f4b720d0041d48004290200210641cc80042902002107200041086a101c200041c4006a200041206a2900003702002000413c6a200041186a290000370200200041346a200041106a2900003702002000200029000837022c20004180800436022820004280800137028801200041c880043602840141e7b98fb10220004184016a2202100d2000412c6a2002100e2000280288012205200028028c012201490d0120002802840121032000410036028c012000200520016b360288012000200120036a36028401200720062002100f200028028c0122022000280288014b0d0120032001200028028401200210031a200041f2006a200041206a290000370100200041ea006a200041186a290000370100200041e2006a200041106a290000370100200041da006a20002900083701002000200637033020002007370328200041013a0059200041003a00382004101920072006102341c8800441003b0100410041021024000b1022000b000b0b4e0100418080040b46e7dc232601b5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb011a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d", - "build_info": { - "build_mode": "Release", - "cargo_contract_version": "4.0.0-rc.1", - "rust_toolchain": "stable-aarch64-apple-darwin", - "wasm_opt_settings": { - "keep_debug_symbols": false, - "optimization_passes": "Z" - } - } - }, - "contract": { - "name": "erc20", - "version": "5.0.0-rc", - "authors": [ - "Parity Technologies " - ] - }, - "image": null, - "spec": { - "constructors": [ - { - "args": [ - { - "label": "total_supply", - "type": { - "displayName": [ - "Balance" - ], - "type": 0 - } - } - ], - "default": false, - "docs": [ - "Creates a new ERC-20 contract with the specified initial supply." - ], - "label": "new", - "payable": false, - "returnType": { - "displayName": [ - "ink_primitives", - "ConstructorResult" - ], - "type": 14 - }, - "selector": "0x9bae9d5e" - } - ], - "docs": [], - "environment": { - "accountId": { - "displayName": [ - "AccountId" - ], - "type": 2 - }, - "balance": { - "displayName": [ - "Balance" - ], - "type": 0 - }, - "blockNumber": { - "displayName": [ - "BlockNumber" - ], - "type": 23 - }, - "chainExtension": { - "displayName": [ - "ChainExtension" - ], - "type": 24 - }, - "hash": { - "displayName": [ - "Hash" - ], - "type": 21 - }, - "maxEventTopics": 4, - "staticBufferSize": 16384, - "timestamp": { - "displayName": [ - "Timestamp" - ], - "type": 22 - } - }, - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "from", - "type": { - "displayName": [ - "Option" - ], - "type": 20 - } - }, - { - "docs": [], - "indexed": true, - "label": "to", - "type": { - "displayName": [ - "Option" - ], - "type": 20 - } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { - "displayName": [ - "Balance" - ], - "type": 0 - } - } - ], - "docs": [ - "Event emitted when a token transfer occurs." - ], - "label": "Transfer", - "module_path": "erc20::erc20", - "signature_topic": "0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "owner", - "type": { - "displayName": [ - "AccountId" - ], - "type": 2 - } - }, - { - "docs": [], - "indexed": true, - "label": "spender", - "type": { - "displayName": [ - "AccountId" - ], - "type": 2 - } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { - "displayName": [ - "Balance" - ], - "type": 0 - } - } - ], - "docs": [ - "Event emitted when an approval occurs that `spender` is allowed to withdraw", - "up to the amount of `value` tokens from `owner`." - ], - "label": "Approval", - "module_path": "erc20::erc20", - "signature_topic": "0x1a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d" - } - ], - "lang_error": { - "displayName": [ - "ink", - "LangError" - ], - "type": 15 - }, - "messages": [ - { - "args": [], - "default": false, - "docs": [ - " Returns the total token supply." - ], - "label": "total_supply", - "mutates": false, - "payable": false, - "returnType": { - "displayName": [ - "ink", - "MessageResult" - ], - "type": 16 - }, - "selector": "0xdb6375a8" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": [ - "AccountId" - ], - "type": 2 - } - } - ], - "default": false, - "docs": [ - " Returns the account balance for the specified `owner`.", - "", - " Returns `0` if the account is non-existent." - ], - "label": "balance_of", - "mutates": false, - "payable": false, - "returnType": { - "displayName": [ - "ink", - "MessageResult" - ], - "type": 16 - }, - "selector": "0x0f755a56" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": [ - "AccountId" - ], - "type": 2 - } - }, - { - "label": "spender", - "type": { - "displayName": [ - "AccountId" - ], - "type": 2 - } - } - ], - "default": false, - "docs": [ - " Returns the amount which `spender` is still allowed to withdraw from `owner`.", - "", - " Returns `0` if no allowance has been set." - ], - "label": "allowance", - "mutates": false, - "payable": false, - "returnType": { - "displayName": [ - "ink", - "MessageResult" - ], - "type": 16 - }, - "selector": "0x6a00165e" - }, - { - "args": [ - { - "label": "to", - "type": { - "displayName": [ - "AccountId" - ], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": [ - "Balance" - ], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Transfers `value` amount of tokens from the caller's account to account `to`.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the caller's account balance." - ], - "label": "transfer", - "mutates": true, - "payable": false, - "returnType": { - "displayName": [ - "ink", - "MessageResult" - ], - "type": 17 - }, - "selector": "0x84a15da1" - }, - { - "args": [ - { - "label": "spender", - "type": { - "displayName": [ - "AccountId" - ], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": [ - "Balance" - ], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Allows `spender` to withdraw from the caller's account multiple times, up to", - " the `value` amount.", - "", - " If this function is called again it overwrites the current allowance with", - " `value`.", - "", - " An `Approval` event is emitted." - ], - "label": "approve", - "mutates": true, - "payable": false, - "returnType": { - "displayName": [ - "ink", - "MessageResult" - ], - "type": 17 - }, - "selector": "0x681266a0" - }, - { - "args": [ - { - "label": "from", - "type": { - "displayName": [ - "AccountId" - ], - "type": 2 - } - }, - { - "label": "to", - "type": { - "displayName": [ - "AccountId" - ], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": [ - "Balance" - ], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Transfers `value` tokens on the behalf of `from` to the account `to`.", - "", - " This can be used to allow a contract to transfer tokens on ones behalf and/or", - " to charge fees in sub-currencies, for example.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientAllowance` error if there are not enough tokens allowed", - " for the caller to withdraw from `from`.", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the account balance of `from`." - ], - "label": "transfer_from", - "mutates": true, - "payable": false, - "returnType": { - "displayName": [ - "ink", - "MessageResult" - ], - "type": 17 - }, - "selector": "0x0b396f18" - } - ] - }, - "storage": { - "root": { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 0 - } - }, - "name": "total_supply" - }, - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0xe7dc2326", - "ty": 0 - } - }, - "root_key": "0xe7dc2326", - "ty": 1 - } - }, - "name": "balances" - }, - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0xb721a0ec", - "ty": 0 - } - }, - "root_key": "0xb721a0ec", - "ty": 9 - } - }, - "name": "allowances" - } - ], - "name": "Erc20" - } - }, - "root_key": "0x00000000", - "ty": 13 - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "primitive": "u128" - } - } - }, - { - "id": 1, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "K", - "type": 2 - }, - { - "name": "V", - "type": 0 - }, - { - "name": "KeyType", - "type": 5 - } - ], - "path": [ - "ink_storage", - "lazy", - "mapping", - "Mapping" - ] - } - }, - { - "id": 2, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 3, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": [ - "ink_primitives", - "types", - "AccountId" - ] - } - }, - { - "id": 3, - "type": { - "def": { - "array": { - "len": 32, - "type": 4 - } - } - } - }, - { - "id": 4, - "type": { - "def": { - "primitive": "u8" - } - } - }, - { - "id": 5, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "L", - "type": 6 - }, - { - "name": "R", - "type": 7 - } - ], - "path": [ - "ink_storage_traits", - "impls", - "ResolverKey" - ] - } - }, - { - "id": 6, - "type": { - "def": { - "composite": {} - }, - "path": [ - "ink_storage_traits", - "impls", - "AutoKey" - ] - } - }, - { - "id": 7, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "ParentKey", - "type": 8 - } - ], - "path": [ - "ink_storage_traits", - "impls", - "ManualKey" - ] - } - }, - { - "id": 8, - "type": { - "def": { - "tuple": [] - } - } - }, - { - "id": 9, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "K", - "type": 10 - }, - { - "name": "V", - "type": 0 - }, - { - "name": "KeyType", - "type": 11 - } - ], - "path": [ - "ink_storage", - "lazy", - "mapping", - "Mapping" - ] - } - }, - { - "id": 10, - "type": { - "def": { - "tuple": [ - 2, - 2 - ] - } - } - }, - { - "id": 11, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "L", - "type": 6 - }, - { - "name": "R", - "type": 12 - } - ], - "path": [ - "ink_storage_traits", - "impls", - "ResolverKey" - ] - } - }, - { - "id": 12, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "ParentKey", - "type": 8 - } - ], - "path": [ - "ink_storage_traits", - "impls", - "ManualKey" - ] - } - }, - { - "id": 13, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "total_supply", - "type": 0, - "typeName": ",>>::Type" - }, - { - "name": "balances", - "type": 1, - "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<639884519u32, ()\n>,>>::Type" - }, - { - "name": "allowances", - "type": 9, - "typeName": " as::ink::storage::traits\n::AutoStorableHint<::ink::storage::traits::ManualKey<\n3969917367u32, ()>,>>::Type" - } - ] - } - }, - "path": [ - "erc20", - "erc20", - "Erc20" - ] - } - }, - { - "id": 14, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 15 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 8 - }, - { - "name": "E", - "type": 15 - } - ], - "path": [ - "Result" - ] - } - }, - { - "id": 15, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 1, - "name": "CouldNotReadInput" - } - ] - } - }, - "path": [ - "ink_primitives", - "LangError" - ] - } - }, - { - "id": 16, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 0 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 15 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 0 - }, - { - "name": "E", - "type": 15 - } - ], - "path": [ - "Result" - ] - } - }, - { - "id": 17, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 18 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 15 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 18 - }, - { - "name": "E", - "type": 15 - } - ], - "path": [ - "Result" - ] - } - }, - { - "id": 18, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 19 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 8 - }, - { - "name": "E", - "type": 19 - } - ], - "path": [ - "Result" - ] - } - }, - { - "id": 19, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "InsufficientBalance" - }, - { - "index": 1, - "name": "InsufficientAllowance" - } - ] - } - }, - "path": [ - "erc20", - "erc20", - "Error" - ] - } - }, - { - "id": 20, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "None" - }, - { - "fields": [ - { - "type": 2 - } - ], - "index": 1, - "name": "Some" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 2 - } - ], - "path": [ - "Option" - ] - } - }, - { - "id": 21, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 3, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": [ - "ink_primitives", - "types", - "Hash" - ] - } - }, - { - "id": 22, - "type": { - "def": { - "primitive": "u64" - } - } - }, - { - "id": 23, - "type": { - "def": { - "primitive": "u32" - } - } - }, - { - "id": 24, - "type": { - "def": { - "variant": {} - }, - "path": [ - "ink_env", - "types", - "NoChainExtension" - ] - } - } - ], - "version": "4" -} +{"source":{"hash":"0x656ec6137638ba8ad1477e96dfe91eb90ca625dfbe543057868ea521fd1b73fe","language":"ink! 5.0.0-rc.1","compiler":"rustc 1.75.0","wasm":"0x0061736d0100000001691160037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060017f0060047f7f7f7f0060047f7f7f7f017f60057f7f7f7f7f0060000060017f017f60027e7e0060037f7e7e0060037e7e7f0060047f7f7e7e006000017f60057f7f7f7f7f017f60047f7f7e7e017f02c7010a057365616c310b6765745f73746f726167650006057365616c3005696e7075740002057365616c300d6465706f7369745f6576656e740005057365616c320b7365745f73746f726167650006057365616c300d64656275675f6d6573736167650001057365616c300b7365616c5f72657475726e0003057365616c300663616c6c65720002057365616c301176616c75655f7472616e736665727265640002057365616c300f686173685f626c616b65325f323536000303656e76066d656d6f7279020102100356550007030b0202030c0d0202030504040307040202000202020403020204070e01010203040903030102010f080a020a0208100408030502040802090100000101010402010107060506020501010300050101010205040501700116160608017f01418080040b0711020463616c6c0039066465706c6f79003c091b010041010b15555432302829485b492c2c282c4647444b2c57595a0aac7e552b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b2200200120034d044020002001360204200020023602000f0b200120032004100b000b0e0020002001200241d49604105d0bb50102047f017e230041306b2203240020034100360220200342808001370228200341d2a60436022441e7b98fb102200341246a2204100d20002004100e20032003290224370218200341106a200341186a2205200328022c100f2003280214210020032802102106200329021821072003410036022c20032007370224200120022004101020032003290224370218200341086a2005200328022c100f200620002003280208200328020c10031a200341306a24000b2601017f230041106b220224002002200036020c20012002410c6a41041018200241106a24000b0a0020012000412010180b4501017f2002200128020422034b044041e4a1044123419ca404102f000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b2a01017f230041106b2203240020032001370308200320003703002002200341101018200341106a24000bbb0102037f017e230041306b2204240020044100360220200442808001370228200441d2a60436022441b7c380e57e200441246a2205100d20002005100e20012005100e20042004290224370218200441106a200441186a2206200428022c100f2004280214210020042802102101200429021821072004410036022c20042007370224200220032005101020042004290224370218200441086a2006200428022c100f200120002004280208200428020c10031a200441306a24000bb20102037f017e230041d0006b22022400200241186a220420001013200229021821052002410036022c200220053702242001200241246a2203100e20022002290224370218200241106a2004200228022c100f2003200228021020022802141014200241086a200028020020002802042000280208220110152002410036024c200220022903083702442003200241c4006a100e20012001200228024c6a22014d101620002001360208200241d0006a24000b3f01027f200128020422032001280208220249044020022003418ca404102e000b200041003602082000200320026b3602042000200128020020026a3602000b8f0201077f230041d0006b22032400200341286a22044200370300200341206a22054200370300200341186a22064200370300200342003703100240200241214f0440200341c8006a22074200370300200341406b22084200370300200341386a220942003703002003420037033020012002200341306a1008200420072903003703002005200829030037030020062009290300370300200320032903303703100c010b200341086a2002200341106a412041ac8104100a2003280208200328020c2001200241bc810410190b20002003290310370000200041186a200341286a290300370000200041106a200341206a290300370000200041086a200341186a290300370000200341d0006a24000b2900200220034904402003200241fc8504102e000b2000200220036b3602042000200120036a3602000b150020004504404187a204412b418c8604102f000b0bbd0102047f017e230041d0006b22012400200141186a220220001013200129021821052001410036022c20012005370224200141003a0044200141246a2203200141c4006a22044101101820012001290224370218200141106a2002200128022c100f2003200128021020012802141014200141086a200028020020002802042000280208220210152001410036024c2001200129030837024420032004100e20022002200128024c6a22024d101620002002360208200141d0006a24000bd30101057f20002802042105200028020021062000280208220420026a220320044f220741bca304105c0240200320044f0440200320054b0d01200420066a200320046b2001200241dca3041019200741eca304105c200020033602080f0b230041306b220024002000200336020420002004360200200041146a42023702002000412c6a41073602002000410236020c200041889704360208200041073602242000200041206a3602102000200041046a36022820002000360220200041086a41cca3041031000b2003200541cca304100b000b7b002001200346044020002002200110091a0f0b230041306b220024002000200336020420002001360200200041146a42023702002000412c6a41073602002000410336020c200041dc9804360208200041073602242000200041206a360210200020003602282000200041046a360220200041086a20041031000b5c01027f230041206b22012400200141086a200028020020002802042000280208220210152001410036021c20012001290308370214200141146a410c101b20022002200128021c6a22024d101620002002360208200141206a24000b970101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a42023702002000412c6a41073602002000410236020c200041d89004360208200041073602242000200041206a360210200020003602282000200041046a360220200041086a41fca3041031000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101d45044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b3d01027f20002802042203200249220445044020012002200028020022012002418ca60410192000200320026b3602042000200120026a3602000b20040b5502027f017e230041206b22022400200241086a2001101f200241186a29030021042002280208210320002002290310370308200041106a200437030020002003200128020472410047ad370300200241206a24000b5f02017f037e230041106b2202240020024200370308200242003703000240200120024110101d45044020022903082104200229030021050c010b420121030b2000200537030820002003370300200041106a2004370300200241106a24000ba90102017f027e230041406a220224002002411f6a2001101c0240024020022d001f0d0020022001101f2002290300a70d00200241106a2903002103200229030821042000200229002037000820004200370300200041286a2004370300200041306a2003370300200041206a200241386a290000370000200041186a200241306a290000370000200041106a200241286a2900003700000c010b200042013703000b200241406b24000be90202077f017e230041406a22012400200142808001370228200141d2a604360224200141246a101a200141186a2001412c6a28020036020020012001290224370310200141306a200141106a41bd87041022200041316a2105024020002d00100440200141306a200041116a10120c010b200141306a10170b200041106a2106200141186a200141386a28020036020020012001290230370310024020052d00000440200141106a200041326a10120c010b200141106a10170b200141386a2202200141186a220328020036020020012001290310370330200141106a2204200141306a2207102320022003280200360200200120012902102208370330200141206a2802002102200128021c210320014100360218200120083702102006200410242005200410242000290300200041086a2903002004101020012001290210370330200141086a20072001280218100f200320022001280208200128020c1002200141406b24000bda0102037f017e230041d0006b22032400024020020440200341186a220520011013200329021821062003410036022c200320063702242002200341246a2204100e20032003290224370218200341106a2005200328022c100f2004200328021020032802141014200341086a200128020020012802042001280208220210152003410036024c200320032903083702442004200341c4006a100e20022002200328024c6a22024d1016200120023602080c010b200110170b20002001290200370200200041086a200141086a280200360200200341d0006a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200100f20022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b210020002d000045044020014100101b0f0b20014101101b200041016a2001100e0bb20101027f230041306b2201240020014180800136020441d2a604200141046a2202100620014180800136022c200141d2a6043602282002200141286a101c20012d00040440200141103a000441e7840441c100200141046a41d0820441a885041026000b2000200141066a290000370001200041096a2001410e6a290000370000200041116a200141166a290000370000200041186a2001411d6a290000370000200020012d00053a0000200141306a24000b7c01017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a42023702002005413c6a41013602002005410236021c200541ec9004360218200541023602342005200541306a3602202005200541106a3602382005200541086a360230200541186a20041031000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10072000290308210120002903002102200041206a2400410541042001200284501b0b1b00200128021441d489044105200141186a28020028020c1100000b3400200128021420002802002d0000410274220041c088046a2802002000418088046a280200200141186a28020028020c1100000bff0202057f027e230041d0006b220224002002410036023020024280800137023c200241d2a60436023841e7b98fb102200241386a2204100d20012004100e20022002290238370228200241206a200241286a2002280240100f2002280224210320022802202105200228022821012002200228022c2206360238200520032001200410002103200241186a20022802382001200641c08204100a027e024002400240024020030e0400010103010b200228021821012002200228021c36023c200220013602382002200241386a101e2002290300a70d0120022903082107200241106a2903000c030b200241c4006a42003702002002410136023c200241e48504360238200241e4a104360240200241386a41ec85041031000b200241103a0037200241c4006a42013702002002410136023c2002419481043602382002410336022c2002200241286a3602402002200241376a360228200241386a419c81041031000b42000b21082000200737030020002008370308200241d0006a24000b850302047f027e230041d0006b220324002003410036023020034280800137023c200341d2a60436023841b7c380e57e200341386a2204100d20012004100e20022004100e20032003290238370228200341206a200341286a2003280240100f2003280224210220032802202105200328022821012003200328022c2206360238200520022001200410002102200341186a20032802382001200641c08204100a027e024002400240024020020e0400010103010b200328021821012003200328021c36023c200320013602382003200341386a101e2003290300a70d0120032903082107200341106a2903000c030b200341c4006a42003702002003410136023c200341e48504360238200341e4a104360240200341386a41ec85041031000b200341103a0037200341c4006a42013702002003410136023c2003419481043602382003410336022c2003200341286a3602402003200341376a360228200341386a419c81041031000b42000b21082000200737030020002008370308200341d0006a24000b0300010b1b002000418180014f044020004180800141b88504100b000b20000b0e0020002001200241b49604105d0b4601017f230041206b220324002003410c6a420037020020034101360204200341e4a1043602082003200136021c200320003602182003200341186a360200200320021031000b840101017f230041306b22022400200241146a42013702002002410136020c200241b09f0436020820024102360224200220002d00004102742200419ca6046a28020036022c2002200041b0a6046a2802003602282002200241206a3602102002200241286a36022020012802142001280218200241086a10452100200241306a240020000b3c01017f230041206b22022400200241013b011c2002200136021820022000360214200241889004360210200241e4a10436020c2002410c6a104a000b8f0101027f230041106b22022400027f024002400240410220002d000041106b41ff01712203200341024f1b41016b0e020102000b20022000360208200141e082044106200241086a410510330c020b200128021441e68204410e200141186a28020028020c1100000c010b2002200036020c200141f48204410b2002410c6a410610330b2100200241106a240020000ba20201047f230041406a220524004101210702402000280214220620012002200041186a280200220228020c22011100000d000240200028021c22084104714504402006419a9104410120011100000d022003200020041101000d0220002802142106200028021828020c21010c010b2006419b9104410220011100000d01200541013a001b200541346a41fc9004360200200520023602102005200636020c20052008360238200520002d00203a003c2005200028021036022c200520002902083702242005200029020037021c20052005411b6a36021420052005410c6a36023020032005411c6a20041101000d012005280230419891044102200528023428020c1100000d010b200641ec8f044101200111000021070b200541406b240020070b3c01027f230041106b22002400200042808001370208200041d2a604360204200041046a22014101101b20014101101b4101200028020c102d1038000b3e01027f230041106b22022400200242808001370208200241d2a604360204200241046a22034100101b20002001200310104100200228020c102d1038000b5101027f230041106b22022400200242808001370208200241d2a604360204200241046a22034100101b2003200141ff0171410247047f20034101101b20010541000b101b2000200228020c102d1038000bab0102057f017e230041306b2202240020024100360220200242808001370228200241d2a6043602244100200241246a2203100d20022002290224370218200241106a200241186a2204200228022c100f2002280214210520022802102106200229021821072002410036022c20022007370224200020012003101020022002290224370218200241086a2004200228022c100f200620052002280208200228020c10031a200241306a24000b0d00200041d2a60420011005000b8a1602087f047e230041a0056b22002400024002400240102741ff017141054604402000418080013602c80441d2a604200041c8046a2201100120004180016a20002802c80441d2a6044180800141c08204100a20002000290380013702bc04200041003602c804200041bc046a20014104101d0d0220002d00cb04210220002d00ca04210320002d00c9042101027f02400240024002400240024020002d00c8042204410b6b0e050509090901000b0240200441e8006b0e03040902000b2004418401460d02200441db0147200141ff017141e3004772200341f50047200241a8014772720d0841000c050b200141ff017141f50047200341da004772200241d60047720d07200041c8046a200041bc046a101c20002d00c8040d07200041f0016a200041d2046a290000370300200041f8016a200041da046a290000370300200041ff016a200041e1046a2900003700002000200041ca046a2900003703e80120002d00c904210141010c040b200141ff0171200341164772200241de0047720d06200041a8026a200041bc046a101c20002d00a8020d0620004188016a200041bc046a101c20002d0088010d06200041ff046a200041a1016a290000370000200041f7046a20004199016a290000370000200041ef046a20004191016a290000370000200041d0046a200041b2026a290000370300200041d8046a200041ba026a290000370300200041df046a200041c1026a29000037000020002000290089013700e7042000200041aa026a2900003703c80420002d00a9022101200041e8016a200041c8046a413f10091a41020c030b200141ff017141a10147200341dd004772200241a10147720d05200041c8046a200041bc046a102020002903c8044200520d05200041b6036a200041ae026a2000418e016a200041d0046a4130100941301009413010091a200041e8016a200041b0036a413610091a41030c020b200141ff0171411247200341e6004772200241a00147720d04200041c8046a200041bc046a102020002903c8044200520d04200041b6036a200041ae026a2000418e016a200041d0046a4130100941301009413010091a200041e8016a200041b0036a413610091a41040c010b200141ff0171413947200341ef0047722002411847720d03200041f0036a200041bc046a101c20002d00f0030d0320004198046a200041bc046a101c20002d0098040d03200041e8006a200041bc046a101f2000290368a70d03200041f8006a290300210820002903702109200041c8036a200041f1036a220141186a290000370300200041c0036a200141106a290000370300200041b8036a200141086a290000370300200041d8036a200041a1046a290000370300200041e0036a200041a9046a290000370300200041e8036a200041b1046a29000037030020002000290099043703d003200020012900003703b003200041f0026a2202200041b0036a41c00010091a200041ae026a2000418e016a200041ce046a200241c000100941c000100941c00010091a200041e8016a200041a8026a413f10091a2000200041ea026a2800003600e301200020002800e7023602e00141050b210220004188016a410272200041e8016a413f10091a200041cc016a20002800e301360000200041d8016a2008370300200020002802e0013600c901200020093703d001200020013a008901200020023a008801200041003602b0022000428080013702cc04200041d2a6043602c8044100200041c8046a2203100d200020002902c8043702a802200041e0006a200041a8026a20002802d004100f200028026421042000280260210520002802a8022101200020002802ac0222063602c804200520042001200310002103200041d8006a20002802c8042001200641c08204100a02400240024020030e0400040401040b200028025821012000200028025c3602cc04200020013602c804200041406b200041c8046a101f2000290340a745044020002802cc04450d020b200041d4046a4200370200200041013602cc04200041a487043602c8040c050b200041d4046a4200370200200041013602cc04200041f486043602c8040c040b20004188016a4101722101200041d0006a290300210820002000290348220937039804200020083703a00402400240024002400240024002400240200241016b0e050001040502030b230041406a22022400200241286a200141086a290000370200200241306a200141106a290000370200200241386a200141186a290000370200200220004198046a36021c20022001290000370220200241086a200241206a102a20022903082108200041086a2201200241106a29030037030820012008370300200241406b24002000290308200041106a2903001035000b230041e0006b22022400200220004198046a36021c200241086a200241206a200141c0001009200241406b102b20022903082108200041186a2201200241106a29030037030820012008370300200241e0006a24002000290318200041206a2903001035000b200041d0046a20004190016a41d00010092101200020004198046a3602c80420004190056a290300210920004198056a2903002108200041a8026a22021025200041306a20012002102b41012103410121022000290330220b2009542204200041386a290300220a2008542008200a511b0d04410221022001200041f0046a20092008103a41ff017122054102460d03200541004721020c040b200920081035000b200041d0046a20004190016a413010092101200020004198046a3602c804200041f8046a2903002108200041f0046a2903002109200041a8026a220210252002200120092008103a220141ff0171410246047f200029039804200041a0046a290300103741000541010b20011036000b200041b8036a20004190016a413010092101200020004198046a3602b003200041e0036a2903002108200041d8036a2903002109200041f0026a2202102520022001200920081011200041c0026a20004188036a290000370300200041b8026a20004180036a290000370300200041b0026a200041f8026a290000370300200041d0026a20004198016a290300370300200041d8026a200041a0016a290300370300200041e0026a200041a8016a290300370300200020002900f0023703a80220002000290390013703c802200041c8046a2204200041a8026a41c00010091a20004190056a2206200837030020002009370388052000428080013702c004200041d2a6043602bc04200041bc046a101a200041f0016a2202200041c4046a280200360200200020002902bc043703e801200041f0036a2203200041e8016a220141de870410222003200410122002200041f8036a2205280200360200200020002902f0033703e8012001200041e8046a2207101220052002280200360200200020002903e8013703f00320012003102320052002280200360200200020002902e80122083703f003200041f8016a280200210220002802f4012105200041003602f001200020083702e80120042001100e20072001100e200029038805200629030020011010200020002902e8013703f003200041286a200320002802f001100f200520022000280228200028022c1002200029039804200041a0046a2903001037410041021036000b2001200041a8026a200b20097d200a20087d2004ad7d1011200029039804200041a0046a2903001037410021030b200320021036000b200041043a00c804200041c8046a103b000b200041d4046a4200370200200041013602cc04200041e485043602c804200041e4a1043602d004200041c8046a41ec85041031000b1034000b200041e4a1043602d004200041c8046a41cc86041031000bd40202037f037e23004180016b22042400200441186a2000102a0240200429031822082002542206200441206a290300220720035420032007511b4504402000200820027d200720037d2006ad7d100c200441086a2001102a2004290308220720027c220920075422052005ad200441106a290300220720037c7c220820075420072008511b4101460d01200120092008100c200441396a2000290000370000200441c1006a200041086a290000370000200441c9006a200041106a290000370000200441d1006a200041186a290000370000200441da006a2001290000370100200441e2006a200141086a290000370100200441ea006a200141106a290000370100200441f2006a200141186a290000370100200441013a0038200441013a00592004200337033020042002370328200441286a1021410221050b20044180016a240020050f0b4187a204412b41ac8704102f000b4801017f230041206b220124002001410c6a420137020020014101360204200141b09f043602002001410436021c200120003602182001200141186a360208200141cc86041031000bf40402087f037e230041c0016b2200240002401027220141ff0171410546044020004180800136025041d2a604200041d0006a22011001200041286a200028025041d2a6044180800141c08204100a200020002903283702502000410036023002402001200041306a4104101d0d0020002d0030419b01470d0020002d003141ae01470d0020002d0032419d01470d0020002d003341de00470d00200041106a200041d0006a101f2000290310a7450d020b1034000b200020013a0050200041d0006a103b000b200041206a290300210820002903182109200041306a1025200041ec006a200041c8006a2202290000370200200041e4006a200041406b2203290000370200200041dc006a200041386a220429000037020020002000290030370254200041f08004360250200041003602b0012000428080013702b801200041d2a6043602b40141e7b98fb102200041b4016a2201100d200041d4006a2001100e200020002902b4013702a801200041086a200041a8016a220520002802bc01100f200028020c21062000280208210720002902a801210a200041003602bc012000200a3702b4012009200820011010200020002902b4013702a8012000200520002802bc01100f200720062000280200200028020410031a2000419a016a200229000037010020004192016a20032900003701002000418a016a200429000037010020004182016a20002900303701002000200837035820002009370350200041013a008101200041003a0060200041d0006a1021200920081037230041106b22002400200042808001370208200041d2a604360204200041046a22014100101b20014100101b4100200028020c102d1038000b7701027f230041106b2204240020022000280204200028020822036b4b0440200441086a200020032002103e2004280208200428020c103f200028020821030b200028020020036a2001200210091a2003200220036a22014b044041808904411c418c8f04102f000b20002001360208200441106a24000bc00301057f230041206b220424000240027f4100200220036a22032002490d001a200128020422024100480d01410820024101742206200320032006491b2203200341084d1b2203417f73411f76210702402002450440200441003602180c010b2004200236021c20044101360218200420012802003602140b200441146a2105230041106b22022400200441086a2206027f02402007044020034100480d01027f20052802040440200541086a2802002207450440200241086a2003104220022802082105200228020c0c020b200528020021080240200310432205450440410021050c010b20052008200710091a0b20030c010b2002200310422002280200210520022802040b21072005044020062005360204200641086a200736020041000c030b20064101360204200641086a200336020041010c020b20064100360204200641086a200336020041010c010b2006410036020441010b360200200241106a24002004280208450440200428020c210220012003360204200120023602004181808080780c010b200441106a2802002103200428020c0b21012000200336020420002001360200200441206a24000f0b41a08904412141e88a04102f000b1f00024020004181808080784704402000450d0120011040000b0f0b1041000b860101017f230041306b220124002001200036020c2001411c6a420137020020014102360214200141b88c043602102001410736022c2001200141286a36021820012001410c6a360228230041206b22002400200041003b011c200041c88c043602182000200141106a360214200041889004360210200041e4a10436020c2000410c6a104a000b3c01017f230041206b22002400200041146a42003702002000410136020c2000418c8b04360208200041e4a104360210200041086a41948b041031000b2001017f41d2a6052d00001a20011043210220002001360204200020023602000be70101027f024002400240027f41c4a6042d0000044041c8a6042802000c010b3f002202418080044f0d0141c8a60441e0a60536020041c4a60441013a000041cca604200241107436020041e0a6050b2101027f4100200020016a22022001490d001a41cca6042802002002490440200041ffff036a220241107640002201417f460d042001418080044f0d032001411074220120024180807c716a22022001490d0441cca60420023602004100200020016a22022001490d011a0b41c8a604200236020020010b0f0b41b0a1044121419ca104102f000b41b0a104412141d4a104102f000b41000b0c00200041dc8904200110450bfc0301067f230041406a22032400200341346a2001360200200341033a003c2003412036022c2003410036023820032000360230200341003602242003410036021c027f02400240200228021022014504402002410c6a28020022004103742106200041ffffffff017121072002280200210820022802082101034020042006460d02200420086a220041046a28020022050440200328023020002802002005200328023428020c1100000d040b200441086a21042001280200210020012802042105200141086a210120002003411c6a2005110100450d000b0c020b200241146a28020022044105742100200441ffffff3f7121072002280208210620022802002208210403402000450d01200441046a28020022050440200328023020042802002005200328023428020c1100000d030b2003200128021036022c200320012d001c3a003c20032001280218360238200341106a2006200141086a10562003200329031037021c200341086a20062001105620032003290308370224200441086a2104200041206b210020012802142105200141206a2101200620054103746a22052802002003411c6a2005280204110100450d000b0c010b200228020420074b04402003280230200820074103746a22002802002000280204200328023428020c1100000d010b41000c010b41010b2101200341406b240020010b0c00200020012002103d41000bd10201037f230041106b220224000240024020002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280204460440230041106b22042400200441086a200020034101103e2004280208200428020c103f200441106a2400200028020821030b200028020020036a20013a0000200341016a2201450d04200020013602080c030b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b103d0b200241106a240041000f0b41808904411c41fc8e04102f000bd606020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e034020004104490d09200341196a20006a220241046b200e4290ce0080220d42f0b1037e200e7ca7220441ffff037141e4006e2206410174418d92046a2f00003b0000200241026b2006419c7f6c20046a41ffff0371410174418d92046a2f00003b0000200041046b2100200e42ffc1d72f562102200d210e20020d000b200da7220241e3004d0d02200041024f0d010c080b41272100200241e3004d0d020b200041026b2200200341196a6a200da7220441ffff037141e4006e2202419c7f6c20046a41ffff0371410174418d92046a2f00003b00000b2002410a4f044020004102490d060c040b20000d010c050b2002410a4f0d020b200041016b2200200341196a6a200241306a3a00000c020b000b200041026b2200200341196a6a2002410174418d92046a2f00003b00000b02400240200041274d0440412820006b412720006b2206200128021c220541017122071b2102410021042005410471044041e4a1042104200241e4a10441e4a104104c20026a22024b0d020b412b418080c40020071b2107200341196a20006a2108200128020045044041012100200128021422022001280218220120072004104f0d03200220082006200128020c11000021000c030b2002200128020422094f044041012100200128021422022001280218220120072004104f0d03200220082006200128020c11000021000c030b200541087104402001280210210b2001413036021020012d0020210c41012100200141013a0020200128021422052001280218220a20072004104f0d03200341106a2001200920026b4101105020032802102202418080c400460d0320032802142104200520082006200a28020c1100000d03200220042005200a10510d032001200c3a00202001200b360210410021000c030b41012100200341086a2001200920026b4101105020032802082205418080c400460d02200328020c2109200128021422022001280218220120072004104f0d02200220082006200128020c1100000d022005200920022001105121000c020b0c020b41d08f04411c41c89404102f000b200341406b240020000f0b41a08f04412141a09f04102f000b0e0020002802001a03400c000b000bc20201047f230041406a220124002001200036020c2001411c6a420137020020014102360214200141b4a2043602102001410836022c2001200141286a36021820012001410c6a360228410021000240024002400240034020002000200241037441b8a2046a2802006a22004b0d014101210220032104410121032004450d000b20004101744100200041104e1b2200044020004100480d0220012000104220012802002202450d030b200141003602382001200036023420012002360230200141306a200141106a10440d032001280230210020012802382103024041d0a6042d000045044041d1a6042d00004101710d010b200020031004410947044041d0a60441013a00000b41d1a60441013a00000b000b41808904411c41909f04102f000b1041000b20001040000b41d88c0441332001413f6a41c4890441f88d041026000b2000200042b1a1a2be8cd0b08931370308200042b2c98bdc9db884a6203703000b8e04010a7f230041106b220224000240200120006b220141104f04402000200041036a417c71220620006b2200104d22042006200120006b2200417c716a2000410371104d6a220320044f0440200041027621050240024003402005450d0520022006200541c0012005200541c0014f1b418c9804104e200228020c21052002280208210620022002280200200228020422002000417c7141f89904104e200228020c210820022802082107024020022802042200450440410021000c010b2002280200220420004102746a21094100210003402004220a41106a21044100210102400340200020002001200a6a280200220b417f73410776200b410676724181828408716a22004d0440200141046a22014110470d010c020b0b41d08f04411c41b89a04102f000b20042009470d000b0b20032003200041087641ff81fc0771200041ff81fc07716a418180046c4110766a22034b0d012008450d000b200841027421014100210003402000200020072802002204417f734107762004410676724181828408716a22004b0d02200741046a2107200141046b22010d000b20032003200041087641ff81fc0771200041ff81fc07716a418180046c4110766a22034d0d0441d08f04411c41989a04102f000b41d08f04411c41889a04102f000b41d08f04411c41a89a04102f000b41d08f04411c41e89904102f000b20002001104d21030b200241106a240020030b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41d08f04411c41909f04102f000b3d002002200349044041e4a10441232004102f000b20002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080b39000240027f2002418080c40047044041012000200220012802101101000d011a0b20030d0141000b0f0b200020034100200128020c1100000bb20101027f024002400240024020012d0020220441016b0e03010200030b200341ff01710d00410021040c020b20022104410021020c010b200241016a2203044020024101762104200341017621020c010b41d08f04411c41d89404102f000b200441016a2104200141186a2802002105200128021021032001280214210102400340200441016b2204450d01200120032005280210110100450d000b418080c40021030b20002002360204200020033602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110100450d000b200441016b0b2001490b900201067f02402000027f418080c400200128020022022001280204460d001a2001200241016a2205360200024020022d0000220341187441187541004e0d002001200241026a220536020020022d0001413f7121042003411f712106200341df014d0440200641067420047221030c010b2001200241036a220536020020022d0002413f712004410674722107200341f00149044020072006410c747221030c010b2001200241046a2205360200418080c4002006411274418080f0007120022d0003413f71200741067472722203418080c400460d011a0b20012802082204200520026b6a22022004490d012001200236020820030b360204200020043602000f0b41d08f04411c41bc9b04102f000b2c00200120024d04402000200220016b3602042000200120036a3602000f0b41a08f04412141d09c04102f000bca0301067f230041306b22022400200028020421042000280200210302400240027f024020012802002205200128020822007204402000450d032001410c6a28020021002002410036022c200220033602242002200320046a360228200041016a21000340200041016b22000440200241186a200241246a1052200228021c418080c400470d010c050b0b200241106a200241246a10522002280214418080c400460d03024020022802102200450d00200020044f044020002004460d010c030b200020036a2c00004140480d020b200241086a4100200020031053200228020c210620022802080c020b200128021420032004200141186a28020028020c11000021000c030b41000b21002006200420001b21042000200320001b21030b2005450440200128021420032004200141186a28020028020c11000021000c010b200128020422002003200320046a104c22054b044020022001200020056b410010504101210020022802002205418080c400460d01200228020421062001280214220720032004200141186a280200220128020c1100000d012005200620072001105121000c010b200128021420032004200141186a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044109470d0120012802000b2802002104410121030b20002004360204200020033602000bd40701107f230041d0006b22032400200341003b014c200320023602482003410036024420034281808080a00137023c2003200236023820034100360234200320023602302003200136022c2003410a3602282000280204210c2000280200210d2000280208210e200341406b210f027f0340024020032d004d450440200328022c210a02400240024002402003280238220b200328023022104b0d0020032802342202200b4b0d00200328023c2204450d012004200f6a41016b21110340200a200222076a210020112d0000210602400240024002400240027f02400240200b20026b220541084f0440024002402000200041036a417c712202460440200541086b2108410021020c010b200341206a20062000200220006b2202105820032802204101460d012002200541086b22084b0d030b200641818284086c21090340200020026a220141046a2802002009732212417f73201241818284086b7120012802002009732201417f73200141818284086b7172418081828478710d03200241086a220220084d0d000b0c020b200328022421010c020b200341106a20062000200510582003280214210120032802100c020b200220054b0d02200341186a2006200020026a200520026b1058410020032802184101470d011a2002200328021c6a22012002490d030b41010b22004101460440200141016a2202450d0302402007200220076a22024d04402003200236023420022004490d07200220104d0d010c070b41d08f04411c41f49d04102f000b200441054f0d04027f200a200220046b6a2106200f210720042105034041002005450d011a200541016b210520072d0000210820062d00002109200641016a2106200741016a210720082009460d000b200920086b0b0d05200341086a20032802442002200a105320032002360244200328020c2100200328020821020c0a0b2003200b3602340c060b41a08f04412141e09504102f000b41d08f04411c41f09504102f000b41d08f04411c41e49d04102f000b2004410441849e04100b000b2002200b4d0d000b0b200341013a004d20032d004c044020032802482101200328024421040c020b20032802482201200328024422044f04404100210220012004470d020c030b41a08f04412141cc9b04102f000b41a08f04412141d49d04102f000b200320042001200a105320032802042100200328020021020b20020d010b41000c020b0240200e2d00000440200d419491044104200c28020c1100000d010b200e2000047f200020026a41016b2d0000410a460541000b22013a0000200d20022000200c28020c110000450d010b0b41010b2100200341d0006a240020000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b4e01027f20002802042102200028020021030240200028020822002d0000450d002003419491044104200228020c110000450d0041010f0b20002001410a463a00002003200120022802101101000b0c00200041fc9004200110450beb0201057f230041406a22022400200028020021054101210002402001280214220441989004410c200141186a280200220628020c22011100000d00200528020c21032002411c6a42033702002002413c6a4107360200200241346a410736020020024103360214200241f08f0436021020022003410c6a3602382002200341086a3602302002410236022c200220033602282002200241286a36021820042006200241106a10450d00200528020822030440200441a49004410220011100000d01200241386a200341106a290200370300200241306a200341086a2902003703002002200329020037032820042006200241286a104521000c010b200220052802002203200528020428020c11020041002100200229030042c1f7f9e8cc93b2d14185200241086a29030042e4dec78590d085de7d858450450d0041012100200441a49004410220011100000d00200420032802002003280204200111000021000b200241406b240020000b130020004504404187a204412b2001102f000b0b6901017f230041306b220424002004200136020420042000360200200441146a42023702002004412c6a41073602002004410236020c20042003360208200441073602242004200441206a3602102004200441046a36022820042004360220200441086a20021031000b0bc5260200418080040bc10f2f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f73746f726167652d352e302e302d72632e312f7372632f6c617a792f6d617070696e672e7273e7dc23264661696c656420746f206765742076616c756520696e204d617070696e673a2074000100200000000000010070000000c4000000250000002c1201007500000091000000200000002c1201007500000091000000300000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b2d70616c6c65742d636f6e7472616374732d756170692d362e302e302f7372632f686f73742e7273000000cc000100710000002d000000170000000a0000000100000001000000030000004465636f6465427566666572546f6f536d616c6c52657475726e4572726f725375636365737343616c6c65655472617070656443616c6c656552657665727465644b65794e6f74466f756e645f42656c6f7753756273697374656e63655468726573686f6c645472616e736665724661696c65645f456e646f776d656e74546f6f4c6f77436f64654e6f74466f756e644e6f7443616c6c61626c654c6f6767696e6744697361626c656443616c6c52756e74696d654661696c656445636473615265636f766572794661696c6564537232353531395665726966794661696c656458636d457865637574696f6e4661696c656458636d53656e644661696c6564556e6b6e6f776e54686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e2c12010075000000800100000e0000002c120100750000001801000032000000656e636f756e746572656420756e6578706563746564206572726f72c80201001c0000002c12010075000000e1000000170000004411010076000000c40000003d0000004411010076000000c70000003b0000002f55736572732f70706f6c6f637a656b2f6769742f696e6b2d6578616d706c65732f65726332302f6c69622e727300001c0301002e000000070000000500000073746f7261676520656e7472792077617320656d707479005c03010017000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e747279007c030100270000001c0301002e000000d30000003d00000001b5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb011a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d0000070000000d0000000e0000000b0000001a0000000e000000100000000c0000000b0000000f000000110000001300000013000000120000000d000000070000007f0101008601010093010100a1010100ac010100c6010100d4010100e4010100f0010100fb0101000a0201001b0201002e020100410201005302010060020100617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000b00000000000000010000000c0000004572726f720000000d0000000c000000040000000e0000000f000000100000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e7273000000f404010071000000980100001c0000006361706163697479206f766572666c6f770000007805010011000000f40401007100000021020000050000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c65640000001306010015000000280601000d000000a40501006f000000a20100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72738b0601006d00000064020000200000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e72730000000807010071000000610700000d0000000807010071000000d00700000900000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f770041d08f040bf316617474656d707420746f206164642077697468206f766572666c6f77293a0000e410010000000000ed07010001000000ed070100010000000b00000000000000010000001100000070616e69636b6564206174203a0a696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320260801002000000046080100120000003a200000e4100100000000006808010002000000120000000c00000004000000130000001400000015000000202020202c0a28280a2f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000d509010070000000050500000d000000d50901007000000097050000300000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e7273000000680a010075000000760000004b000000680a010075000000770000003400000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820000b010012000000120b01002200000072616e676520656e6420696e64657820440b010010000000120b010022000000736c69636520696e64657820737461727473206174202062757420656e64732061742000640b0100160000007a0b01000d0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e727300980b010073000000c405000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e67746820281c0c010015000000310c01002b000000ec070100010000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e72730000740c0100720000004700000015000000740c0100720000004f00000032000000740c0100720000005a00000009000000740c010072000000660000000d000000740c0100720000006400000011000000740c01007200000054000000110000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e7273000000480d0100710000009100000011000000480d0100710000004f0200002d0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e727300dc0d010073000000d3000000130000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e7273600e010074000000a101000047000000600e010074000000b401000020000000600e010074000000b401000011000000600e010074000000b8010000370000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e72730000140f01007a00000095000000010000009d08010070000000d201000005000000e410010000000000756e61626c6520746f206465636f64652073656c6563746f72656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f646520696e707574636f756c64206e6f74207265616420696e7075747061696420616e20756e70617961626c65206d6573736167652f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f616c6c6f6361746f722d352e302e302d72632e312f7372632f62756d702e72730000301001006a000000870000001100000000000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f77000000301001006a0000009400000016000000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e282963616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75650a00e41001000000000032110100010000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d352e302e302d72632e312f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273000044110100760000005c0000003b00000044110100760000005c0000001400000044110100760000005d0000000e00000044110100760000005e000000340000004411010076000000680000000900000044110100760000008600000025000000441101007600000090000000210000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d352e302e302d72632e312f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e72732f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f7061726974792d7363616c652d636f6465632d332e362e392f7372632f636f6465632e7273a11201006b000000770000000e000000190000001c000000160000001400000019000000b80f0100d10f0100ed0f010003100100171001","build_info":{"build_mode":"Debug","cargo_contract_version":"3.2.0","rust_toolchain":"stable-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"erc20","version":"5.0.0-rc.1","authors":["Parity Technologies "]},"spec":{"constructors":[{"args":[{"label":"total_supply","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":["Creates a new ERC-20 contract with the specified initial supply."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":14},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":2},"balance":{"displayName":["Balance"],"type":0},"blockNumber":{"displayName":["BlockNumber"],"type":23},"chainExtension":{"displayName":["ChainExtension"],"type":24},"hash":{"displayName":["Hash"],"type":21},"maxEventTopics":4,"staticBufferSize":16384,"timestamp":{"displayName":["Timestamp"],"type":22}},"events":[{"args":[{"docs":[],"indexed":true,"label":"from","type":{"displayName":["Option"],"type":20}},{"docs":[],"indexed":true,"label":"to","type":{"displayName":["Option"],"type":20}},{"docs":[],"indexed":false,"label":"value","type":{"displayName":["Balance"],"type":0}}],"docs":["Event emitted when a token transfer occurs."],"label":"Transfer","module_path":"erc20::erc20","signature_topic":"0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb"},{"args":[{"docs":[],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":2}},{"docs":[],"indexed":true,"label":"spender","type":{"displayName":["AccountId"],"type":2}},{"docs":[],"indexed":false,"label":"value","type":{"displayName":["Balance"],"type":0}}],"docs":["Event emitted when an approval occurs that `spender` is allowed to withdraw","up to the amount of `value` tokens from `owner`."],"label":"Approval","module_path":"erc20::erc20","signature_topic":"0x1a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d"}],"lang_error":{"displayName":["ink","LangError"],"type":15},"messages":[{"args":[],"default":false,"docs":[" Returns the total token supply."],"label":"total_supply","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xdb6375a8"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":2}}],"default":false,"docs":[" Returns the account balance for the specified `owner`.",""," Returns `0` if the account is non-existent."],"label":"balance_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0x0f755a56"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":2}},{"label":"spender","type":{"displayName":["AccountId"],"type":2}}],"default":false,"docs":[" Returns the amount which `spender` is still allowed to withdraw from `owner`.",""," Returns `0` if no allowance has been set."],"label":"allowance","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0x6a00165e"},{"args":[{"label":"to","type":{"displayName":["AccountId"],"type":2}},{"label":"value","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":[" Transfers `value` amount of tokens from the caller's account to account `to`.",""," On success a `Transfer` event is emitted.",""," # Errors",""," Returns `InsufficientBalance` error if there are not enough tokens on"," the caller's account balance."],"label":"transfer","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":17},"selector":"0x84a15da1"},{"args":[{"label":"spender","type":{"displayName":["AccountId"],"type":2}},{"label":"value","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":[" Allows `spender` to withdraw from the caller's account multiple times, up to"," the `value` amount.",""," If this function is called again it overwrites the current allowance with"," `value`.",""," An `Approval` event is emitted."],"label":"approve","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":17},"selector":"0x681266a0"},{"args":[{"label":"from","type":{"displayName":["AccountId"],"type":2}},{"label":"to","type":{"displayName":["AccountId"],"type":2}},{"label":"value","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":[" Transfers `value` tokens on the behalf of `from` to the account `to`.",""," This can be used to allow a contract to transfer tokens on ones behalf and/or"," to charge fees in sub-currencies, for example.",""," On success a `Transfer` event is emitted.",""," # Errors",""," Returns `InsufficientAllowance` error if there are not enough tokens allowed"," for the caller to withdraw from `from`.",""," Returns `InsufficientBalance` error if there are not enough tokens on"," the account balance of `from`."],"label":"transfer_from","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":17},"selector":"0x0b396f18"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x00000000","ty":0}},"name":"total_supply"},{"layout":{"root":{"layout":{"leaf":{"key":"0xe7dc2326","ty":0}},"root_key":"0xe7dc2326","ty":1}},"name":"balances"},{"layout":{"root":{"layout":{"leaf":{"key":"0xb721a0ec","ty":0}},"root_key":"0xb721a0ec","ty":9}},"name":"allowances"}],"name":"Erc20"}},"root_key":"0x00000000","ty":13}},"types":[{"id":0,"type":{"def":{"primitive":"u128"}}},{"id":1,"type":{"def":{"composite":{}},"params":[{"name":"K","type":2},{"name":"V","type":0},{"name":"KeyType","type":5}],"path":["ink_storage","lazy","mapping","Mapping"]}},{"id":2,"type":{"def":{"composite":{"fields":[{"type":3,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":3,"type":{"def":{"array":{"len":32,"type":4}}}},{"id":4,"type":{"def":{"primitive":"u8"}}},{"id":5,"type":{"def":{"composite":{}},"params":[{"name":"L","type":6},{"name":"R","type":7}],"path":["ink_storage_traits","impls","ResolverKey"]}},{"id":6,"type":{"def":{"composite":{}},"path":["ink_storage_traits","impls","AutoKey"]}},{"id":7,"type":{"def":{"composite":{}},"params":[{"name":"ParentKey","type":8}],"path":["ink_storage_traits","impls","ManualKey"]}},{"id":8,"type":{"def":{"tuple":[]}}},{"id":9,"type":{"def":{"composite":{}},"params":[{"name":"K","type":10},{"name":"V","type":0},{"name":"KeyType","type":11}],"path":["ink_storage","lazy","mapping","Mapping"]}},{"id":10,"type":{"def":{"tuple":[2,2]}}},{"id":11,"type":{"def":{"composite":{}},"params":[{"name":"L","type":6},{"name":"R","type":12}],"path":["ink_storage_traits","impls","ResolverKey"]}},{"id":12,"type":{"def":{"composite":{}},"params":[{"name":"ParentKey","type":8}],"path":["ink_storage_traits","impls","ManualKey"]}},{"id":13,"type":{"def":{"composite":{"fields":[{"name":"total_supply","type":0,"typeName":",>>::Type"},{"name":"balances","type":1,"typeName":" as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<639884519u32, ()\n>,>>::Type"},{"name":"allowances","type":9,"typeName":" as::ink::storage::traits\n::AutoStorableHint<::ink::storage::traits::ManualKey<\n3969917367u32, ()>,>>::Type"}]}},"path":["erc20","erc20","Erc20"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"fields":[{"type":8}],"index":0,"name":"Ok"},{"fields":[{"type":15}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":8},{"name":"E","type":15}],"path":["Result"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":15}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":15}],"path":["Result"]}},{"id":17,"type":{"def":{"variant":{"variants":[{"fields":[{"type":18}],"index":0,"name":"Ok"},{"fields":[{"type":15}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":18},{"name":"E","type":15}],"path":["Result"]}},{"id":18,"type":{"def":{"variant":{"variants":[{"fields":[{"type":8}],"index":0,"name":"Ok"},{"fields":[{"type":19}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":8},{"name":"E","type":19}],"path":["Result"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"index":0,"name":"InsufficientBalance"},{"index":1,"name":"InsufficientAllowance"}]}},"path":["erc20","erc20","Error"]}},{"id":20,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":2}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":2}],"path":["Option"]}},{"id":21,"type":{"def":{"composite":{"fields":[{"type":3,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":22,"type":{"def":{"primitive":"u64"}}},{"id":23,"type":{"def":{"primitive":"u32"}}},{"id":24,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"5"} diff --git a/packages/api-contract/src/test/contracts/ink/v5/erc20.json b/packages/api-contract/src/test/contracts/ink/v5/erc20.json new file mode 100644 index 000000000000..c995eaaf8b29 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v5/erc20.json @@ -0,0 +1,1024 @@ +{ + "source": { + "hash": "0x656ec6137638ba8ad1477e96dfe91eb90ca625dfbe543057868ea521fd1b73fe", + "language": "ink! 5.0.0-rc.1", + "compiler": "rustc 1.75.0", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "3.2.0", + "rust_toolchain": "stable-aarch64-apple-darwin", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "erc20", + "version": "5.0.0-rc.1", + "authors": [ + "Parity Technologies " + ] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "label": "total_supply", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + "Creates a new ERC-20 contract with the specified initial supply." + ], + "label": "new", + "payable": false, + "returnType": { + "displayName": [ + "ink_primitives", + "ConstructorResult" + ], + "type": 14 + }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": [ + "AccountId" + ], + "type": 2 + }, + "balance": { + "displayName": [ + "Balance" + ], + "type": 0 + }, + "blockNumber": { + "displayName": [ + "BlockNumber" + ], + "type": 23 + }, + "chainExtension": { + "displayName": [ + "ChainExtension" + ], + "type": 24 + }, + "hash": { + "displayName": [ + "Hash" + ], + "type": 21 + }, + "maxEventTopics": 4, + "staticBufferSize": 16384, + "timestamp": { + "displayName": [ + "Timestamp" + ], + "type": 22 + } + }, + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": [ + "Option" + ], + "type": 20 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": [ + "Option" + ], + "type": 20 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when a token transfer occurs." + ], + "label": "Transfer", + "module_path": "erc20::erc20", + "signature_topic": "0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when an approval occurs that `spender` is allowed to withdraw", + "up to the amount of `value` tokens from `owner`." + ], + "label": "Approval", + "module_path": "erc20::erc20", + "signature_topic": "0x1a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d" + } + ], + "lang_error": { + "displayName": [ + "ink", + "LangError" + ], + "type": 15 + }, + "messages": [ + { + "args": [], + "default": false, + "docs": [ + " Returns the total token supply." + ], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 16 + }, + "selector": "0xdb6375a8" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + } + ], + "default": false, + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 16 + }, + "selector": "0x0f755a56" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + } + ], + "default": false, + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 16 + }, + "selector": "0x6a00165e" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 17 + }, + "selector": "0x84a15da1" + }, + { + "args": [ + { + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with", + " `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 17 + }, + "selector": "0x681266a0" + }, + { + "args": [ + { + "label": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 17 + }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 0 + } + }, + "name": "total_supply" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xe7dc2326", + "ty": 0 + } + }, + "root_key": "0xe7dc2326", + "ty": 1 + } + }, + "name": "balances" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xb721a0ec", + "ty": 0 + } + }, + "root_key": "0xb721a0ec", + "ty": 9 + } + }, + "name": "allowances" + } + ], + "name": "Erc20" + } + }, + "root_key": "0x00000000", + "ty": 13 + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 1, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "K", + "type": 2 + }, + { + "name": "V", + "type": 0 + }, + { + "name": "KeyType", + "type": 5 + } + ], + "path": [ + "ink_storage", + "lazy", + "mapping", + "Mapping" + ] + } + }, + { + "id": 2, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "AccountId" + ] + } + }, + { + "id": 3, + "type": { + "def": { + "array": { + "len": 32, + "type": 4 + } + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 5, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "L", + "type": 6 + }, + { + "name": "R", + "type": 7 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ResolverKey" + ] + } + }, + { + "id": 6, + "type": { + "def": { + "composite": {} + }, + "path": [ + "ink_storage_traits", + "impls", + "AutoKey" + ] + } + }, + { + "id": 7, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "ParentKey", + "type": 8 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ManualKey" + ] + } + }, + { + "id": 8, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 9, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "K", + "type": 10 + }, + { + "name": "V", + "type": 0 + }, + { + "name": "KeyType", + "type": 11 + } + ], + "path": [ + "ink_storage", + "lazy", + "mapping", + "Mapping" + ] + } + }, + { + "id": 10, + "type": { + "def": { + "tuple": [ + 2, + 2 + ] + } + } + }, + { + "id": 11, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "L", + "type": 6 + }, + { + "name": "R", + "type": 12 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ResolverKey" + ] + } + }, + { + "id": 12, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "ParentKey", + "type": 8 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ManualKey" + ] + } + }, + { + "id": 13, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "total_supply", + "type": 0, + "typeName": ",>>::Type" + }, + { + "name": "balances", + "type": 1, + "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<639884519u32, ()\n>,>>::Type" + }, + { + "name": "allowances", + "type": 9, + "typeName": " as::ink::storage::traits\n::AutoStorableHint<::ink::storage::traits::ManualKey<\n3969917367u32, ()>,>>::Type" + } + ] + } + }, + "path": [ + "erc20", + "erc20", + "Erc20" + ] + } + }, + { + "id": 14, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "E", + "type": 15 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 15, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": [ + "ink_primitives", + "LangError" + ] + } + }, + { + "id": 16, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 0 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 15 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 17, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 18 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 18 + }, + { + "name": "E", + "type": 15 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 18, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 19 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "E", + "type": 19 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 19, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InsufficientBalance" + }, + { + "index": 1, + "name": "InsufficientAllowance" + } + ] + } + }, + "path": [ + "erc20", + "erc20", + "Error" + ] + } + }, + { + "id": 20, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 21, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "Hash" + ] + } + }, + { + "id": 22, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 23, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 24, + "type": { + "def": { + "variant": {} + }, + "path": [ + "ink_env", + "types", + "NoChainExtension" + ] + } + } + ], + "version": "5" +} diff --git a/packages/api-contract/src/test/contracts/ink/v5/erc20.wasm b/packages/api-contract/src/test/contracts/ink/v5/erc20.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0ad59dc4371c938e94aa1f798970dd90464308e0 GIT binary patch literal 21581 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"]},"spec":{"constructors":[{"args":[{"label":"init_value","type":{"displayName":["bool"],"type":0}}],"default":false,"docs":["Creates a new flipper smart contract initialized with the given value."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":2},"selector":"0x9bae9d5e"},{"args":[],"default":false,"docs":["Creates a new flipper smart contract initialized to `false`."],"label":"new_default","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":2},"selector":"0x61ef7e3e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":6},"balance":{"displayName":["Balance"],"type":9},"blockNumber":{"displayName":["BlockNumber"],"type":12},"chainExtension":{"displayName":["ChainExtension"],"type":13},"hash":{"displayName":["Hash"],"type":10},"maxEventTopics":4,"staticBufferSize":16384,"timestamp":{"displayName":["Timestamp"],"type":11}},"events":[],"lang_error":{"displayName":["ink","LangError"],"type":4},"messages":[{"args":[],"default":false,"docs":[" Flips the current value of the Flipper's boolean."],"label":"flip","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":2},"selector":"0x633aa551"},{"args":[],"default":false,"docs":[" Returns the current value of the Flipper's boolean."],"label":"get","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":5},"selector":"0x2f865bd9"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x00000000","ty":0}},"name":"value"}],"name":"Flipper"}},"root_key":"0x00000000","ty":1}},"types":[{"id":0,"type":{"def":{"primitive":"bool"}}},{"id":1,"type":{"def":{"composite":{"fields":[{"name":"value","type":0,"typeName":",>>::Type"}]}},"path":["flipper","flipper","Flipper"]}},{"id":2,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":4}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":4}],"path":["Result"]}},{"id":3,"type":{"def":{"tuple":[]}}},{"id":4,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":5,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":4}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":4}],"path":["Result"]}},{"id":6,"type":{"def":{"composite":{"fields":[{"type":7,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":7,"type":{"def":{"array":{"len":32,"type":8}}}},{"id":8,"type":{"def":{"primitive":"u8"}}},{"id":9,"type":{"def":{"primitive":"u128"}}},{"id":10,"type":{"def":{"composite":{"fields":[{"type":7,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":11,"type":{"def":{"primitive":"u64"}}},{"id":12,"type":{"def":{"primitive":"u32"}}},{"id":13,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"} \ No newline at end of file +{"source":{"hash":"0x536329645b973de35b88a083a0fb769b9a6778dd7daacf1f2069c966a26fcc25","language":"ink! 5.0.0-rc","compiler":"rustc 1.75.0","wasm":"0x0061736d0100000001400b60037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060017f0060047f7f7f7f017f60000060017f017f60047f7f7f7f0060057f7f7f7f7f006000017f028a0107057365616c310b6765745f73746f726167650005057365616c301176616c75655f7472616e736665727265640002057365616c3005696e7075740002057365616c300d64656275675f6d6573736167650001057365616c320b7365745f73746f726167650005057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100333320302030a0703010207000602040302020604060308020304060207010004000101010104020101090508050902010103010204050170010e0e0608017f01418080040b0711020463616c6c0016066465706c6f7900180913010041010b0d0c33263628342327232425212a0ae93e322c01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b1a0b2601017f230041106b22022400200220003a000f20012002410f6a41011008200241106a24000bd30101057f20002802042105200028020021062000280208220420026a220320044f220741e8990410370240200320044f0440200320054b0d01200420066a200320046b2001200241889a041031200741989a041037200020033602080f0b230041306b220024002000200336020420002004360200200041146a42023702002000412c6a41033602002000410236020c200041fc8f04360208200041033602242000200041206a3602102000200041046a36022820002000360220200041086a41f89904100d000b2003200541f89904100b000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10012000290308210120002903002102200041206a2400410541042001200284501b0b1b002000418180014f044020004180800141f88104100b000b20000b6b01017f230041306b220324002003200136020420032000360200200341146a42023702002003412c6a41033602002003410236020c200341c88f04360208200341033602242003200341206a3602102003200341046a36022820032003360220200341086a2002100d000b840101017f230041306b22022400200241146a42013702002002410136020c200241dc950436020820024102360224200220002d0000410274220041c49b046a28020036022c2002200041d89b046a2802003602282002200241206a3602102002200241286a36022020012802142001280218200241086a10222100200241306a240020000b3c01017f230041206b22022400200241013b011c2002200136021820022000360214200241d88a0436021020024194980436020c2002410c6a1029000b4701027f230041106b22012400200141003a000f20002001410f6a4101100f220045044020012d000f21020b200141106a240041024101410220024101461b410020021b20001b0b3d01027f2000280204220320024922044504402001200220002802002201200241b49b0410312000200320026b3602042000200120026a3602000b20040b3c01027f230041106b22002400200042808001370208200041f89b04360204200041046a2201410010152001410010154100200028020c100a1014000b4401027f230041106b22022400200242808001370208200241f89b04360204200241046a22032001047f20034101101541010541000b10152000200228020c100a1014000bb20102057f017e230041306b220124002001410036021c200142808001370228200141f89b0436022420014100360220200141246a2202200141206a4104100820012001290224370214200141086a200141146a2203200128022c1013200128020c210420012802082105200129021421062001410036022c200120063702242000200210072001200129022437021420012003200128022c1013200520042001280200200128020410041a200141306a24000b4501017f2002200128020422034b044041949804412341b89a04101c000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b0d00200041f89b0420011005000b970101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a42023702002000412c6a41033602002000410236020c200041a88b04360208200041033602242000200041206a360210200020003602282000200041046a360220200041086a41a89a04100d000b900501077f230041306b22002400024002400240024002400240100941ff0171410546044020004180800136021441f89b04200041146a100220002802142201418180014f0d0120002001360218200041f89b0436021420004100360208200041146a200041086a4104100f0d0520002d000b210120002d000a210220002d00092103024020002d00082204412f470440200441e300470d07410121042003413a47200241a5014772200141d1004772450d010c070b41002104200341860147200241db004772200141d90147720d060b20004100360210200042808001370218200041f89b043602142000410036022c200041146a22032000412c6a41041008200020002902143702082000200041086a200028021c10132000280204210520002802002106200028020821012000200028020c2202360214200620052001200310002105200220002802142203490d0202400240024020050e0400060601060b2000200336021820002001360214200041146a100e220141ff017141024704402000280218450d020b200041206a420037020020004101360218200041c483043602140c080b200041206a4200370200200041013602182000419483043602140c070b20040d04230041106b22002400200042808001370208200041f89b04360204200041046a220241001015200141ff0171410047200210074100200028020c100a1014000b200041043a0014200041146a1017000b20014180800141f48004100b000b2003200241f48004100b000b200041206a420037020020004101360218200041a4820436021420004194980436021c200041146a41ac8204100d000b200141ff0171451012410041001011000b410141011011000b20004194980436021c200041146a41ec8204100d000b4801017f230041206b220124002001410c6a420137020020014101360204200141dc95043602002001410136021c200120003602182001200141186a360208200141ec8204100d000b860201057f230041106b22002400024002401009220141ff0171410546044020004180800136020441f89b04200041046a100220002802042201418180014f0d0120002001360208200041f89b043602042000410036020c0240200041046a2000410c6a4104100f0d0020002d000f210120002d000e210220002d000d210320002d000c220441e1004704402004419b0147200341ae0147722002419d0147200141de004772720d01200041046a100e220041ff01714102460d01200010121010000b200341ef0147200241fe0047720d002001413e460d030b410141011011000b200020013a0004200041046a1017000b20014180800141f48004100b000b410010121010000b7601027f230041106b2204240020022000280204200028020822036b4b0440200441086a200020032002101a2004280208200428020c101b200028020821030b200028020020036a2001200210062003200220036a22014b044041d08304411c41dc8904101c000b20002001360208200441106a24000bbf0301057f230041206b220424000240027f4100200220036a22032002490d001a200128020422024100480d01410820024101742206200320032006491b2203200341084d1b2203417f73411f76210702402002450440200441003602180c010b2004200236021c20044101360218200420012802003602140b200441146a2105230041106b22022400200441086a2206027f02402007044020034100480d01027f20052802040440200541086a2802002207450440200241086a2003101f20022802082105200228020c0c020b200528020021080240200310202205450440410021050c010b20052008200710060b20030c010b20022003101f2002280200210520022802040b21072005044020062005360204200641086a200736020041000c030b20064101360204200641086a200336020041010c020b20064100360204200641086a200336020041010c010b2006410036020441010b360200200241106a24002004280208450440200428020c210220012003360204200120023602004181808080780c010b200441106a2802002103200428020c0b21012000200336020420002001360200200441206a24000f0b41f08304412141b88504101c000b1f00024020004181808080784704402000450d012001101d000b0f0b101e000b4601017f230041206b220324002003410c6a4200370200200341013602042003419498043602082003200136021c200320003602182003200341186a36020020032002100d000b860101017f230041306b220124002001200036020c2001411c6a4201370200200141023602142001418887043602102001410336022c2001200141286a36021820012001410c6a360228230041206b22002400200041003b011c2000419887043602182000200141106a360214200041d88a0436021020004194980436020c2000410c6a1029000b3c01017f230041206b22002400200041146a42003702002000410136020c200041dc8504360208200041949804360210200041086a41e48504100d000b2001017f41fa9b052d00001a20011020210220002001360204200020023602000be70101027f024002400240027f41ec9b042d0000044041f09b042802000c010b3f002202418080044f0d0141f09b0441809c0536020041ec9b0441013a000041f49b04200241107436020041809c050b2101027f4100200020016a22022001490d001a41f49b042802002002490440200041ffff036a220241107640002201417f460d042001418080044f0d032001411074220120024180807c716a22022001490d0441f49b0420023602004100200020016a22022001490d011a0b41f09b04200236020020010b0f0b41e09704412141c49704101c000b41e09704412141849804101c000b41000b0c00200041ac8404200110220bfc0301067f230041406a22032400200341346a2001360200200341033a003c2003412036022c2003410036023820032000360230200341003602242003410036021c027f02400240200228021022014504402002410c6a28020022004103742106200041ffffffff017121072002280200210820022802082101034020042006460d02200420086a220041046a28020022050440200328023020002802002005200328023428020c1100000d040b200441086a21042001280200210020012802042105200141086a210120002003411c6a2005110100450d000b0c020b200241146a28020022044105742100200441ffffff3f7121072002280208210620022802002208210403402000450d01200441046a28020022050440200328023020042802002005200328023428020c1100000d030b2003200128021036022c200320012d001c3a003c20032001280218360238200341106a2006200141086a10352003200329031037021c200341086a20062001103520032003290308370224200441086a2104200041206b210020012802142105200141206a2101200620054103746a22052802002003411c6a2005280204110100450d000b0c010b200228020420074b04402003280230200820074103746a22002802002000280204200328023428020c1100000d010b41000c010b41010b2101200341406b240020010b0300010b0c00200020012002101941000bd10201037f230041106b220224000240024020002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280204460440230041106b22042400200441086a200020034101101a2004280208200428020c101b200441106a2400200028020821030b200028020020036a20013a0000200341016a2201450d04200020013602080c030b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10190b200241106a240041000f0b41d08304411c41cc8904101c000bd606020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e034020004104490d09200341196a20006a220241046b200e4290ce0080220d42f0b1037e200e7ca7220441ffff037141e4006e220641017441bc8c046a2f00003b0000200241026b2006419c7f6c20046a41ffff037141017441bc8c046a2f00003b0000200041046b2100200e42ffc1d72f562102200d210e20020d000b200da7220241e3004d0d02200041024f0d010c080b41272100200241e3004d0d020b200041026b2200200341196a6a200da7220441ffff037141e4006e2202419c7f6c20046a41ffff037141017441bc8c046a2f00003b00000b2002410a4f044020004102490d060c040b20000d010c050b2002410a4f0d020b200041016b2200200341196a6a200241306a3a00000c020b000b200041026b2200200341196a6a200241017441bc8c046a2f00003b00000b02400240200041274d0440412820006b412720006b2206200128021c220541017122071b2102410021042005410471044041949804210420024194980441949804102b20026a22024b0d020b412b418080c40020071b2107200341196a20006a2108200128020045044041012100200128021422022001280218220120072004102e0d03200220082006200128020c11000021000c030b2002200128020422094f044041012100200128021422022001280218220120072004102e0d03200220082006200128020c11000021000c030b200541087104402001280210210b2001413036021020012d0020210c41012100200141013a0020200128021422052001280218220a20072004102e0d03200341106a2001200920026b4101102f20032802102202418080c400460d0320032802142104200520082006200a28020c1100000d03200220042005200a10300d032001200c3a00202001200b360210410021000c030b41012100200341086a2001200920026b4101102f20032802082205418080c400460d02200328020c2109200128021422022001280218220120072004102e0d02200220082006200128020c1100000d022005200920022001103021000c020b0c020b41a08a04411c41f48e04101c000b200341406b240020000f0b41f08904412141cc9504101c000b1b00200128021441a484044105200141186a28020028020c1100000b0e0020002802001a03400c000b000bad0301047f230041406a220124002001200036020c2001411c6a420137020020014102360214200141e498043602102001410436022c2001200141286a36021820012001410c6a360228410021000240024002400240034020002000200241037441e898046a2802006a22004b0d014101210220032104410121032004450d000b20004101744100200041104e1b2200044020004100480d0220012000101f20012802002202450d030b200141003602382001200036023420012002360230200141306a200141106a10210d032001280230210020012802382103024041f89b052d000045044041f99b052d00004101710d010b200020031003410947044041f89b0541013a00000b41f99b0541013a00000b000b41d08304411c41bc9504101c000b101e000b2000101d000b230041406a220024002000413336020c200041a8870436020820004194840436021420002001413f6a360210200041246a42023702002000413c6a41063602002000410236021c200041bc8b04360218200041023602342000200041306a3602202000200041106a3602382000200041086a360230200041186a41c88804100d000b2000200042b1a1a2be8cd0b08931370308200042b2c98bdc9db884a6203703000b8e04010a7f230041106b220224000240200120006b220141104f04402000200041036a417c71220620006b2200102c22042006200120006b2200417c716a2000410371102c6a220320044f0440200041027621050240024003402005450d0520022006200541c0012005200541c0014f1b41809104102d200228020c21052002280208210620022002280200200228020422002000417c7141ec9204102d200228020c210820022802082107024020022802042200450440410021000c010b2002280200220420004102746a21094100210003402004220a41106a21044100210102400340200020002001200a6a280200220b417f73410776200b410676724181828408716a22004d0440200141046a22014110470d010c020b0b41a08a04411c41ac9304101c000b20042009470d000b0b20032003200041087641ff81fc0771200041ff81fc07716a418180046c4110766a22034b0d012008450d000b200841027421014100210003402000200020072802002204417f734107762004410676724181828408716a22004b0d02200741046a2107200141046b22010d000b20032003200041087641ff81fc0771200041ff81fc07716a418180046c4110766a22034d0d0441a08a04411c418c9304101c000b41a08a04411c41fc9204101c000b41a08a04411c419c9304101c000b41a08a04411c41dc9204101c000b20002001102c21030b200241106a240020030b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41a08a04411c41bc9504101c000b3d00200220034904404194980441232004101c000b20002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080b39000240027f2002418080c40047044041012000200220012802101101000d011a0b20030d0141000b0f0b200020034100200128020c1100000bb20101027f024002400240024020012d0020220441016b0e03010200030b200341ff01710d00410021040c020b20022104410021020c010b200241016a2203044020024101762104200341017621020c010b41a08a04411c41848f04101c000b200441016a2104200141186a2802002105200128021021032001280214210102400340200441016b2204450d01200120032005280210110100450d000b418080c40021030b20002002360204200020033602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110100450d000b200441016b0b2001490b7a002001200346044020002002200110060f0b230041306b220024002000200336020420002001360200200041146a42023702002000412c6a41033602002000410336020c200041d09104360208200041033602242000200041206a360210200020003602282000200041046a360220200041086a2004100d000b900201067f02402000027f418080c400200128020022022001280204460d001a2001200241016a2205360200024020022d0000220341187441187541004e0d002001200241026a220536020020022d0001413f7121042003411f712106200341df014d0440200641067420047221030c010b2001200241036a220536020020022d0002413f712004410674722107200341f00149044020072006410c747221030c010b2001200241046a2205360200418080c4002006411274418080f0007120022d0003413f71200741067472722203418080c400460d011a0b20012802082204200520026b6a22022004490d012001200236020820030b360204200020043602000f0b41a08a04411c41b09404101c000bb90301067f230041306b22022400200028020421042000280200210302400240200128020022062001280208220072044002402000450d002001410c6a28020021002002410036022c200220033602242002200320046a360228200041016a21000340200041016b22000440200241186a200241246a1032200228021c418080c400470d010c020b0b200241106a200241246a10322002280214418080c400460d000240024020022802102205450d00200420054d04404100210020042005460d010c020b41002100200320056a2c00004140480d010b200321000b2005200420001b21042000200320001b21030b2006450440200128021420032004200141186a28020028020c11000021000c030b200128020422002003200320046a102b22054d0d01200241086a2001200020056b4100102f4101210020022802082205418080c400460d02200228020c21062001280214220720032004200141186a280200220128020c1100000d022005200620072001103021000c020b200128021420032004200141186a28020028020c11000021000c010b200128021420032004200141186a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044105470d0120012802000b2802002104410121030b20002004360204200020033602000beb0201057f230041406a22022400200028020021054101210002402001280214220441e88a04410c200141186a280200220628020c22011100000d00200528020c21032002411c6a42033702002002413c6a4103360200200241346a410336020020024103360214200241c08a0436021020022003410c6a3602382002200341086a3602302002410236022c200220033602282002200241286a36021820042006200241106a10220d00200528020822030440200441f48a04410220011100000d01200241386a200341106a290200370300200241306a200341086a2902003703002002200329020037032820042006200241286a102221000c010b200220052802002203200528020428020c11020041002100200229030042c1f7f9e8cc93b2d14185200241086a29030042e4dec78590d085de7d858450450d0041012100200441f48a04410220011100000d00200420032802002003280204200111000021000b200241406b240020000b1300200045044041b79804412b2001101c000b0b0be61b0300418080040b910a2f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d352e302e302d72632f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000000000010071000000e4000000170000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d352e302e302d72632f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e72730084000100730000002701000032000000656e636f756e746572656420756e6578706563746564206572726f72080101001c0000008400010073000000f0000000170000002f55736572732f70706f6c6f637a656b2f6769742f696e6b2d6578616d706c65732f666c69707065722f6c69622e72733c01010030000000060000000500000073746f7261676520656e7472792077617320656d707479007c01010017000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e747279009c0101002700000000000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f77000000070000000000000001000000080000004572726f72000000090000000c000000040000000a0000000b0000000c0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72730000004402010071000000980100001c0000006361706163697479206f766572666c6f77000000c802010011000000440201007100000021020000050000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c65640000006303010015000000780301000d000000f40201006f000000a20100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e7273db0301006d00000064020000200000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e72730000005804010071000000610700000d0000005804010071000000d00700000900000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f770041a08a040bb10d617474656d707420746f206164642077697468206f766572666c6f77293a0000140c0100000000003d050100010000003d050100010000000700000000000000010000000d00000070616e69636b6564206174203a0a696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320760501002000000096050100120000003a200000140c010000000000b8050100020000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e72730407010070000000050500000d00000004070100700000009705000030000000206f7574206f662072616e676520666f7220736c696365206f66206c656e6774682072616e676520656e6420696e646578200000b6070100100000009407010022000000736c69636520696e64657820737461727473206174202062757420656e64732061742000d807010016000000ee0701000d0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273000c08010073000000c405000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e67746820289008010015000000a50801002b0000003c050100010000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e72730000e8080100720000004700000015000000e8080100720000004f00000032000000e8080100720000005a00000009000000e808010072000000660000000d000000e8080100720000006400000011000000e80801007200000054000000110000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e7273000000bc0901007100000091000000110000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e72730000400a01007a0000009500000001000000cc05010070000000d201000005000000140c010000000000756e61626c6520746f206465636f64652073656c6563746f72656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f646520696e707574636f756c64206e6f74207265616420696e7075747061696420616e20756e70617961626c65206d6573736167652f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f616c6c6f6361746f722d352e302e302d72632f7372632f62756d702e72735c0b01006800000087000000110041e097040b8b04617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000005c0b0100680000009400000016000000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e282963616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75650a00140c010000000000620c0100010000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d352e302e302d72632f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273740c0100740000005c0000003b000000740c0100740000005c00000014000000740c0100740000005d0000000e000000740c0100740000005e00000034000000740c0100740000006800000009000000740c01007400000090000000210000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f7061726974792d7363616c652d636f6465632d332e362e392f7372632f636f6465632e727300480d01006b000000770000000e000000190000001c000000160000001400000019000000e40a0100fd0a0100190b01002f0b0100430b01","build_info":{"build_mode":"Debug","cargo_contract_version":"3.2.0","rust_toolchain":"stable-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"flipper","version":"5.0.0-rc","authors":["Parity Technologies "]},"spec":{"constructors":[{"args":[{"label":"init_value","type":{"displayName":["bool"],"type":0}}],"default":false,"docs":["Creates a new flipper smart contract initialized with the given value."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":2},"selector":"0x9bae9d5e"},{"args":[],"default":false,"docs":["Creates a new flipper smart contract initialized to `false`."],"label":"new_default","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":2},"selector":"0x61ef7e3e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":6},"balance":{"displayName":["Balance"],"type":9},"blockNumber":{"displayName":["BlockNumber"],"type":12},"chainExtension":{"displayName":["ChainExtension"],"type":13},"hash":{"displayName":["Hash"],"type":10},"maxEventTopics":4,"staticBufferSize":16384,"timestamp":{"displayName":["Timestamp"],"type":11}},"events":[],"lang_error":{"displayName":["ink","LangError"],"type":4},"messages":[{"args":[],"default":false,"docs":[" Flips the current value of the Flipper's boolean."],"label":"flip","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":2},"selector":"0x633aa551"},{"args":[],"default":false,"docs":[" Returns the current value of the Flipper's boolean."],"label":"get","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":5},"selector":"0x2f865bd9"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x00000000","ty":0}},"name":"value"}],"name":"Flipper"}},"root_key":"0x00000000","ty":1}},"types":[{"id":0,"type":{"def":{"primitive":"bool"}}},{"id":1,"type":{"def":{"composite":{"fields":[{"name":"value","type":0,"typeName":",>>::Type"}]}},"path":["flipper","flipper","Flipper"]}},{"id":2,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":4}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":4}],"path":["Result"]}},{"id":3,"type":{"def":{"tuple":[]}}},{"id":4,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":5,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":4}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":4}],"path":["Result"]}},{"id":6,"type":{"def":{"composite":{"fields":[{"type":7,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":7,"type":{"def":{"array":{"len":32,"type":8}}}},{"id":8,"type":{"def":{"primitive":"u8"}}},{"id":9,"type":{"def":{"primitive":"u128"}}},{"id":10,"type":{"def":{"composite":{"fields":[{"type":7,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":11,"type":{"def":{"primitive":"u64"}}},{"id":12,"type":{"def":{"primitive":"u32"}}},{"id":13,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"5"} diff --git a/packages/api-contract/src/test/contracts/ink/v5/flipper.json b/packages/api-contract/src/test/contracts/ink/v5/flipper.json index 804edb779d9f..fdd97d85b6e2 100644 --- a/packages/api-contract/src/test/contracts/ink/v5/flipper.json +++ b/packages/api-contract/src/test/contracts/ink/v5/flipper.json @@ -415,5 +415,5 @@ } } ], - "version": "4" -} \ No newline at end of file + "version": "5" +} diff --git a/packages/api-contract/src/test/contracts/ink/v5/index.ts b/packages/api-contract/src/test/contracts/ink/v5/index.ts index 99bdc1efa682..b9ec4dbdf248 100644 --- a/packages/api-contract/src/test/contracts/ink/v5/index.ts +++ b/packages/api-contract/src/test/contracts/ink/v5/index.ts @@ -1,6 +1,7 @@ // Copyright 2017-2024 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 -export { default as erc20 } from './erc20.contract.json' assert { type: 'json' }; +export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; +export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; export { default as flipperContract } from './flipper.contract.json' assert { type: 'json' }; export { default as flipperMetadata } from './flipper.json' assert { type: 'json' }; diff --git a/packages/api-contract/src/types.ts b/packages/api-contract/src/types.ts index f5c1b2a18098..f1d0007f2344 100644 --- a/packages/api-contract/src/types.ts +++ b/packages/api-contract/src/types.ts @@ -7,6 +7,7 @@ import type { Text } from '@polkadot/types'; import type { ContractExecResultResult, ContractSelector, StorageDeposit, Weight, WeightV2 } from '@polkadot/types/interfaces'; import type { Codec, TypeDef } from '@polkadot/types/types'; import type { BN } from '@polkadot/util'; +import type { HexString } from '@polkadot/util/types'; import type { Abi } from './index.js'; export interface ContractBase { @@ -28,7 +29,7 @@ export interface AbiEvent { fromU8a: (data: Uint8Array) => DecodedEvent; identifier: string; index: number; - signatureTopic?: string; + signatureTopic?: HexString; } export interface AbiMessage {