@ethsub/sol
Version:
ethsub contracts
1,082 lines • 43.9 kB
JSON
{
"contractName": "ChainAsset",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "asset",
"type": "bytes32"
}
],
"name": "AssetStored",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "_assetsStored",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "asset",
"type": "bytes32"
}
],
"name": "store",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"asset\",\"type\":\"bytes32\"}],\"name\":\"AssetStored\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"_assetsStored\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"asset\",\"type\":\"bytes32\"}],\"name\":\"store\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"ChainSafe Systems.\",\"kind\":\"dev\",\"methods\":{\"store(bytes32)\":{\"params\":{\"asset\":\"Hash of asset deposited on Chain chain.\"}}},\"title\":\"Represents a bridged Chain asset.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"store(bytes32)\":{\"notice\":\"Marks {asset} as stored.{asset} must not have already been stored.Emits {AssetStored} event.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ChainAsset.sol\":\"ChainAsset\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/ChainAsset.sol\":{\"keccak256\":\"0x5825a3266f7fc68ab073c6f81bf153ce00ebd39100bea93244edfcab6db15c10\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://29a4c386fb92272ed09e673e406c03c2d26bb581984737f1da8ad1d9a8be1d05\",\"dweb:/ipfs/QmYKK4qxFPXmtehWe8ndQkvwvSdNE6h2Zi4gMkCVLFnZVP\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b50610199806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063654cf88c1461003b57806396add60014610050575b600080fd5b61004e610049366004610109565b610079565b005b61006361005e366004610109565b6100f4565b6040516100709190610121565b60405180910390f35b60008181526020819052604090205460ff16156100b15760405162461bcd60e51b81526004016100a89061012c565b60405180910390fd5b600081815260208190526040808220805460ff191660011790555182917f08ae553713effae7116be03743b167b8b803449ee8fb912c2ec43dc2c824f53591a250565b60006020819052908152604090205460ff1681565b60006020828403121561011a578081fd5b5035919050565b901515815260200190565b60208082526017908201527f617373657420697320616c72656164792073746f72656400000000000000000060408201526060019056fea2646970667358221220ad7b538a49ce49dfb0f2443fb62b5d31a734af7ff657c31cb96d6cbca3ccb3d464736f6c634300060c0033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063654cf88c1461003b57806396add60014610050575b600080fd5b61004e610049366004610109565b610079565b005b61006361005e366004610109565b6100f4565b6040516100709190610121565b60405180910390f35b60008181526020819052604090205460ff16156100b15760405162461bcd60e51b81526004016100a89061012c565b60405180910390fd5b600081815260208190526040808220805460ff191660011790555182917f08ae553713effae7116be03743b167b8b803449ee8fb912c2ec43dc2c824f53591a250565b60006020819052908152604090205460ff1681565b60006020828403121561011a578081fd5b5035919050565b901515815260200190565b60208082526017908201527f617373657420697320616c72656164792073746f72656400000000000000000060408201526060019056fea2646970667358221220ad7b538a49ce49dfb0f2443fb62b5d31a734af7ff657c31cb96d6cbca3ccb3d464736f6c634300060c0033",
"immutableReferences": {},
"sourceMap": "185:498:35:-:0;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "185:498:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;505:176;;;;;;:::i;:::-;;:::i;:::-;;209:46;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;505:176;561:13;:20;;;;;;;;;;;;;560:21;552:57;;;;-1:-1:-1;;;552:57:35;;;;;;;:::i;:::-;;;;;;;;;618:13;:20;;;;;;;;;;;:27;;-1:-1:-1;;618:27:35;641:4;618:27;;;658:18;632:5;;658:18;;;505:176;:::o;209:46::-;;;;;;;;;;;;;;;;:::o;142:241:-1:-;;246:2;234:9;225:7;221:23;217:32;214:2;;;-1:-1;;252:12;214:2;-1:-1;72:20;;208:175;-1:-1;208:175::o;833:210::-;1711:13;;1704:21;455:34;;954:2;939:18;;925:118::o;1050:416::-;1250:2;1264:47;;;726:2;1235:18;;;1577:19;762:25;1617:14;;;742:46;807:12;;;1221:245::o",
"source": "// SPDX-License-Identifier: LGPL-3.0-only\npragma solidity 0.6.12;\npragma experimental ABIEncoderV2;\n\n/**\n @title Represents a bridged Chain asset.\n @author ChainSafe Systems.\n */\ncontract ChainAsset {\n mapping (bytes32 => bool) public _assetsStored;\n\n event AssetStored(bytes32 indexed asset);\n\n /**\n @notice Marks {asset} as stored.\n @param asset Hash of asset deposited on Chain chain.\n @notice {asset} must not have already been stored.\n @notice Emits {AssetStored} event.\n */\n function store(bytes32 asset) external {\n require(!_assetsStored[asset], \"asset is already stored\");\n\n _assetsStored[asset] = true;\n emit AssetStored(asset);\n }\n}",
"sourcePath": "/home/sigo/w/deer/ethsub/packages/sol/contracts/ChainAsset.sol",
"ast": {
"absolutePath": "project:/contracts/ChainAsset.sol",
"exportedSymbols": {
"ChainAsset": [
7384
]
},
"id": 7385,
"license": "LGPL-3.0-only",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 7348,
"literals": [
"solidity",
"0.6",
".12"
],
"nodeType": "PragmaDirective",
"src": "42:23:35"
},
{
"id": 7349,
"literals": [
"experimental",
"ABIEncoderV2"
],
"nodeType": "PragmaDirective",
"src": "66:33:35"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": {
"id": 7350,
"nodeType": "StructuredDocumentation",
"src": "101:83:35",
"text": "@title Represents a bridged Chain asset.\n@author ChainSafe Systems."
},
"fullyImplemented": true,
"id": 7384,
"linearizedBaseContracts": [
7384
],
"name": "ChainAsset",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "96add600",
"id": 7354,
"mutability": "mutable",
"name": "_assetsStored",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 7384,
"src": "209:46:35",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
},
"typeName": {
"id": 7353,
"keyType": {
"id": 7351,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "218:7:35",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "209:25:35",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
},
"valueType": {
"id": 7352,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "229:4:35",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
},
"value": null,
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
"id": 7358,
"name": "AssetStored",
"nodeType": "EventDefinition",
"parameters": {
"id": 7357,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7356,
"indexed": true,
"mutability": "mutable",
"name": "asset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 7358,
"src": "278:21:35",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7355,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "278:7:35",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "277:23:35"
},
"src": "260:41:35"
},
{
"body": {
"id": 7382,
"nodeType": "Block",
"src": "544:137:35",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 7368,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "560:21:35",
"subExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 7365,
"name": "_assetsStored",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7354,
"src": "561:13:35",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 7367,
"indexExpression": {
"argumentTypes": null,
"id": 7366,
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7361,
"src": "575:5:35",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "561:20:35",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "617373657420697320616c72656164792073746f726564",
"id": 7369,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "583:25:35",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_bc642c1798a3fc3c118745685dd76c066cfa68ac78864d110f41537703db5089",
"typeString": "literal_string \"asset is already stored\""
},
"value": "asset is already stored"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_bc642c1798a3fc3c118745685dd76c066cfa68ac78864d110f41537703db5089",
"typeString": "literal_string \"asset is already stored\""
}
],
"id": 7364,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "552:7:35",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 7370,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "552:57:35",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 7371,
"nodeType": "ExpressionStatement",
"src": "552:57:35"
},
{
"expression": {
"argumentTypes": null,
"id": 7376,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 7372,
"name": "_assetsStored",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7354,
"src": "618:13:35",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 7374,
"indexExpression": {
"argumentTypes": null,
"id": 7373,
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7361,
"src": "632:5:35",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "618:20:35",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 7375,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "641:4:35",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "618:27:35",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 7377,
"nodeType": "ExpressionStatement",
"src": "618:27:35"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 7379,
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7361,
"src": "670:5:35",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 7378,
"name": "AssetStored",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7358,
"src": "658:11:35",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$",
"typeString": "function (bytes32)"
}
},
"id": 7380,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "658:18:35",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 7381,
"nodeType": "EmitStatement",
"src": "653:23:35"
}
]
},
"documentation": {
"id": 7359,
"nodeType": "StructuredDocumentation",
"src": "305:197:35",
"text": "@notice Marks {asset} as stored.\n@param asset Hash of asset deposited on Chain chain.\n@notice {asset} must not have already been stored.\n@notice Emits {AssetStored} event."
},
"functionSelector": "654cf88c",
"id": 7383,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "store",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 7362,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7361,
"mutability": "mutable",
"name": "asset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 7383,
"src": "520:13:35",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7360,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "520:7:35",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "519:15:35"
},
"returnParameters": {
"id": 7363,
"nodeType": "ParameterList",
"parameters": [],
"src": "544:0:35"
},
"scope": 7384,
"src": "505:176:35",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
}
],
"scope": 7385,
"src": "185:498:35"
}
],
"src": "42:641:35"
},
"legacyAST": {
"attributes": {
"absolutePath": "project:/contracts/ChainAsset.sol",
"exportedSymbols": {
"ChainAsset": [
7384
]
},
"license": "LGPL-3.0-only"
},
"children": [
{
"attributes": {
"literals": [
"solidity",
"0.6",
".12"
]
},
"id": 7348,
"name": "PragmaDirective",
"src": "42:23:35"
},
{
"attributes": {
"literals": [
"experimental",
"ABIEncoderV2"
]
},
"id": 7349,
"name": "PragmaDirective",
"src": "66:33:35"
},
{
"attributes": {
"abstract": false,
"baseContracts": [
null
],
"contractDependencies": [
null
],
"contractKind": "contract",
"fullyImplemented": true,
"linearizedBaseContracts": [
7384
],
"name": "ChainAsset",
"scope": 7385
},
"children": [
{
"attributes": {
"text": "@title Represents a bridged Chain asset.\n@author ChainSafe Systems."
},
"id": 7350,
"name": "StructuredDocumentation",
"src": "101:83:35"
},
{
"attributes": {
"constant": false,
"functionSelector": "96add600",
"mutability": "mutable",
"name": "_assetsStored",
"overrides": null,
"scope": 7384,
"stateVariable": true,
"storageLocation": "default",
"type": "mapping(bytes32 => bool)",
"value": null,
"visibility": "public"
},
"children": [
{
"attributes": {
"type": "mapping(bytes32 => bool)"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 7351,
"name": "ElementaryTypeName",
"src": "218:7:35"
},
{
"attributes": {
"name": "bool",
"type": "bool"
},
"id": 7352,
"name": "ElementaryTypeName",
"src": "229:4:35"
}
],
"id": 7353,
"name": "Mapping",
"src": "209:25:35"
}
],
"id": 7354,
"name": "VariableDeclaration",
"src": "209:46:35"
},
{
"attributes": {
"anonymous": false,
"documentation": null,
"name": "AssetStored"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"indexed": true,
"mutability": "mutable",
"name": "asset",
"overrides": null,
"scope": 7358,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 7355,
"name": "ElementaryTypeName",
"src": "278:7:35"
}
],
"id": 7356,
"name": "VariableDeclaration",
"src": "278:21:35"
}
],
"id": 7357,
"name": "ParameterList",
"src": "277:23:35"
}
],
"id": 7358,
"name": "EventDefinition",
"src": "260:41:35"
},
{
"attributes": {
"functionSelector": "654cf88c",
"implemented": true,
"isConstructor": false,
"kind": "function",
"modifiers": [
null
],
"name": "store",
"overrides": null,
"scope": 7384,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
"children": [
{
"attributes": {
"text": "@notice Marks {asset} as stored.\n@param asset Hash of asset deposited on Chain chain.\n@notice {asset} must not have already been stored.\n@notice Emits {AssetStored} event."
},
"id": 7359,
"name": "StructuredDocumentation",
"src": "305:197:35"
},
{
"children": [
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "asset",
"overrides": null,
"scope": 7383,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 7360,
"name": "ElementaryTypeName",
"src": "520:7:35"
}
],
"id": 7361,
"name": "VariableDeclaration",
"src": "520:13:35"
}
],
"id": 7362,
"name": "ParameterList",
"src": "519:15:35"
},
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 7363,
"name": "ParameterList",
"src": "544:0:35"
},
{
"children": [
{
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"tryCall": false,
"type": "tuple()",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_bc642c1798a3fc3c118745685dd76c066cfa68ac78864d110f41537703db5089",
"typeString": "literal_string \"asset is already stored\""
}
],
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"type": "function (bool,string memory) pure",
"value": "require"
},
"id": 7364,
"name": "Identifier",
"src": "552:7:35"
},
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "!",
"prefix": true,
"type": "bool"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "bool"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 7354,
"type": "mapping(bytes32 => bool)",
"value": "_assetsStored"
},
"id": 7365,
"name": "Identifier",
"src": "561:13:35"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 7361,
"type": "bytes32",
"value": "asset"
},
"id": 7366,
"name": "Identifier",
"src": "575:5:35"
}
],
"id": 7367,
"name": "IndexAccess",
"src": "561:20:35"
}
],
"id": 7368,
"name": "UnaryOperation",
"src": "560:21:35"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "617373657420697320616c72656164792073746f726564",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "string",
"type": "literal_string \"asset is already stored\"",
"value": "asset is already stored"
},
"id": 7369,
"name": "Literal",
"src": "583:25:35"
}
],
"id": 7370,
"name": "FunctionCall",
"src": "552:57:35"
}
],
"id": 7371,
"name": "ExpressionStatement",
"src": "552:57:35"
},
{
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "=",
"type": "bool"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"type": "bool"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 7354,
"type": "mapping(bytes32 => bool)",
"value": "_assetsStored"
},
"id": 7372,
"name": "Identifier",
"src": "618:13:35"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 7361,
"type": "bytes32",
"value": "asset"
},
"id": 7373,
"name": "Identifier",
"src": "632:5:35"
}
],
"id": 7374,
"name": "IndexAccess",
"src": "618:20:35"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "74727565",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "bool",
"type": "bool",
"value": "true"
},
"id": 7375,
"name": "Literal",
"src": "641:4:35"
}
],
"id": 7376,
"name": "Assignment",
"src": "618:27:35"
}
],
"id": 7377,
"name": "ExpressionStatement",
"src": "618:27:35"
},
{
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"tryCall": false,
"type": "tuple()",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"overloadedDeclarations": [
null
],
"referencedDeclaration": 7358,
"type": "function (bytes32)",
"value": "AssetStored"
},
"id": 7378,
"name": "Identifier",
"src": "658:11:35"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 7361,
"type": "bytes32",
"value": "asset"
},
"id": 7379,
"name": "Identifier",
"src": "670:5:35"
}
],
"id": 7380,
"name": "FunctionCall",
"src": "658:18:35"
}
],
"id": 7381,
"name": "EmitStatement",
"src": "653:23:35"
}
],
"id": 7382,
"name": "Block",
"src": "544:137:35"
}
],
"id": 7383,
"name": "FunctionDefinition",
"src": "505:176:35"
}
],
"id": 7384,
"name": "ContractDefinition",
"src": "185:498:35"
}
],
"id": 7385,
"name": "SourceUnit",
"src": "42:641:35"
},
"compiler": {
"name": "solc",
"version": "0.6.12+commit.27d51765.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.4.3",
"updatedAt": "2021-11-29T02:07:34.239Z",
"devdoc": {
"author": "ChainSafe Systems.",
"kind": "dev",
"methods": {
"store(bytes32)": {
"params": {
"asset": "Hash of asset deposited on Chain chain."
}
}
},
"title": "Represents a bridged Chain asset.",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"store(bytes32)": {
"notice": "Marks {asset} as stored.{asset} must not have already been stored.Emits {AssetStored} event."
}
},
"version": 1
}
}