feat: ink! v5 (#5791)
* adds definitions and types according to ink v5 changes
* adds toV5 boilerplate code draft
* adds v5 flipper test contract code
* fix license dates
* adds test v5 toLatest test
* implements new scheme to determine event
* apply linter changes
* adds test result outputs
* change `EventRecord['topics'][0]` type to plain `Hash`
* adds testcases for decoding payload data of a ink!v4 and ink!v5 event
* changes `Abi.decodeEvent(data:Bytes)` method interface to `Abi.decodeEvent(record:EventRecord)` which includes the event and the topic for decoding.
* draft implementation with version metadata
* cleaner implementation of versioned Metadata by actually leveraging the `version` field included since v2 contract metadata
* trying to make linter happy
* makes `ContractMetadataSupported` in internal to `Abi` type and not exposing it externally.
* properly types unused parameter for tsc 🤷
* adds `@polkadot/types-support` dev dependency
* Update yarn.lock
* references `types-support` in `api-contract
* resolving change requests
* resolves linter warnings
* changes ContractMetadataV5 field to `u64` from `Text`
* adds contracts and contract metadata compiled with the most recent ink version
* implements decoding of anonymous events if possible
* removes done todo comments
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@polkadot/api-augment": "10.11.3",
|
||||
"@polkadot/keyring": "^12.6.2"
|
||||
"@polkadot/keyring": "^12.6.2",
|
||||
"@polkadot/types-support": "10.11.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,8 +9,10 @@ import fs from 'node:fs';
|
||||
import process from 'node:process';
|
||||
|
||||
import { TypeDefInfo } from '@polkadot/types/types';
|
||||
import rpcMetadata from '@polkadot/types-support/metadata/static-substrate-contracts-node';
|
||||
import { blake2AsHex } from '@polkadot/util-crypto';
|
||||
|
||||
import { Metadata, TypeRegistry } from '../../../types/src/bundle.js';
|
||||
import abis from '../test/contracts/index.js';
|
||||
import { Abi } from './index.js';
|
||||
|
||||
@@ -122,4 +124,112 @@ describe('Abi', (): void => {
|
||||
// the hash as per the actual Abi
|
||||
expect(bundle.source.hash).toEqual(abi.info.source.wasmHash.toHex());
|
||||
});
|
||||
|
||||
describe('Events', (): void => {
|
||||
const registry = new TypeRegistry();
|
||||
|
||||
beforeAll((): void => {
|
||||
const metadata = new Metadata(registry, rpcMetadata);
|
||||
|
||||
registry.setMetadata(metadata);
|
||||
});
|
||||
|
||||
it('decoding <=ink!v4 event', (): void => {
|
||||
const abiJson = abis['ink_v4_erc20Metadata'];
|
||||
|
||||
expect(abiJson).toBeDefined();
|
||||
const abi = new Abi(abiJson);
|
||||
|
||||
const eventRecordHex =
|
||||
'0x0001000000080360951b8baf569bca905a279c12d6ce17db7cdce23a42563870ef585129ce5dc64d010001d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb106000000000000000c0045726332303a3a5472616e7366657200000000000000000000000000000000da2d695d3b5a304e0039e7fc4419c34fa0c1f239189c99bb72a6484f1634782b2b00c7d40fe6d84d660f3e6bed90f218e022a0909f7e1a7ea35ada8b6e003564';
|
||||
const record = registry.createType('EventRecord', eventRecordHex);
|
||||
|
||||
const decodedEvent = abi.decodeEvent(record);
|
||||
|
||||
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 event', (): void => {
|
||||
const abiJson = abis['ink_v5_erc20Metadata'];
|
||||
|
||||
expect(abiJson).toBeDefined();
|
||||
const abi = new Abi(abiJson);
|
||||
|
||||
const eventRecordHex =
|
||||
'0x00010000000803da17150e96b3955a4db6ad35ddeb495f722f9c1d84683113bfb096bf3faa30f2490101d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb106000000000000000cb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cbd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48';
|
||||
const record = registry.createType('EventRecord', eventRecordHex);
|
||||
|
||||
const decodedEvent = abi.decodeEvent(record);
|
||||
|
||||
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);
|
||||
});
|
||||
|
||||
it('decoding >=ink!v5 anonymous event', (): void => {
|
||||
const abiJson = abis['ink_v5_erc20AnonymousTransferMetadata'];
|
||||
|
||||
expect(abiJson).toBeDefined();
|
||||
const abi = new Abi(abiJson);
|
||||
|
||||
expect(abi.events[0].identifier).toEqual('erc20::erc20::Transfer');
|
||||
expect(abi.events[0].signatureTopic).toEqual(null);
|
||||
|
||||
const eventRecordWithAnonymousEventHex = '0x00010000000803538e726248a9c155911e7d99f4f474c3408630a2f6275dd501d4471c7067ad2c490101d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb1060000000000000008d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48';
|
||||
const record = registry.createType('EventRecord', eventRecordWithAnonymousEventHex);
|
||||
|
||||
const decodedEvent = abi.decodeEvent(record);
|
||||
|
||||
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);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
// Copyright 2017-2024 @polkadot/api-contract authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import type { Bytes } from '@polkadot/types';
|
||||
import type { ChainProperties, ContractConstructorSpecLatest, ContractEventSpecLatest, ContractMessageParamSpecLatest, ContractMessageSpecLatest, ContractMetadata, ContractMetadataLatest, ContractProjectInfo, ContractTypeSpec } from '@polkadot/types/interfaces';
|
||||
import type { Bytes, Vec } from '@polkadot/types';
|
||||
import type { ChainProperties, ContractConstructorSpecLatest, ContractEventParamSpecLatest, ContractMessageParamSpecLatest, ContractMessageSpecLatest, ContractMetadata, ContractMetadataV4, ContractMetadataV5, ContractProjectInfo, ContractTypeSpec, EventRecord } from '@polkadot/types/interfaces';
|
||||
import type { Codec, Registry, TypeDef } from '@polkadot/types/types';
|
||||
import type { AbiConstructor, AbiEvent, AbiMessage, AbiParam, DecodedEvent, DecodedMessage } from '../types.js';
|
||||
import type { AbiConstructor, AbiEvent, AbiEventParam, AbiMessage, AbiMessageParam, 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';
|
||||
import { convertVersions, enumVersions } from './toLatestCompatible.js';
|
||||
|
||||
interface AbiJson {
|
||||
version?: string;
|
||||
@@ -18,6 +18,10 @@ interface AbiJson {
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
type EventOf<M> = M extends {spec: { events: Vec<infer E>}} ? E : never
|
||||
export type ContractMetadataSupported = ContractMetadataV4 | ContractMetadataV5;
|
||||
type ContractEventSupported = EventOf<ContractMetadataSupported>;
|
||||
|
||||
const l = logger('Abi');
|
||||
|
||||
const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance'];
|
||||
@@ -32,7 +36,7 @@ function findMessage <T extends AbiMessage> (list: T[], messageOrId: T | string
|
||||
return assertReturn(message, () => `Attempted to call an invalid contract interface, ${stringify(messageOrId)}`);
|
||||
}
|
||||
|
||||
function getLatestMeta (registry: Registry, json: AbiJson): ContractMetadataLatest {
|
||||
function getMetadata (registry: Registry, json: AbiJson): ContractMetadataSupported {
|
||||
// this is for V1, V2, V3
|
||||
const vx = enumVersions.find((v) => isObject(json[v]));
|
||||
|
||||
@@ -50,20 +54,23 @@ function getLatestMeta (registry: Registry, json: AbiJson): ContractMetadataLate
|
||||
? { [`V${jsonVersion}`]: json }
|
||||
: { V0: json }
|
||||
);
|
||||
|
||||
const converter = convertVersions.find(([v]) => metadata[`is${v}`]);
|
||||
|
||||
if (!converter) {
|
||||
throw new Error(`Unable to convert ABI with version ${metadata.type} to latest`);
|
||||
throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`);
|
||||
}
|
||||
|
||||
return converter[1](registry, metadata[`as${converter[0]}`]);
|
||||
const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]);
|
||||
|
||||
return upgradedMetadata;
|
||||
}
|
||||
|
||||
function parseJson (json: Record<string, unknown>, chainProperties?: ChainProperties): [Record<string, unknown>, Registry, ContractMetadataLatest, ContractProjectInfo] {
|
||||
function parseJson (json: Record<string, unknown>, chainProperties?: ChainProperties): [Record<string, unknown>, Registry, ContractMetadataSupported, ContractProjectInfo] {
|
||||
const registry = new TypeRegistry();
|
||||
const info = registry.createType('ContractProjectInfo', json) as unknown as ContractProjectInfo;
|
||||
const latest = getLatestMeta(registry, json as unknown as AbiJson);
|
||||
const lookup = registry.createType('PortableRegistry', { types: latest.types }, true);
|
||||
const metadata = getMetadata(registry, json as unknown as AbiJson);
|
||||
const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true);
|
||||
|
||||
// attach the lookup to the registry - now the types are known
|
||||
registry.setLookup(lookup);
|
||||
@@ -77,7 +84,7 @@ function parseJson (json: Record<string, unknown>, chainProperties?: ChainProper
|
||||
lookup.getTypeDef(id)
|
||||
);
|
||||
|
||||
return [json, registry, latest, info];
|
||||
return [json, registry, metadata, info];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -102,7 +109,7 @@ export class Abi {
|
||||
readonly info: ContractProjectInfo;
|
||||
readonly json: Record<string, unknown>;
|
||||
readonly messages: AbiMessage[];
|
||||
readonly metadata: ContractMetadataLatest;
|
||||
readonly metadata: ContractMetadataSupported;
|
||||
readonly registry: Registry;
|
||||
readonly environment = new Map<string, TypeDef | Codec>();
|
||||
|
||||
@@ -123,8 +130,8 @@ export class Abi {
|
||||
: null
|
||||
})
|
||||
);
|
||||
this.events = this.metadata.spec.events.map((spec: ContractEventSpecLatest, index) =>
|
||||
this.#createEvent(spec, index)
|
||||
this.events = this.metadata.spec.events.map((_: ContractEventSupported, index: number) =>
|
||||
this.#createEvent(index)
|
||||
);
|
||||
this.messages = this.metadata.spec.messages.map((spec: ContractMessageSpecLatest, index): AbiMessage =>
|
||||
this.#createMessage(spec, index, {
|
||||
@@ -162,7 +169,59 @@ export class Abi {
|
||||
/**
|
||||
* Warning: Unstable API, bound to change
|
||||
*/
|
||||
public decodeEvent (data: Bytes | Uint8Array): DecodedEvent {
|
||||
public decodeEvent (record: EventRecord): DecodedEvent {
|
||||
switch (this.metadata.version.toString()) {
|
||||
// earlier version are hoisted to v4
|
||||
case '4':
|
||||
return this.#decodeEventV4(record);
|
||||
// Latest
|
||||
default:
|
||||
return this.#decodeEventV5(record);
|
||||
}
|
||||
}
|
||||
|
||||
#decodeEventV5 = (record: EventRecord): DecodedEvent => {
|
||||
// Find event by first topic, which potentially is the signature_topic
|
||||
const signatureTopic = record.topics[0];
|
||||
const data = record.event.data[1] as Bytes;
|
||||
|
||||
if (signatureTopic) {
|
||||
const event = this.events.find((e) => e.signatureTopic !== undefined && e.signatureTopic !== null && e.signatureTopic === signatureTopic.toHex());
|
||||
|
||||
// Early return if event found by signature topic
|
||||
if (event) {
|
||||
return event.fromU8a(data);
|
||||
}
|
||||
}
|
||||
|
||||
// If no event returned yet, it might be anonymous
|
||||
const amountOfTopics = record.topics.length;
|
||||
const potentialEvents = this.events.filter((e) => {
|
||||
// event can't have a signature topic
|
||||
if (e.signatureTopic !== null && e.signatureTopic !== undefined) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// event should have same amount of indexed fields as emitted topics
|
||||
const amountIndexed = e.args.filter((a) => a.indexed).length;
|
||||
|
||||
if (amountIndexed !== amountOfTopics) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// If all conditions met, it's a potential event
|
||||
return true;
|
||||
});
|
||||
|
||||
if (potentialEvents.length === 1) {
|
||||
return potentialEvents[0].fromU8a(data);
|
||||
}
|
||||
|
||||
throw new Error('Unable to determine event');
|
||||
};
|
||||
|
||||
#decodeEventV4 = (record: EventRecord): DecodedEvent => {
|
||||
const data = record.event.data[1] as Bytes;
|
||||
const index = data[0];
|
||||
const event = this.events[index];
|
||||
|
||||
@@ -171,7 +230,7 @@ export class Abi {
|
||||
}
|
||||
|
||||
return event.fromU8a(data.subarray(1));
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Warning: Unstable API, bound to change
|
||||
@@ -195,7 +254,7 @@ export class Abi {
|
||||
return findMessage(this.messages, messageOrId);
|
||||
}
|
||||
|
||||
#createArgs = (args: ContractMessageParamSpecLatest[], spec: unknown): AbiParam[] => {
|
||||
#createArgs = (args: ContractMessageParamSpecLatest[] | ContractEventParamSpecLatest[], spec: unknown): AbiParam[] => {
|
||||
return args.map(({ label, type }, index): AbiParam => {
|
||||
try {
|
||||
if (!isObject(type)) {
|
||||
@@ -233,8 +292,47 @@ export class Abi {
|
||||
});
|
||||
};
|
||||
|
||||
#createEvent = (spec: ContractEventSpecLatest, index: number): AbiEvent => {
|
||||
const args = this.#createArgs(spec.args, spec);
|
||||
#createMessageParams = (args: ContractMessageParamSpecLatest[], spec: unknown): AbiMessageParam[] => {
|
||||
return this.#createArgs(args, spec);
|
||||
};
|
||||
|
||||
#createEventParams = (args: ContractEventParamSpecLatest[], spec: unknown): AbiEventParam[] => {
|
||||
const params = this.#createArgs(args, spec);
|
||||
|
||||
return params.map((p, index): AbiEventParam => ({ ...p, indexed: args[index].indexed.toPrimitive() }));
|
||||
};
|
||||
|
||||
#createEvent = (index: number): AbiEvent => {
|
||||
// TODO TypeScript would narrow this type to the correct version,
|
||||
// but version is `Text` so I need to call `toString()` here,
|
||||
// which breaks the type inference.
|
||||
switch (this.metadata.version.toString()) {
|
||||
case '4':
|
||||
return this.#createEventV4((this.metadata as ContractMetadataV4).spec.events[index], index);
|
||||
default:
|
||||
return this.#createEventV5((this.metadata as ContractMetadataV5).spec.events[index], index);
|
||||
}
|
||||
};
|
||||
|
||||
#createEventV5 = (spec: EventOf<ContractMetadataV5>, index: number): AbiEvent => {
|
||||
const args = this.#createEventParams(spec.args, spec);
|
||||
const event = {
|
||||
args,
|
||||
docs: spec.docs.map((d) => d.toString()),
|
||||
fromU8a: (data: Uint8Array): DecodedEvent => ({
|
||||
args: this.#decodeArgs(args, data),
|
||||
event
|
||||
}),
|
||||
identifier: [spec.module_path, spec.label].join('::'),
|
||||
index,
|
||||
signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null
|
||||
};
|
||||
|
||||
return event;
|
||||
};
|
||||
|
||||
#createEventV4 = (spec: EventOf<ContractMetadataV4>, index: number): AbiEvent => {
|
||||
const args = this.#createEventParams(spec.args, spec);
|
||||
const event = {
|
||||
args,
|
||||
docs: spec.docs.map((d) => d.toString()),
|
||||
@@ -250,7 +348,7 @@ export class Abi {
|
||||
};
|
||||
|
||||
#createMessage = (spec: ContractMessageSpecLatest | ContractConstructorSpecLatest, index: number, add: Partial<AbiMessage> = {}): AbiMessage => {
|
||||
const args = this.#createArgs(spec.args, spec);
|
||||
const args = this.#createMessageParams(spec.args, spec);
|
||||
const identifier = spec.label.toString();
|
||||
const message = {
|
||||
...add,
|
||||
@@ -267,7 +365,7 @@ export class Abi {
|
||||
path: identifier.split('::').map((s) => stringCamelCase(s)),
|
||||
selector: spec.selector,
|
||||
toU8a: (params: unknown[]) =>
|
||||
this.#encodeArgs(spec, args, params)
|
||||
this.#encodeMessageArgs(spec, args, params)
|
||||
};
|
||||
|
||||
return message;
|
||||
@@ -299,7 +397,7 @@ export class Abi {
|
||||
return message.fromU8a(trimmed.subarray(4));
|
||||
};
|
||||
|
||||
#encodeArgs = ({ label, selector }: ContractMessageSpecLatest | ContractConstructorSpecLatest, args: AbiParam[], data: unknown[]): Uint8Array => {
|
||||
#encodeMessageArgs = ({ label, selector }: ContractMessageSpecLatest | ContractConstructorSpecLatest, args: AbiMessageParam[], data: unknown[]): Uint8Array => {
|
||||
if (data.length !== args.length) {
|
||||
throw new Error(`Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`);
|
||||
}
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
// Copyright 2017-2024 @polkadot/api-contract authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import type { ContractMetadataLatest, ContractMetadataV4 } from '@polkadot/types/interfaces';
|
||||
import type { Registry } from '@polkadot/types/types';
|
||||
|
||||
import { v0ToV1 } from './toV1.js';
|
||||
import { v1ToV2 } from './toV2.js';
|
||||
import { v2ToV3 } from './toV3.js';
|
||||
import { v3ToV4 } from './toV4.js';
|
||||
|
||||
// The versions where an enum is used, aka V0 is missing
|
||||
// (Order from newest, i.e. we expect more on newest vs oldest)
|
||||
export const enumVersions = ['V4', 'V3', 'V2', 'V1'] as const;
|
||||
|
||||
type Versions = typeof enumVersions[number] | 'V0';
|
||||
|
||||
type Converter = (registry: Registry, vx: any) => ContractMetadataLatest;
|
||||
|
||||
// Helper to convert metadata from one step to the next
|
||||
function createConverter <I, O> (next: (registry: Registry, input: O) => ContractMetadataLatest, step: (registry: Registry, input: I) => O): (registry: Registry, input: I) => ContractMetadataLatest {
|
||||
return (registry: Registry, input: I): ContractMetadataLatest =>
|
||||
next(registry, step(registry, input));
|
||||
}
|
||||
|
||||
export function v4ToLatest (_registry: Registry, v4: ContractMetadataV4): ContractMetadataLatest {
|
||||
return v4;
|
||||
}
|
||||
|
||||
export const v3ToLatest = /*#__PURE__*/ createConverter(v4ToLatest, v3ToV4);
|
||||
export const v2ToLatest = /*#__PURE__*/ createConverter(v3ToLatest, v2ToV3);
|
||||
export const v1ToLatest = /*#__PURE__*/ createConverter(v2ToLatest, v1ToV2);
|
||||
export const v0ToLatest = /*#__PURE__*/ createConverter(v1ToLatest, v0ToV1);
|
||||
|
||||
export const convertVersions: [Versions, Converter][] = [
|
||||
['V4', v4ToLatest],
|
||||
['V3', v3ToLatest],
|
||||
['V2', v2ToLatest],
|
||||
['V1', v1ToLatest],
|
||||
['V0', v0ToLatest]
|
||||
];
|
||||
+67
-13
@@ -6,12 +6,12 @@
|
||||
import { TypeRegistry } from '@polkadot/types';
|
||||
|
||||
import abis from '../test/contracts/index.js';
|
||||
import { v0ToLatest, v1ToLatest, v2ToLatest, v3ToLatest, v4ToLatest } from './toLatest.js';
|
||||
import { v0ToLatestCompatible, v1ToLatestCompatible, v2ToLatestCompatible, v3ToLatestCompatible, v4ToLatestCompatible, v5ToLatestCompatible } from './toLatestCompatible.js';
|
||||
|
||||
describe('v0ToLatest', (): void => {
|
||||
describe('v0ToLatestCompatible', (): void => {
|
||||
const registry = new TypeRegistry();
|
||||
const contract = registry.createType('ContractMetadata', { V0: abis['ink_v0_erc20'] });
|
||||
const latest = v0ToLatest(registry, contract.asV0);
|
||||
const latest = v0ToLatestCompatible(registry, contract.asV0);
|
||||
|
||||
it('has the correct constructors', (): void => {
|
||||
expect(
|
||||
@@ -48,12 +48,16 @@ describe('v0ToLatest', (): void => {
|
||||
latest.spec.events[0].args.map(({ label }) => label.toString())
|
||||
).toEqual(['from', 'to', 'value']);
|
||||
});
|
||||
|
||||
it('has the latest compatible version number', (): void => {
|
||||
expect(latest.version.toString()).toEqual('4');
|
||||
});
|
||||
});
|
||||
|
||||
describe('v1ToLatest', (): void => {
|
||||
describe('v1ToLatestCompatible', (): void => {
|
||||
const registry = new TypeRegistry();
|
||||
const contract = registry.createType('ContractMetadata', { V1: abis['ink_v1_flipper']['V1'] });
|
||||
const latest = v1ToLatest(registry, contract.asV1);
|
||||
const latest = v1ToLatestCompatible(registry, contract.asV1);
|
||||
|
||||
it('has the correct constructors', (): void => {
|
||||
expect(
|
||||
@@ -69,7 +73,7 @@ describe('v1ToLatest', (): void => {
|
||||
|
||||
it('has the correct messages with namespaced method name', (): void => {
|
||||
const contract = registry.createType('ContractMetadata', { V1: abis['ink_v1_psp22']['V1'] });
|
||||
const latest = v1ToLatest(registry, contract.asV1);
|
||||
const latest = v1ToLatestCompatible(registry, contract.asV1);
|
||||
|
||||
expect(
|
||||
latest.spec.messages.map(({ label }) => label.toString())
|
||||
@@ -83,24 +87,32 @@ describe('v1ToLatest', (): void => {
|
||||
latest.spec.constructors[0].args.map(({ label }) => label.toString())
|
||||
).toEqual(['init_value']);
|
||||
});
|
||||
|
||||
it('has the latest compatible version number', (): void => {
|
||||
expect(latest.version.toString()).toEqual('4');
|
||||
});
|
||||
});
|
||||
|
||||
describe('v2ToLatest', (): void => {
|
||||
describe('v2ToLatestCompatible', (): void => {
|
||||
const registry = new TypeRegistry();
|
||||
const contract = registry.createType('ContractMetadata', { V2: abis['ink_v2_flipper']['V2'] });
|
||||
const latest = v2ToLatest(registry, contract.asV2);
|
||||
const latest = v2ToLatestCompatible(registry, contract.asV2);
|
||||
|
||||
it('has the correct constructor flag', (): void => {
|
||||
expect(
|
||||
latest.spec.constructors[0].payable.isTrue
|
||||
).toEqual(true);
|
||||
});
|
||||
|
||||
it('has the latest compatible version number', (): void => {
|
||||
expect(latest.version.toString()).toEqual('4');
|
||||
});
|
||||
});
|
||||
|
||||
describe('v3ToLatest', (): void => {
|
||||
describe('v3ToLatestCompatible', (): void => {
|
||||
const registry = new TypeRegistry();
|
||||
const contract = registry.createType('ContractMetadata', { V3: abis['ink_v3_flipper']['V3'] });
|
||||
const latest = v3ToLatest(registry, contract.asV3);
|
||||
const latest = v3ToLatestCompatible(registry, contract.asV3);
|
||||
|
||||
it('has the correct constructor flags', (): void => {
|
||||
expect(
|
||||
@@ -113,7 +125,7 @@ describe('v3ToLatest', (): void => {
|
||||
|
||||
it('has the correct messages', (): void => {
|
||||
const contract = registry.createType('ContractMetadata', { V3: abis['ink_v3_traitErc20']['V3'] });
|
||||
const latest = v3ToLatest(registry, contract.asV3);
|
||||
const latest = v3ToLatestCompatible(registry, contract.asV3);
|
||||
|
||||
expect(
|
||||
latest.spec.messages.map(({ label }) => label.toString())
|
||||
@@ -121,12 +133,16 @@ describe('v3ToLatest', (): void => {
|
||||
'BaseErc20::total_supply', 'BaseErc20::balance_of', 'BaseErc20::allowance', 'BaseErc20::transfer', 'BaseErc20::approve', 'BaseErc20::transfer_from'
|
||||
]);
|
||||
});
|
||||
|
||||
it('has the latest compatible version number', (): void => {
|
||||
expect(latest.version.toString()).toEqual('4');
|
||||
});
|
||||
});
|
||||
|
||||
describe('v4ToLatest', (): void => {
|
||||
describe('v4ToLatestCompatible', (): void => {
|
||||
const registry = new TypeRegistry();
|
||||
const contract = registry.createType('ContractMetadata', { V4: abis['ink_v4_flipperContract'] });
|
||||
const latest = v4ToLatest(registry, contract.asV4);
|
||||
const latest = v4ToLatestCompatible(registry, contract.asV4);
|
||||
|
||||
it('has the correct constructor flags', (): void => {
|
||||
expect(
|
||||
@@ -136,4 +152,42 @@ describe('v4ToLatest', (): void => {
|
||||
latest.spec.constructors[1].payable.isTrue
|
||||
).toEqual(false);
|
||||
});
|
||||
|
||||
it('has the latest compatible version number', (): void => {
|
||||
expect(latest.version.toString()).toEqual('4');
|
||||
});
|
||||
});
|
||||
|
||||
describe('v5ToLatestCompatible', (): void => {
|
||||
const registry = new TypeRegistry();
|
||||
const contract = registry.createType('ContractMetadata', { V5: abis['ink_v5_erc20Metadata'] });
|
||||
const latest = v5ToLatestCompatible(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');
|
||||
});
|
||||
|
||||
it('has the latest compatible version number', (): void => {
|
||||
expect(latest.version.toString()).toEqual('5');
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,47 @@
|
||||
// Copyright 2017-2024 @polkadot/api-contract authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import type { ContractMetadataV4, ContractMetadataV5 } from '@polkadot/types/interfaces';
|
||||
import type { Registry } from '@polkadot/types/types';
|
||||
import type { ContractMetadataSupported } from './index.js';
|
||||
|
||||
import { v0ToV1 } from './toV1.js';
|
||||
import { v1ToV2 } from './toV2.js';
|
||||
import { v2ToV3 } from './toV3.js';
|
||||
import { v3ToV4 } from './toV4.js';
|
||||
|
||||
// The versions where an enum is used, aka V0 is missing
|
||||
// (Order from newest, i.e. we expect more on newest vs oldest)
|
||||
export const enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1'] as const;
|
||||
|
||||
type Versions = typeof enumVersions[number] | 'V0';
|
||||
|
||||
type Converter = (registry: Registry, vx: any) => ContractMetadataSupported;
|
||||
|
||||
// Helper to convert metadata from one step to the next
|
||||
function createConverter <I, O> (next: (registry: Registry, input: O) => ContractMetadataSupported, step: (registry: Registry, input: I) => O): (registry: Registry, input: I) => ContractMetadataSupported {
|
||||
return (registry: Registry, input: I): ContractMetadataSupported =>
|
||||
next(registry, step(registry, input));
|
||||
}
|
||||
|
||||
export function v5ToLatestCompatible (_registry: Registry, v5: ContractMetadataV5): ContractMetadataV5 {
|
||||
return v5;
|
||||
}
|
||||
|
||||
export function v4ToLatestCompatible (_registry: Registry, v4: ContractMetadataV4): ContractMetadataV4 {
|
||||
return v4;
|
||||
}
|
||||
|
||||
export const v3ToLatestCompatible = /*#__PURE__*/ createConverter(v4ToLatestCompatible, v3ToV4);
|
||||
export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestCompatible, v2ToV3);
|
||||
export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2);
|
||||
export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1);
|
||||
|
||||
export const convertVersions: [Versions, Converter][] = [
|
||||
['V5', v5ToLatestCompatible],
|
||||
['V4', v4ToLatestCompatible],
|
||||
['V3', v3ToLatestCompatible],
|
||||
['V2', v2ToLatestCompatible],
|
||||
['V1', v1ToLatestCompatible],
|
||||
['V0', v0ToLatestCompatible]
|
||||
];
|
||||
@@ -15,6 +15,7 @@ export function v3ToV4 (registry: Registry, v3: ContractMetadataV3): ContractMet
|
||||
messages: v3.spec.messages.map((m) =>
|
||||
registry.createType('ContractMessageSpecV3', objectSpread({}, m))
|
||||
)
|
||||
})
|
||||
}),
|
||||
version: registry.createType('Text', '4')
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
import type { ApiBase } from '@polkadot/api/base';
|
||||
import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types';
|
||||
import type { ApiTypes, DecorateMethod } from '@polkadot/api/types';
|
||||
import type { Bytes } from '@polkadot/types';
|
||||
import type { AccountId, ContractExecResult, EventRecord, Weight, WeightV2 } from '@polkadot/types/interfaces';
|
||||
import type { ISubmittableResult } from '@polkadot/types/types';
|
||||
import type { Abi } from '../Abi/index.js';
|
||||
@@ -115,9 +114,9 @@ export class Contract<ApiType extends ApiTypes> extends Base<ApiType> {
|
||||
// ContractEmitted is the current generation, ContractExecution is the previous generation
|
||||
new ContractSubmittableResult(result, applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], (records: EventRecord[]) =>
|
||||
records
|
||||
.map(({ event: { data: [, data] } }): DecodedEvent | null => {
|
||||
.map((record): DecodedEvent | null => {
|
||||
try {
|
||||
return this.abi.decodeEvent(data as Bytes);
|
||||
return this.abi.decodeEvent(record);
|
||||
} catch (error) {
|
||||
l.error(`Unable to decode contract event: ${(error as Error).message}`);
|
||||
|
||||
|
||||
@@ -0,0 +1,253 @@
|
||||
[
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 0,
|
||||
"type": "u128",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"info": "Result",
|
||||
"lookupIndex": 1,
|
||||
"type": "Result<Null, InkPrimitivesLangError>",
|
||||
"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<u128, InkPrimitivesLangError>",
|
||||
"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<Result<Null, Erc20Error>, InkPrimitivesLangError>",
|
||||
"docs": [],
|
||||
"namespace": "Result",
|
||||
"sub": [
|
||||
{
|
||||
"name": "Ok",
|
||||
"info": "Result",
|
||||
"lookupIndex": 9,
|
||||
"type": "Result<Null, Erc20Error>",
|
||||
"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<Null, Erc20Error>",
|
||||
"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<AccountId>",
|
||||
"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"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,253 @@
|
||||
[
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 0,
|
||||
"type": "u128",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"info": "Result",
|
||||
"lookupIndex": 1,
|
||||
"type": "Result<Null, InkPrimitivesLangError>",
|
||||
"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<u128, InkPrimitivesLangError>",
|
||||
"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<Result<Null, Erc20Error>, InkPrimitivesLangError>",
|
||||
"docs": [],
|
||||
"namespace": "Result",
|
||||
"sub": [
|
||||
{
|
||||
"name": "Ok",
|
||||
"info": "Result",
|
||||
"lookupIndex": 9,
|
||||
"type": "Result<Null, Erc20Error>",
|
||||
"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<Null, Erc20Error>",
|
||||
"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<AccountId>",
|
||||
"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"
|
||||
}
|
||||
]
|
||||
@@ -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<Null, InkPrimitivesLangError>",
|
||||
"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<u128, InkPrimitivesLangError>",
|
||||
"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<Result<Null, Erc20Error>, InkPrimitivesLangError>",
|
||||
"docs": [],
|
||||
"namespace": "Result",
|
||||
"sub": [
|
||||
{
|
||||
"name": "Ok",
|
||||
"info": "Result",
|
||||
"lookupIndex": 18,
|
||||
"type": "Result<Null, Erc20Error>",
|
||||
"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<Null, Erc20Error>",
|
||||
"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<AccountId>",
|
||||
"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"
|
||||
}
|
||||
]
|
||||
+370
@@ -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<Null, InkPrimitivesLangError>",
|
||||
"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<u128, InkPrimitivesLangError>",
|
||||
"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<Result<Null, Erc20Error>, InkPrimitivesLangError>",
|
||||
"docs": [],
|
||||
"namespace": "Result",
|
||||
"sub": [
|
||||
{
|
||||
"name": "Ok",
|
||||
"info": "Result",
|
||||
"lookupIndex": 18,
|
||||
"type": "Result<Null, Erc20Error>",
|
||||
"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<Null, Erc20Error>",
|
||||
"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<AccountId>",
|
||||
"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"
|
||||
}
|
||||
]
|
||||
@@ -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<Null, InkPrimitivesLangError>",
|
||||
"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<u128, InkPrimitivesLangError>",
|
||||
"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<Result<Null, Erc20Error>, InkPrimitivesLangError>",
|
||||
"docs": [],
|
||||
"namespace": "Result",
|
||||
"sub": [
|
||||
{
|
||||
"name": "Ok",
|
||||
"info": "Result",
|
||||
"lookupIndex": 18,
|
||||
"type": "Result<Null, Erc20Error>",
|
||||
"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<Null, Erc20Error>",
|
||||
"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<AccountId>",
|
||||
"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"
|
||||
}
|
||||
]
|
||||
@@ -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<Null, InkPrimitivesLangError>",
|
||||
"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<u128, InkPrimitivesLangError>",
|
||||
"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<Result<Null, Erc20Error>, InkPrimitivesLangError>",
|
||||
"docs": [],
|
||||
"namespace": "Result",
|
||||
"sub": [
|
||||
{
|
||||
"name": "Ok",
|
||||
"info": "Result",
|
||||
"lookupIndex": 18,
|
||||
"type": "Result<Null, Erc20Error>",
|
||||
"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<Null, Erc20Error>",
|
||||
"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<AccountId>",
|
||||
"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"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,174 @@
|
||||
[
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 0,
|
||||
"type": "bool",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"info": "Struct",
|
||||
"lookupIndex": 1,
|
||||
"lookupName": "Flipper",
|
||||
"type": "{\"value\":\"bool\"}",
|
||||
"docs": [],
|
||||
"namespace": "flipper::flipper::Flipper",
|
||||
"sub": [
|
||||
{
|
||||
"docs": [],
|
||||
"name": "value",
|
||||
"info": "Plain",
|
||||
"lookupIndex": 0,
|
||||
"type": "bool",
|
||||
"namespace": "",
|
||||
"typeName": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"info": "Result",
|
||||
"lookupIndex": 2,
|
||||
"type": "Result<Null, InkPrimitivesLangError>",
|
||||
"docs": [],
|
||||
"namespace": "Result",
|
||||
"sub": [
|
||||
{
|
||||
"name": "Ok",
|
||||
"info": "Null",
|
||||
"lookupIndex": 3,
|
||||
"type": "Null",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"name": "Error",
|
||||
"docs": [],
|
||||
"info": "Si",
|
||||
"lookupIndex": 4,
|
||||
"lookupName": "InkPrimitivesLangError",
|
||||
"type": "Lookup4"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"info": "Null",
|
||||
"lookupIndex": 3,
|
||||
"type": "Null",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"info": "Enum",
|
||||
"lookupIndex": 4,
|
||||
"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": 5,
|
||||
"type": "Result<bool, InkPrimitivesLangError>",
|
||||
"docs": [],
|
||||
"namespace": "Result",
|
||||
"sub": [
|
||||
{
|
||||
"name": "Ok",
|
||||
"info": "Plain",
|
||||
"lookupIndex": 0,
|
||||
"type": "bool",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"name": "Error",
|
||||
"docs": [],
|
||||
"info": "Si",
|
||||
"lookupIndex": 4,
|
||||
"lookupName": "InkPrimitivesLangError",
|
||||
"type": "Lookup4"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 6,
|
||||
"type": "AccountId",
|
||||
"docs": [],
|
||||
"namespace": "ink_primitives::types::AccountId",
|
||||
"lookupNameRoot": "InkPrimitivesAccountId"
|
||||
},
|
||||
{
|
||||
"info": "VecFixed",
|
||||
"lookupIndex": 7,
|
||||
"type": "[u8;32]",
|
||||
"docs": [],
|
||||
"namespace": "",
|
||||
"length": 32,
|
||||
"sub": {
|
||||
"info": "Plain",
|
||||
"lookupIndex": 8,
|
||||
"type": "u8",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 8,
|
||||
"type": "u8",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 9,
|
||||
"type": "u128",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 10,
|
||||
"type": "Hash",
|
||||
"docs": [],
|
||||
"namespace": "ink_primitives::types::Hash",
|
||||
"lookupNameRoot": "InkPrimitivesHash"
|
||||
},
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 11,
|
||||
"type": "u64",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 12,
|
||||
"type": "u32",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 13,
|
||||
"type": "NoChainExtension",
|
||||
"docs": [],
|
||||
"namespace": "ink_env::types::NoChainExtension",
|
||||
"lookupNameRoot": "InkEnvNoChainExtension"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,174 @@
|
||||
[
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 0,
|
||||
"type": "bool",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"info": "Struct",
|
||||
"lookupIndex": 1,
|
||||
"lookupName": "Flipper",
|
||||
"type": "{\"value\":\"bool\"}",
|
||||
"docs": [],
|
||||
"namespace": "flipper::flipper::Flipper",
|
||||
"sub": [
|
||||
{
|
||||
"docs": [],
|
||||
"name": "value",
|
||||
"info": "Plain",
|
||||
"lookupIndex": 0,
|
||||
"type": "bool",
|
||||
"namespace": "",
|
||||
"typeName": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"info": "Result",
|
||||
"lookupIndex": 2,
|
||||
"type": "Result<Null, InkPrimitivesLangError>",
|
||||
"docs": [],
|
||||
"namespace": "Result",
|
||||
"sub": [
|
||||
{
|
||||
"name": "Ok",
|
||||
"info": "Null",
|
||||
"lookupIndex": 3,
|
||||
"type": "Null",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"name": "Error",
|
||||
"docs": [],
|
||||
"info": "Si",
|
||||
"lookupIndex": 4,
|
||||
"lookupName": "InkPrimitivesLangError",
|
||||
"type": "Lookup4"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"info": "Null",
|
||||
"lookupIndex": 3,
|
||||
"type": "Null",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"info": "Enum",
|
||||
"lookupIndex": 4,
|
||||
"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": 5,
|
||||
"type": "Result<bool, InkPrimitivesLangError>",
|
||||
"docs": [],
|
||||
"namespace": "Result",
|
||||
"sub": [
|
||||
{
|
||||
"name": "Ok",
|
||||
"info": "Plain",
|
||||
"lookupIndex": 0,
|
||||
"type": "bool",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"name": "Error",
|
||||
"docs": [],
|
||||
"info": "Si",
|
||||
"lookupIndex": 4,
|
||||
"lookupName": "InkPrimitivesLangError",
|
||||
"type": "Lookup4"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 6,
|
||||
"type": "AccountId",
|
||||
"docs": [],
|
||||
"namespace": "ink_primitives::types::AccountId",
|
||||
"lookupNameRoot": "InkPrimitivesAccountId"
|
||||
},
|
||||
{
|
||||
"info": "VecFixed",
|
||||
"lookupIndex": 7,
|
||||
"type": "[u8;32]",
|
||||
"docs": [],
|
||||
"namespace": "",
|
||||
"length": 32,
|
||||
"sub": {
|
||||
"info": "Plain",
|
||||
"lookupIndex": 8,
|
||||
"type": "u8",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 8,
|
||||
"type": "u8",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 9,
|
||||
"type": "u128",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 10,
|
||||
"type": "Hash",
|
||||
"docs": [],
|
||||
"namespace": "ink_primitives::types::Hash",
|
||||
"lookupNameRoot": "InkPrimitivesHash"
|
||||
},
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 11,
|
||||
"type": "u64",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 12,
|
||||
"type": "u32",
|
||||
"docs": [],
|
||||
"namespace": ""
|
||||
},
|
||||
{
|
||||
"info": "Plain",
|
||||
"lookupIndex": 13,
|
||||
"type": "NoChainExtension",
|
||||
"docs": [],
|
||||
"namespace": "ink_env::types::NoChainExtension",
|
||||
"lookupNameRoot": "InkEnvNoChainExtension"
|
||||
}
|
||||
]
|
||||
@@ -7,5 +7,6 @@ import * as v1 from './v1/index.js';
|
||||
import * as v2 from './v2/index.js';
|
||||
import * as v3 from './v3/index.js';
|
||||
import * as v4 from './v4/index.js';
|
||||
import * as v5 from './v5/index.js';
|
||||
|
||||
export default createVersionedExport({ v0, v1, v2, v3, v4 });
|
||||
export default createVersionedExport({ v0, v1, v2, v3, v4, v5 });
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -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 <admin@parity.io>"
|
||||
]
|
||||
},
|
||||
"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"
|
||||
}
|
||||
Binary file not shown.
@@ -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' };
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,420 @@
|
||||
{
|
||||
"source": {
|
||||
"hash": "0xaf1c6d2ea289d7d4f8753db2d658782f4d066544f3ee34b3d54272075ad0de99",
|
||||
"language": "ink! 5.0.0-rc.1",
|
||||
"compiler": "rustc 1.75.0",
|
||||
"build_info": {
|
||||
"build_mode": "Debug",
|
||||
"cargo_contract_version": "4.0.0-rc.2",
|
||||
"rust_toolchain": "stable-aarch64-apple-darwin",
|
||||
"wasm_opt_settings": {
|
||||
"keep_debug_symbols": false,
|
||||
"optimization_passes": "Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
"contract": {
|
||||
"name": "flipper",
|
||||
"version": "5.0.0-rc.1",
|
||||
"authors": [
|
||||
"Parity Technologies <admin@parity.io>"
|
||||
]
|
||||
},
|
||||
"image": null,
|
||||
"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": "<bool as::ink::storage::traits::AutoStorableHint<::ink::storage\n::traits::ManualKey<2054318728u32, ()>,>>::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
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
// 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 erc20AnonymousTransferMetadata } from './erc20_anonymous_transfer.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' };
|
||||
@@ -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<ApiType extends ApiTypes> {
|
||||
@@ -22,16 +23,23 @@ export interface AbiParam {
|
||||
type: TypeDef;
|
||||
}
|
||||
|
||||
export type AbiMessageParam = AbiParam
|
||||
|
||||
export interface AbiEventParam extends AbiParam{
|
||||
indexed: boolean;
|
||||
}
|
||||
|
||||
export interface AbiEvent {
|
||||
args: AbiParam[];
|
||||
args: AbiEventParam[];
|
||||
docs: string[];
|
||||
fromU8a: (data: Uint8Array) => DecodedEvent;
|
||||
identifier: string;
|
||||
index: number;
|
||||
signatureTopic?: HexString | null;
|
||||
}
|
||||
|
||||
export interface AbiMessage {
|
||||
args: AbiParam[];
|
||||
args: AbiMessageParam[];
|
||||
docs: string[];
|
||||
fromU8a: (data: Uint8Array) => DecodedMessage;
|
||||
identifier: string;
|
||||
|
||||
@@ -17,9 +17,10 @@
|
||||
"mock.ts"
|
||||
],
|
||||
"references": [
|
||||
{ "path": "../api/tsconfig.build.json" },
|
||||
{ "path": "../api-augment/tsconfig.build.json" },
|
||||
{ "path": "../api-contract/tsconfig.build.json" },
|
||||
{ "path": "../api/tsconfig.build.json" },
|
||||
{ "path": "../types-support/tsconfig.build.json" },
|
||||
{ "path": "../types/tsconfig.build.json" }
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user