Files
smom-dbis-138/artifacts/contracts/channels/GenericStateChannelManager.sol/GenericStateChannelManager.json

665 lines
36 KiB
JSON
Raw Normal View History

{
"_format": "hh-sol-artifact-1",
"contractName": "GenericStateChannelManager",
"sourceName": "contracts/channels/GenericStateChannelManager.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_admin",
"type": "address"
},
{
"internalType": "uint256",
"name": "_challengeWindowSeconds",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "ECDSAInvalidSignature",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "length",
"type": "uint256"
}
],
"name": "ECDSAInvalidSignatureLength",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "ECDSAInvalidSignatureS",
"type": "error"
},
{
"inputs": [],
"name": "ReentrancyGuardReentrantCall",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newAdmin",
"type": "address"
}
],
"name": "AdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "channelId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "stateHash",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "balanceA",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "balanceB",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newDeadline",
"type": "uint256"
}
],
"name": "ChallengeSubmitted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldWindow",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newWindow",
"type": "uint256"
}
],
"name": "ChallengeWindowUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "channelId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "stateHash",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "balanceA",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "balanceB",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bool",
"name": "cooperative",
"type": "bool"
}
],
"name": "ChannelClosed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "channelId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "participantA",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "participantB",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "depositA",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "depositB",
"type": "uint256"
}
],
"name": "ChannelOpened",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "Paused",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "Unpaused",
"type": "event"
},
{
"inputs": [],
"name": "admin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "channelId",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "stateHash",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "balanceA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "balanceB",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "vA",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "rA",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sA",
"type": "bytes32"
},
{
"internalType": "uint8",
"name": "vB",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "rB",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sB",
"type": "bytes32"
}
],
"name": "challengeClose",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "challengeWindowSeconds",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "channelId",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "stateHash",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "balanceA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "balanceB",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "vA",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "rA",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sA",
"type": "bytes32"
},
{
"internalType": "uint8",
"name": "vB",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "rB",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sB",
"type": "bytes32"
}
],
"name": "closeChannelCooperative",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "channelId",
"type": "uint256"
}
],
"name": "finalizeClose",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "channelId",
"type": "uint256"
}
],
"name": "fundChannel",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "channelId",
"type": "uint256"
}
],
"name": "getChannel",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "participantA",
"type": "address"
},
{
"internalType": "address",
"name": "participantB",
"type": "address"
},
{
"internalType": "uint256",
"name": "depositA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "depositB",
"type": "uint256"
},
{
"internalType": "enum IGenericStateChannelManager.ChannelStatus",
"name": "status",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "disputeNonce",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "disputeStateHash",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "disputeBalanceA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "disputeBalanceB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "disputeDeadline",
"type": "uint256"
}
],
"internalType": "struct IGenericStateChannelManager.Channel",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getChannelCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "participantA",
"type": "address"
},
{
"internalType": "address",
"name": "participantB",
"type": "address"
}
],
"name": "getChannelId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "getChannelIdByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "participantB",
"type": "address"
}
],
"name": "openChannel",
"outputs": [
{
"internalType": "uint256",
"name": "channelId",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newAdmin",
"type": "address"
}
],
"name": "setAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newWindow",
"type": "uint256"
}
],
"name": "setChallengeWindow",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "channelId",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "stateHash",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "balanceA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "balanceB",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "vA",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "rA",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sA",
"type": "bytes32"
},
{
"internalType": "uint8",
"name": "vB",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "rB",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sB",
"type": "bytes32"
}
],
"name": "submitClose",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x60803461010557601f6115f938819003918201601f19168301916001600160401b0383118484101761010a5780849260409485528339810103126101055780516001600160a01b0381169190829003610105576020015190600160005580156100d357811561008e57600180546001600160a01b0319169190911790556002556040516114d890816101218239f35b60405162461bcd60e51b815260206004820152601560248201527f7a65726f206368616c6c656e67652077696e646f7700000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152600a6024820152693d32b9379030b236b4b760b11b6044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe60a0604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301c1aa0d14610d875780630eb8fe7a14610d6957806310df54a014610c0f5780631822c82414610a605780631986aabd14610a4257806323ebfda7146108fc5780632abb5e9d1461068d5780633f4ba83a146106345780634e46c77d1461051d5780634fc543ff146104b15780635c975abb1461048b57806368bfec8814610374578063704b6c02146102d15780637b0aed3d146102905780638456cb5914610231578063e2d002d9146101095763f851a4400361000e5734610104576000366003190112610104576001546040516001600160a01b039091168152602090f35b600080fd5b60203660031901126101045760043561012a60ff60015460a01c1615610f84565b8060005260046020526040600020610154600160ff60048401541661014e81610e22565b14611041565b600381019182546101fb5760018201546001600160a01b039081169390338590036101c25760026040917fa0c2857a854ce2667c00caeabe4e2d455b2a2479ef1448c39d8ac759b41f7d77936101ab341515610fb9565b3490558554169401548151908152346020820152a4005b60405162461bcd60e51b81526020600482015260116024820152703737ba103830b93a34b1b4b830b73a102160791b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e48199d5b99195960921b6044820152606490fd5b3461010457600036600319011261010457600154610259336001600160a01b03831614610eaa565b60ff60a01b1916600160a01b176001557f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e752600080a1005b34610104576040366003190112610104576102a9610e94565b602435906001600160a01b0382168203610104576020916102c991611078565b604051908152f35b34610104576020366003190112610104576102ea610e94565b600154906001600160a01b03906103043383851614610eaa565b16908115610342576001600160a01b03191681176001557f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c600080a2005b60405162461bcd60e51b815260206004820152600a6024820152693d32b9379030b236b4b760b11b6044820152606490fd5b346101045761038236610e42565b908a928a9489989a968998610395611299565b8660005260046020528c60406000209b8c9a60048c01549a60ff8c166103ba81610e22565b6001146103c690611041565b60028d015460038e01546103d991610f00565b6103e38585610f00565b146103ed90610f0d565b600160a01b600190038d54169e8f90600101608052600160a01b6001900360805154169161041a9c61116c565b60ff1916600317906004015561042f916112bc565b608051546104479083906001600160a01b03166112bc565b60405192835260208301526040820152606081016001905260807f3534302235bb30aabab0ca52d64cc358fa351c1ca2e17595dcaec40660f3624c91a26001600055005b3461010457600036600319011261010457602060ff60015460a01c166040519015158152f35b34610104576020366003190112610104576004356005548110156104e8576104da602091610ff4565b90546040519160031b1c8152f35b60405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606490fd5b3461010457602036600319011261010457600435610539611299565b80600052600460205260406000206004810190815490610567600260ff841661056181610e22565b14610f47565b600981015442106106015760ff1990911660031790915580546007820180547f3534302235bb30aabab0ca52d64cc358fa351c1ca2e17595dcaec40660f3624c9360809390916006916001600160a01b03916105c49183166112bc565b600183015416916105db60088201938454906112bc565b015491549054906040519283526020830152604082015260006060820152a26001600055005b60405162461bcd60e51b815260206004820152600b60248201526a3bb4b73237bb9037b832b760a91b6044820152606490fd5b346101045760003660031901126101045760015461065c336001600160a01b03831614610eaa565b60ff60a01b19166001557fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d16933600080a1005b6020366003190112610104576106a1610e94565b6106b360ff60015460a01c1615610f84565b6001600160a01b031680156108c457338114610890576106d4341515610fb9565b60
"deployedBytecode": "0x60a0604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301c1aa0d14610d875780630eb8fe7a14610d6957806310df54a014610c0f5780631822c82414610a605780631986aabd14610a4257806323ebfda7146108fc5780632abb5e9d1461068d5780633f4ba83a146106345780634e46c77d1461051d5780634fc543ff146104b15780635c975abb1461048b57806368bfec8814610374578063704b6c02146102d15780637b0aed3d146102905780638456cb5914610231578063e2d002d9146101095763f851a4400361000e5734610104576000366003190112610104576001546040516001600160a01b039091168152602090f35b600080fd5b60203660031901126101045760043561012a60ff60015460a01c1615610f84565b8060005260046020526040600020610154600160ff60048401541661014e81610e22565b14611041565b600381019182546101fb5760018201546001600160a01b039081169390338590036101c25760026040917fa0c2857a854ce2667c00caeabe4e2d455b2a2479ef1448c39d8ac759b41f7d77936101ab341515610fb9565b3490558554169401548151908152346020820152a4005b60405162461bcd60e51b81526020600482015260116024820152703737ba103830b93a34b1b4b830b73a102160791b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e48199d5b99195960921b6044820152606490fd5b3461010457600036600319011261010457600154610259336001600160a01b03831614610eaa565b60ff60a01b1916600160a01b176001557f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e752600080a1005b34610104576040366003190112610104576102a9610e94565b602435906001600160a01b0382168203610104576020916102c991611078565b604051908152f35b34610104576020366003190112610104576102ea610e94565b600154906001600160a01b03906103043383851614610eaa565b16908115610342576001600160a01b03191681176001557f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c600080a2005b60405162461bcd60e51b815260206004820152600a6024820152693d32b9379030b236b4b760b11b6044820152606490fd5b346101045761038236610e42565b908a928a9489989a968998610395611299565b8660005260046020528c60406000209b8c9a60048c01549a60ff8c166103ba81610e22565b6001146103c690611041565b60028d015460038e01546103d991610f00565b6103e38585610f00565b146103ed90610f0d565b600160a01b600190038d54169e8f90600101608052600160a01b6001900360805154169161041a9c61116c565b60ff1916600317906004015561042f916112bc565b608051546104479083906001600160a01b03166112bc565b60405192835260208301526040820152606081016001905260807f3534302235bb30aabab0ca52d64cc358fa351c1ca2e17595dcaec40660f3624c91a26001600055005b3461010457600036600319011261010457602060ff60015460a01c166040519015158152f35b34610104576020366003190112610104576004356005548110156104e8576104da602091610ff4565b90546040519160031b1c8152f35b60405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606490fd5b3461010457602036600319011261010457600435610539611299565b80600052600460205260406000206004810190815490610567600260ff841661056181610e22565b14610f47565b600981015442106106015760ff1990911660031790915580546007820180547f3534302235bb30aabab0ca52d64cc358fa351c1ca2e17595dcaec40660f3624c9360809390916006916001600160a01b03916105c49183166112bc565b600183015416916105db60088201938454906112bc565b015491549054906040519283526020830152604082015260006060820152a26001600055005b60405162461bcd60e51b815260206004820152600b60248201526a3bb4b73237bb9037b832b760a91b6044820152606490fd5b346101045760003660031901126101045760015461065c336001600160a01b03831614610eaa565b60ff60a01b19166001557fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d16933600080a1005b6020366003190112610104576106a1610e94565b6106b360ff60015460a01c1615610f84565b6001600160a01b031680156108c457338114610890576106d4341515610fb9565b6003546000199182821461087a57600182016003556040516106f581610ee3565b3381528160208201523460408201526000606082015260016080820152600060a0820152600060c0820152600060e082015260006101008201526000610120820152826000526004602052600961012060406000209260018060a01b038151166bffffffffffffffffffffffff60a01b9081865416178555600185019060018060a01b036020840151169082541617905560408101516002850155606081015160038501556004840160808201516107ac81610e22565b6107b581610e22565b60ff8019835416911617905560a0810151600585015560c0810151600685015560e0810151600785015561010081015160088501550151910155600554
"linkReferences": {},
"deployedLinkReferences": {}
}