* Updated ABI definitions & parsing * Run type generation * Definitions (should be ok-ish) * Cleanup names * Allow aliasses on structs (JSON parsing) * Cleanup json mapping passing * s/types/lookup/ * Parsing as per current output * InkSelector * MtRegistryIndex * String lookup tests * Remove serd ovverride comments (it works as-is) * inkRegistry tests * Extract primitive types * s/ty/id/ * Start of parsing into types (actually to be TypeDef) * Parsing * stringify struct fields * Small cleanups * Add type index to project lookup * Prefix with index * Fix interface generation * Latest contract metadata (#2118) * Add new (provisional) incrementer contract metadata * Update and regenerate type definitions * WIP: generate new format scale-info types * WIP: implementing variants * Implement variants * Fix up type resolution * Fix registry spec tests * Fix lints and some tests * Fix inkTypes tests * Fix some lints * Make imports same line like original * Comment out (temporarily) sanitize import to make CI pass * Sanitize * Remove indices * Remove index * Adjust ContractAbi interface (empty rpc) * linting * Pull in Andrew's changes * Cleanups * Some more cleanups * Update with v3 contracts * Adjust with actual types * Regenerate * Update ABI parsing (#2695) * Adjust ABI code * Cleanup * Merge non-code * Type naming * Simplify Base * Rename 1 * rename 2 * Rename 3 * Simplify * Add index to AbiMessage * Pass actual message or index for call * Rename param * Simplify * Expose call & exec * s/call/read/ * Cleanup asserts * AccountId as per spec * displayName is path * Update definitions * Flatten ABIType into TypeDef * Rewrite * Fix tests * Updates Co-authored-by: Andrew Jones <ascjones@gmail.com>
704 lines
16 KiB
JSON
704 lines
16 KiB
JSON
{
|
|
"metadataVersion": "0.1.0",
|
|
"source": {
|
|
"hash": "0xae28fa9f075f218d559a36f720b0704b2c09326590fe19d7d76a7eaa40d079b3",
|
|
"language": "ink! 3.0.0",
|
|
"compiler": "rustc 1.48.0-nightly"
|
|
},
|
|
"contract": {
|
|
"name": "erc20",
|
|
"version": "3.0.0",
|
|
"authors": [
|
|
"Parity Technologies <admin@parity.io>"
|
|
]
|
|
},
|
|
"spec": {
|
|
"constructors": [
|
|
{
|
|
"args": [
|
|
{
|
|
"name": "initial_supply",
|
|
"type": {
|
|
"displayName": [
|
|
"Balance"
|
|
],
|
|
"id": 1
|
|
}
|
|
}
|
|
],
|
|
"docs": [],
|
|
"name": [
|
|
"new"
|
|
],
|
|
"selector": "0xd183512b"
|
|
}
|
|
],
|
|
"docs": [],
|
|
"events": [
|
|
{
|
|
"args": [
|
|
{
|
|
"docs": [],
|
|
"indexed": true,
|
|
"name": "from",
|
|
"type": {
|
|
"displayName": [
|
|
"Option"
|
|
],
|
|
"id": 13
|
|
}
|
|
},
|
|
{
|
|
"docs": [],
|
|
"indexed": true,
|
|
"name": "to",
|
|
"type": {
|
|
"displayName": [
|
|
"Option"
|
|
],
|
|
"id": 13
|
|
}
|
|
},
|
|
{
|
|
"docs": [],
|
|
"indexed": true,
|
|
"name": "value",
|
|
"type": {
|
|
"displayName": [
|
|
"Balance"
|
|
],
|
|
"id": 1
|
|
}
|
|
}
|
|
],
|
|
"docs": [],
|
|
"name": "Transfer"
|
|
},
|
|
{
|
|
"args": [
|
|
{
|
|
"docs": [],
|
|
"indexed": true,
|
|
"name": "owner",
|
|
"type": {
|
|
"displayName": [
|
|
"AccountId"
|
|
],
|
|
"id": 5
|
|
}
|
|
},
|
|
{
|
|
"docs": [],
|
|
"indexed": true,
|
|
"name": "spender",
|
|
"type": {
|
|
"displayName": [
|
|
"AccountId"
|
|
],
|
|
"id": 5
|
|
}
|
|
},
|
|
{
|
|
"docs": [],
|
|
"indexed": true,
|
|
"name": "value",
|
|
"type": {
|
|
"displayName": [
|
|
"Balance"
|
|
],
|
|
"id": 1
|
|
}
|
|
}
|
|
],
|
|
"docs": [],
|
|
"name": "Approval"
|
|
}
|
|
],
|
|
"messages": [
|
|
{
|
|
"args": [],
|
|
"docs": [],
|
|
"mutates": false,
|
|
"name": [
|
|
"total_supply"
|
|
],
|
|
"payable": false,
|
|
"returnType": {
|
|
"displayName": [
|
|
"Balance"
|
|
],
|
|
"id": 1
|
|
},
|
|
"selector": "0xdcb736b5"
|
|
},
|
|
{
|
|
"args": [
|
|
{
|
|
"name": "owner",
|
|
"type": {
|
|
"displayName": [
|
|
"AccountId"
|
|
],
|
|
"id": 5
|
|
}
|
|
}
|
|
],
|
|
"docs": [],
|
|
"mutates": false,
|
|
"name": [
|
|
"balance_of"
|
|
],
|
|
"payable": false,
|
|
"returnType": {
|
|
"displayName": [
|
|
"Balance"
|
|
],
|
|
"id": 1
|
|
},
|
|
"selector": "0x56e929b2"
|
|
},
|
|
{
|
|
"args": [
|
|
{
|
|
"name": "owner",
|
|
"type": {
|
|
"displayName": [
|
|
"AccountId"
|
|
],
|
|
"id": 5
|
|
}
|
|
},
|
|
{
|
|
"name": "spender",
|
|
"type": {
|
|
"displayName": [
|
|
"AccountId"
|
|
],
|
|
"id": 5
|
|
}
|
|
}
|
|
],
|
|
"docs": [],
|
|
"mutates": false,
|
|
"name": [
|
|
"allowance"
|
|
],
|
|
"payable": false,
|
|
"returnType": {
|
|
"displayName": [
|
|
"Balance"
|
|
],
|
|
"id": 1
|
|
},
|
|
"selector": "0xf3cfff66"
|
|
},
|
|
{
|
|
"args": [
|
|
{
|
|
"name": "to",
|
|
"type": {
|
|
"displayName": [
|
|
"AccountId"
|
|
],
|
|
"id": 5
|
|
}
|
|
},
|
|
{
|
|
"name": "value",
|
|
"type": {
|
|
"displayName": [
|
|
"Balance"
|
|
],
|
|
"id": 1
|
|
}
|
|
}
|
|
],
|
|
"docs": [],
|
|
"mutates": true,
|
|
"name": [
|
|
"transfer"
|
|
],
|
|
"payable": false,
|
|
"returnType": {
|
|
"displayName": [
|
|
"bool"
|
|
],
|
|
"id": 12
|
|
},
|
|
"selector": "0xfae3a09d"
|
|
},
|
|
{
|
|
"args": [
|
|
{
|
|
"name": "spender",
|
|
"type": {
|
|
"displayName": [
|
|
"AccountId"
|
|
],
|
|
"id": 5
|
|
}
|
|
},
|
|
{
|
|
"name": "value",
|
|
"type": {
|
|
"displayName": [
|
|
"Balance"
|
|
],
|
|
"id": 1
|
|
}
|
|
}
|
|
],
|
|
"docs": [],
|
|
"mutates": true,
|
|
"name": [
|
|
"approve"
|
|
],
|
|
"payable": false,
|
|
"returnType": {
|
|
"displayName": [
|
|
"bool"
|
|
],
|
|
"id": 12
|
|
},
|
|
"selector": "0x03d0e114"
|
|
},
|
|
{
|
|
"args": [
|
|
{
|
|
"name": "from",
|
|
"type": {
|
|
"displayName": [
|
|
"AccountId"
|
|
],
|
|
"id": 5
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"type": {
|
|
"displayName": [
|
|
"AccountId"
|
|
],
|
|
"id": 5
|
|
}
|
|
},
|
|
{
|
|
"name": "value",
|
|
"type": {
|
|
"displayName": [
|
|
"Balance"
|
|
],
|
|
"id": 1
|
|
}
|
|
}
|
|
],
|
|
"docs": [],
|
|
"mutates": true,
|
|
"name": [
|
|
"transfer_from"
|
|
],
|
|
"payable": false,
|
|
"returnType": {
|
|
"displayName": [
|
|
"bool"
|
|
],
|
|
"id": 12
|
|
},
|
|
"selector": "0xfcfb2ccd"
|
|
}
|
|
]
|
|
},
|
|
"storage": {
|
|
"struct": {
|
|
"fields": [
|
|
{
|
|
"layout": {
|
|
"cell": {
|
|
"key": "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
"ty": 1
|
|
}
|
|
},
|
|
"name": "total_supply"
|
|
},
|
|
{
|
|
"layout": {
|
|
"struct": {
|
|
"fields": [
|
|
{
|
|
"layout": {
|
|
"struct": {
|
|
"fields": [
|
|
{
|
|
"layout": {
|
|
"cell": {
|
|
"key": "0x0100000000000000000000000000000000000000000000000000000000000000",
|
|
"ty": 2
|
|
}
|
|
},
|
|
"name": "header"
|
|
},
|
|
{
|
|
"layout": {
|
|
"struct": {
|
|
"fields": [
|
|
{
|
|
"layout": {
|
|
"cell": {
|
|
"key": "0x0200000000000000000000000000000000000000000000000000000000000000",
|
|
"ty": 3
|
|
}
|
|
},
|
|
"name": "len"
|
|
},
|
|
{
|
|
"layout": {
|
|
"array": {
|
|
"cells_per_elem": 1,
|
|
"layout": {
|
|
"cell": {
|
|
"key": "0x0200000001000000000000000000000000000000000000000000000000000000",
|
|
"ty": 4
|
|
}
|
|
},
|
|
"len": 4294967295,
|
|
"offset": "0x0300000000000000000000000000000000000000000000000000000000000000"
|
|
}
|
|
},
|
|
"name": "elems"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"name": "entries"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"name": "keys"
|
|
},
|
|
{
|
|
"layout": {
|
|
"hash": {
|
|
"layout": {
|
|
"cell": {
|
|
"key": "0x0300000001000000000000000000000000000000000000000000000000000000",
|
|
"ty": 9
|
|
}
|
|
},
|
|
"offset": "0x0200000001000000000000000000000000000000000000000000000000000000",
|
|
"strategy": {
|
|
"hasher": "Blake2x256",
|
|
"postfix": "",
|
|
"prefix": "0x696e6b20686173686d6170"
|
|
}
|
|
}
|
|
},
|
|
"name": "values"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"name": "balances"
|
|
},
|
|
{
|
|
"layout": {
|
|
"struct": {
|
|
"fields": [
|
|
{
|
|
"layout": {
|
|
"struct": {
|
|
"fields": [
|
|
{
|
|
"layout": {
|
|
"cell": {
|
|
"key": "0x0300000001000000000000000000000000000000000000000000000000000000",
|
|
"ty": 2
|
|
}
|
|
},
|
|
"name": "header"
|
|
},
|
|
{
|
|
"layout": {
|
|
"struct": {
|
|
"fields": [
|
|
{
|
|
"layout": {
|
|
"cell": {
|
|
"key": "0x0400000001000000000000000000000000000000000000000000000000000000",
|
|
"ty": 3
|
|
}
|
|
},
|
|
"name": "len"
|
|
},
|
|
{
|
|
"layout": {
|
|
"array": {
|
|
"cells_per_elem": 1,
|
|
"layout": {
|
|
"cell": {
|
|
"key": "0x0400000002000000000000000000000000000000000000000000000000000000",
|
|
"ty": 10
|
|
}
|
|
},
|
|
"len": 4294967295,
|
|
"offset": "0x0500000001000000000000000000000000000000000000000000000000000000"
|
|
}
|
|
},
|
|
"name": "elems"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"name": "entries"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"name": "keys"
|
|
},
|
|
{
|
|
"layout": {
|
|
"hash": {
|
|
"layout": {
|
|
"cell": {
|
|
"key": "0x0500000002000000000000000000000000000000000000000000000000000000",
|
|
"ty": 9
|
|
}
|
|
},
|
|
"offset": "0x0400000002000000000000000000000000000000000000000000000000000000",
|
|
"strategy": {
|
|
"hasher": "Blake2x256",
|
|
"postfix": "",
|
|
"prefix": "0x696e6b20686173686d6170"
|
|
}
|
|
}
|
|
},
|
|
"name": "values"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"name": "allowances"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"types": [
|
|
{
|
|
"def": {
|
|
"primitive": "u128"
|
|
}
|
|
},
|
|
{
|
|
"def": {
|
|
"composite": {
|
|
"fields": [
|
|
{
|
|
"name": "last_vacant",
|
|
"type": 3
|
|
},
|
|
{
|
|
"name": "len",
|
|
"type": 3
|
|
},
|
|
{
|
|
"name": "len_entries",
|
|
"type": 3
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"path": [
|
|
"ink_storage",
|
|
"collections",
|
|
"stash",
|
|
"Header"
|
|
]
|
|
},
|
|
{
|
|
"def": {
|
|
"primitive": "u32"
|
|
}
|
|
},
|
|
{
|
|
"def": {
|
|
"variant": {
|
|
"variants": [
|
|
{
|
|
"fields": [
|
|
{
|
|
"type": 8
|
|
}
|
|
],
|
|
"name": "Vacant"
|
|
},
|
|
{
|
|
"fields": [
|
|
{
|
|
"type": 5
|
|
}
|
|
],
|
|
"name": "Occupied"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"params": [
|
|
5
|
|
],
|
|
"path": [
|
|
"ink_storage",
|
|
"collections",
|
|
"stash",
|
|
"Entry"
|
|
]
|
|
},
|
|
{
|
|
"def": {
|
|
"composite": {
|
|
"fields": [
|
|
{
|
|
"type": 6
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"path": [
|
|
"ink_env",
|
|
"types",
|
|
"AccountId"
|
|
]
|
|
},
|
|
{
|
|
"def": {
|
|
"array": {
|
|
"len": 32,
|
|
"type": 7
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"def": {
|
|
"primitive": "u8"
|
|
}
|
|
},
|
|
{
|
|
"def": {
|
|
"composite": {
|
|
"fields": [
|
|
{
|
|
"name": "next",
|
|
"type": 3
|
|
},
|
|
{
|
|
"name": "prev",
|
|
"type": 3
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"path": [
|
|
"ink_storage",
|
|
"collections",
|
|
"stash",
|
|
"VacantEntry"
|
|
]
|
|
},
|
|
{
|
|
"def": {
|
|
"composite": {
|
|
"fields": [
|
|
{
|
|
"name": "value",
|
|
"type": 1
|
|
},
|
|
{
|
|
"name": "key_index",
|
|
"type": 3
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"params": [
|
|
1
|
|
],
|
|
"path": [
|
|
"ink_storage",
|
|
"collections",
|
|
"hashmap",
|
|
"ValueEntry"
|
|
]
|
|
},
|
|
{
|
|
"def": {
|
|
"variant": {
|
|
"variants": [
|
|
{
|
|
"fields": [
|
|
{
|
|
"type": 8
|
|
}
|
|
],
|
|
"name": "Vacant"
|
|
},
|
|
{
|
|
"fields": [
|
|
{
|
|
"type": 11
|
|
}
|
|
],
|
|
"name": "Occupied"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"params": [
|
|
11
|
|
],
|
|
"path": [
|
|
"ink_storage",
|
|
"collections",
|
|
"stash",
|
|
"Entry"
|
|
]
|
|
},
|
|
{
|
|
"def": {
|
|
"tuple": [
|
|
5,
|
|
5
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"def": {
|
|
"primitive": "bool"
|
|
}
|
|
},
|
|
{
|
|
"def": {
|
|
"variant": {
|
|
"variants": [
|
|
{
|
|
"name": "None"
|
|
},
|
|
{
|
|
"fields": [
|
|
{
|
|
"type": 5
|
|
}
|
|
],
|
|
"name": "Some"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"params": [
|
|
5
|
|
],
|
|
"path": [
|
|
"Option"
|
|
]
|
|
}
|
|
]
|
|
} |