@settlemint/solidity-supplychain
Version:
Smart contract set to build a supplychain usecase in SettleMint
506 lines (505 loc) • 20.6 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "ExampleSupplyChain",
"sourceName": "contracts/ExampleSupplyChain.sol",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "OwnableInvalidOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "OwnableUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "lotType",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "quantity",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "operatorId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "originId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "lotNo",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "transporterId",
"type": "string"
}
],
"name": "CreateLotEvent",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "lotNos",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "operatorId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "machineId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "processingHouseId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "timestamp",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "firstProcessLotId",
"type": "string"
}
],
"name": "FirstProcessEvent",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "secondProcessLotId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "operatorId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "packageId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "weight",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "packagingType",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "packingLotId",
"type": "string"
}
],
"name": "PackagingEvent",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "firstProcessLotIds",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "machineId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "operatorId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "secondProcessOutputLotId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "secondProcessLotId",
"type": "string"
}
],
"name": "SecondProcessEvent",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "packageId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "operatorId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "transporterId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "cartonId",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "transportLotId",
"type": "string"
}
],
"name": "TransportEvent",
"type": "event"
},
{
"inputs": [],
"name": "_firstProcessLotId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_packingLotId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_secondProcessLotId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_transportLotId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "lotType",
"type": "string"
},
{
"internalType": "string",
"name": "quantity",
"type": "string"
},
{
"internalType": "string",
"name": "operatorId",
"type": "string"
},
{
"internalType": "string",
"name": "originId",
"type": "string"
},
{
"internalType": "string",
"name": "lotNo",
"type": "string"
},
{
"internalType": "string",
"name": "transporterId",
"type": "string"
}
],
"name": "createLot",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "secondProcessLotId",
"type": "string"
},
{
"internalType": "string",
"name": "operatorId",
"type": "string"
},
{
"internalType": "string",
"name": "packageId",
"type": "string"
},
{
"internalType": "string",
"name": "weight",
"type": "string"
},
{
"internalType": "string",
"name": "packagingType",
"type": "string"
}
],
"name": "packing",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "lotNos",
"type": "string"
},
{
"internalType": "string",
"name": "operatorId",
"type": "string"
},
{
"internalType": "string",
"name": "machineId",
"type": "string"
},
{
"internalType": "string",
"name": "processingHouseId",
"type": "string"
},
{
"internalType": "string",
"name": "timestamp",
"type": "string"
}
],
"name": "registerFirstProcess",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "firstProcessLotIds",
"type": "string"
},
{
"internalType": "string",
"name": "machineId",
"type": "string"
},
{
"internalType": "string",
"name": "operatorId",
"type": "string"
},
{
"internalType": "string",
"name": "secondProcessOutputLotId",
"type": "string"
}
],
"name": "registerSecondProcess",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "packageId",
"type": "string"
},
{
"internalType": "string",
"name": "operatorId",
"type": "string"
},
{
"internalType": "string",
"name": "transporterId",
"type": "string"
},
{
"internalType": "string",
"name": "cartonId",
"type": "string"
}
],
"name": "transport",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608080604052346071573315605e575f8054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36108fa90816100768239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816334687fc51461046f57508063386a0d2614610452578063715018a6146103fb5780637b844d86146103de5780638da5cb5b146103b7578063ac366bc614610366578063ad2f19f314610314578063c57397ec14610220578063e3232810146101c1578063e5dbd1ae1461014a578063f2fde38b146100c15763f342554c146100a0575f80fd5b346100bd575f3660031901126100bd576020600454604051908152f35b5f80fd5b346100bd5760203660031901126100bd576004356001600160a01b038116908190036100bd576100ef61073b565b8015610137575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b346100bd576101583661051e565b929060025490600182018092116101ad577f14b6c7296a7ef1f1d61274d04d7364309a7a32fbb21087fb4c15a5d1534ac8999461019b836101a894600255610761565b9160405195869586610673565b0390a1005b634e487b7160e01b5f52601160045260245ffd5b346100bd576101cf366105a9565b90939160035491600183018093116101ad577fc779766e64dba61c56c17693faa61ae802bcdc203a1479bfb4970edd3ab7e64f95610213846101a895600355610761565b92604051968796876106ce565b346100bd5760c03660031901126100bd576004356001600160401b0381116100bd576102509036906004016104dd565b6024356001600160401b0381116100bd5761026f9036906004016104dd565b6044356001600160401b0381116100bd5761028e9036906004016104dd565b916064356001600160401b0381116100bd576102ae9036906004016104dd565b926084356001600160401b0381116100bd576102ce9036906004016104dd565b9060a435916001600160401b0383116100bd577f8982a390c0fb1688e369d1ab91e529cae84e472205007ac93be646ec121f9410956102136101a89436906004016104dd565b346100bd57610322366105a9565b90939160015491600183018093116101ad577fd494bd9dcaeef0e3e0fd19a0b13af05abf8ca5ffd5e70724ed987b2fcfa443d395610213846101a895600155610761565b346100bd576103743661051e565b929060045490600182018092116101ad577f5a6ec825b52239f3c530cc18dca698150d270962d2021703403dcd6815b1af619461019b836101a894600455610761565b346100bd575f3660031901126100bd575f546040516001600160a01b039091168152602090f35b346100bd575f3660031901126100bd576020600354604051908152f35b346100bd575f3660031901126100bd5761041361073b565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346100bd575f3660031901126100bd576020600254604051908152f35b346100bd575f3660031901126100bd576020906001548152f35b6040519190601f01601f191682016001600160401b038111838210176104ae57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b0381116104ae57601f01601f191660200190565b81601f820112156100bd578035906104fc6104f7836104c2565b610489565b92828452602083830101116100bd57815f926020809301838601378301015290565b9060806003198301126100bd576004356001600160401b0381116100bd5782610549916004016104dd565b916024356001600160401b0381116100bd5781610568916004016104dd565b916044356001600160401b0381116100bd5782610587916004016104dd565b91606435906001600160401b0382116100bd576105a6916004016104dd565b90565b60a06003198201126100bd576004356001600160401b0381116100bd57816105d3916004016104dd565b916024356001600160401b0381116100bd57826105f2916004016104dd565b916044356001600160401b0381116100bd5781610611916004016104dd565b916064356001600160401b0381116100bd5782610630916004016104dd565b91608435906001600160401b0382116100bd576105a6916004016104dd565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b93906105a695936106a46106c0946106966106b29460a08a5260a08a019061064f565b9088820360208a015261064f565b90868203604088015261064f565b90848203606086015261064f565b91608081840391015261064f565b94919361071161072d946107036105a699976106f561071f9660c08c5260c08c019061064f565b908a820360208c015261064f565b9088820360408a015261064f565b90868203606088015261064f565b90848203608086015261064f565b9160a081840391015261064f565b5f546001600160a01b0316330361074e57565b63118cdaa760e01b5f523360045260245ffd5b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8210156108a1575b806d04ee2d6d415b85acef8100000000600a921015610886575b662386f26fc10000811015610872575b6305f5e100811015610861575b612710811015610852575b6064811015610844575b1015610839575b600a602160018401936107eb6104f7866104c2565b948086526107fb601f19916104c2565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304801561083457600a9091610806565b505090565b6001909101906107d6565b6064600291049301926107cf565b612710600491049301926107c5565b6305f5e100600891049301926107ba565b662386f26fc10000601091049301926107ad565b6d04ee2d6d415b85acef81000000006020910493019261079d565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b810461078356fea2646970667358221220226e138869aba54992d29d451bf290c907ed50ab86bfc32afaf1404d69d603cf64736f6c634300081e0033",
"deployedBytecode": "0x6080806040526004361015610012575f80fd5b5f3560e01c90816334687fc51461046f57508063386a0d2614610452578063715018a6146103fb5780637b844d86146103de5780638da5cb5b146103b7578063ac366bc614610366578063ad2f19f314610314578063c57397ec14610220578063e3232810146101c1578063e5dbd1ae1461014a578063f2fde38b146100c15763f342554c146100a0575f80fd5b346100bd575f3660031901126100bd576020600454604051908152f35b5f80fd5b346100bd5760203660031901126100bd576004356001600160a01b038116908190036100bd576100ef61073b565b8015610137575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b346100bd576101583661051e565b929060025490600182018092116101ad577f14b6c7296a7ef1f1d61274d04d7364309a7a32fbb21087fb4c15a5d1534ac8999461019b836101a894600255610761565b9160405195869586610673565b0390a1005b634e487b7160e01b5f52601160045260245ffd5b346100bd576101cf366105a9565b90939160035491600183018093116101ad577fc779766e64dba61c56c17693faa61ae802bcdc203a1479bfb4970edd3ab7e64f95610213846101a895600355610761565b92604051968796876106ce565b346100bd5760c03660031901126100bd576004356001600160401b0381116100bd576102509036906004016104dd565b6024356001600160401b0381116100bd5761026f9036906004016104dd565b6044356001600160401b0381116100bd5761028e9036906004016104dd565b916064356001600160401b0381116100bd576102ae9036906004016104dd565b926084356001600160401b0381116100bd576102ce9036906004016104dd565b9060a435916001600160401b0383116100bd577f8982a390c0fb1688e369d1ab91e529cae84e472205007ac93be646ec121f9410956102136101a89436906004016104dd565b346100bd57610322366105a9565b90939160015491600183018093116101ad577fd494bd9dcaeef0e3e0fd19a0b13af05abf8ca5ffd5e70724ed987b2fcfa443d395610213846101a895600155610761565b346100bd576103743661051e565b929060045490600182018092116101ad577f5a6ec825b52239f3c530cc18dca698150d270962d2021703403dcd6815b1af619461019b836101a894600455610761565b346100bd575f3660031901126100bd575f546040516001600160a01b039091168152602090f35b346100bd575f3660031901126100bd576020600354604051908152f35b346100bd575f3660031901126100bd5761041361073b565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346100bd575f3660031901126100bd576020600254604051908152f35b346100bd575f3660031901126100bd576020906001548152f35b6040519190601f01601f191682016001600160401b038111838210176104ae57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b0381116104ae57601f01601f191660200190565b81601f820112156100bd578035906104fc6104f7836104c2565b610489565b92828452602083830101116100bd57815f926020809301838601378301015290565b9060806003198301126100bd576004356001600160401b0381116100bd5782610549916004016104dd565b916024356001600160401b0381116100bd5781610568916004016104dd565b916044356001600160401b0381116100bd5782610587916004016104dd565b91606435906001600160401b0382116100bd576105a6916004016104dd565b90565b60a06003198201126100bd576004356001600160401b0381116100bd57816105d3916004016104dd565b916024356001600160401b0381116100bd57826105f2916004016104dd565b916044356001600160401b0381116100bd5781610611916004016104dd565b916064356001600160401b0381116100bd5782610630916004016104dd565b91608435906001600160401b0382116100bd576105a6916004016104dd565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b93906105a695936106a46106c0946106966106b29460a08a5260a08a019061064f565b9088820360208a015261064f565b90868203604088015261064f565b90848203606086015261064f565b91608081840391015261064f565b94919361071161072d946107036105a699976106f561071f9660c08c5260c08c019061064f565b908a820360208c015261064f565b9088820360408a015261064f565b90868203606088015261064f565b90848203608086015261064f565b9160a081840391015261064f565b5f546001600160a01b0316330361074e57565b63118cdaa760e01b5f523360045260245ffd5b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8210156108a1575b806d04ee2d6d415b85acef8100000000600a921015610886575b662386f26fc10000811015610872575b6305f5e100811015610861575b612710811015610852575b6064811015610844575b1015610839575b600a602160018401936107eb6104f7866104c2565b948086526107fb601f19916104c2565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304801561083457600a9091610806565b505090565b6001909101906107d6565b6064600291049301926107cf565b612710600491049301926107c5565b6305f5e100600891049301926107ba565b662386f26fc10000601091049301926107ad565b6d04ee2d6d415b85acef81000000006020910493019261079d565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b810461078356fea2646970667358221220226e138869aba54992d29d451bf290c907ed50ab86bfc32afaf1404d69d603cf64736f6c634300081e0033",
"linkReferences": {},
"deployedLinkReferences": {}
}