Files
aitbc/contracts/artifacts/contracts/CrossChainAtomicSwap.sol/CrossChainAtomicSwap.json
aitbc 7c51f3490b Remove outdated GPU marketplace endpoint and fix staking service logic
- Remove duplicate `/marketplace/gpu/{gpu_id}` endpoint from marketplace_gpu.py
- Remove marketplace_gpu router inclusion from main.py (already included elsewhere)
- Fix staking service staker_count logic to check existing stakes before increment/decrement
- Add minimum stake amount validation (100 AITBC)
- Add proper error handling for stake not found cases
- Fix staking pool update to commit and refresh after modifications
- Update CLI send_transaction to use chain
2026-04-13 22:07:51 +02:00

275 lines
19 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "CrossChainAtomicSwap",
"sourceName": "contracts/CrossChainAtomicSwap.sol",
"abi": [
{
"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": true,
"internalType": "bytes32",
"name": "swapId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "participant",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "secret",
"type": "bytes32"
}
],
"name": "SwapCompleted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "swapId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "participant",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "hashlock",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timelock",
"type": "uint256"
}
],
"name": "SwapInitiated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "swapId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "initiator",
"type": "address"
}
],
"name": "SwapRefunded",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_swapId",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "_secret",
"type": "bytes32"
}
],
"name": "completeSwap",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_swapId",
"type": "bytes32"
},
{
"internalType": "address",
"name": "_participant",
"type": "address"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "_hashlock",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "_timelock",
"type": "uint256"
}
],
"name": "initiateSwap",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_swapId",
"type": "bytes32"
}
],
"name": "refundSwap",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "swaps",
"outputs": [
{
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"internalType": "address",
"name": "participant",
"type": "address"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "hashlock",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "timelock",
"type": "uint256"
},
{
"internalType": "enum CrossChainAtomicSwap.SwapStatus",
"name": "status",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6080806040523461005e57600160008181558154336001600160a01b0319821681179093556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3610cd190816100648239f35b600080fdfe60406080815260048036101561001457600080fd5b600091823560e01c80633b2433d61461054e578063715018a6146104f157806378dc33561461033b5780638da5cb5b1461030e578063eb84e7f214610275578063f2fde38b146101a35763fe2510ee1461006d57600080fd5b3461019f57602036600319011261019f5781359161008961095c565b828452600260205281842091600683019182549160ff83168281101561018c5760016100b59114610bc8565b6005850154421061014957505060ff1916600317905560028101546001600160a01b039190821680610131575061010384808080868654166003870154905af16100fd610aa7565b50610c07565b5416907fc672feaa452bd52b0000f3d29c943cd9331556ab05529d49e984311220c16c198380a36001815580f35b6101449083835416600384015491610c49565b610103565b906020606492519162461bcd60e51b8352820152601d60248201527f537761702074696d656c6f636b206e6f742079657420657870697265640000006044820152fd5b634e487b7160e01b885260218352602488fd5b8280fd5b503461019f57602036600319011261019f576001600160a01b03823581811693919290849003610271576101d56108d2565b831561021f575050600154826bffffffffffffffffffffffff60a01b821617600155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b8480fd5b50823461030b57602036600319011261030b578235815260026020528181209060018060a01b039182815416938360018301541693600283015416600383015490878401549260ff600660058701549601541696815198895260208901528701526060860152608085015260a0840152838210156102f85760e0838360c0820152f35b634e487b7160e01b815260218452602490fd5b80fd5b83823461033757816003193601126103375760015490516001600160a01b039091168152602090f35b5080fd5b50829034610337578060031936011261033757823560243561035b61095c565b818452602090600282528385206006810180549760ff8916818110156104de5760016103879114610bc8565b60058301544210156104a35784886103bd8951838101908882528481526103ad8161092a565b8b51928392839251928391610ba5565b8101039060025afa156104995787518184015403610465575060027f67c5e8c220036ca487fa89b9dff6f3f23451eca70c0d39ec7be725290b29ff909596979860ff19161790556001808060a01b039182600282015416801560001461044b575061043b898080808787870154166003870154905af16100fd610aa7565b0154169451908152a36001815580f35b61046090848484015416600384015491610c49565b61043b565b865162461bcd60e51b8152908101859052600e60248201526d125b9d985b1a59081cd958dc995d60921b6044820152606490fd5b86513d89823e3d90fd5b865162461bcd60e51b8152908101859052601560248201527414ddd85c081d1a5b595b1bd8dac8195e1c1a5c9959605a1b6044820152606490fd5b634e487b7160e01b895260218252602489fd5b833461030b578060031936011261030b5761050a6108d2565b600180546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b509060c036600319011261019f576001600160a01b03602480358281169484359392918690036108ce5760449287843596828816809803610337576064948535936084359660a4359861059f61095c565b8a865260ff60068960209860028a5220015416858110156108bc57610885578c1561085157428a11156108135786156107e0578b6107485786340361070a5750505b85519060e0820182811067ffffffffffffffff8211176106f85788878f8f8f91958f999897968f9682918f918252338a528d8a01948552818a0195865260608a0196875260808a0197885260a08a019889528d60c08b019d60018f5282526002905220975116916bffffffffffffffffffffffff60a01b928389541617885581600189019151168382541617905560028701925116908254161790555160038401555184830155516005820155600601925191808310156106e757505060ff80198354169116179055825196875286015284015260608301527f9fba3d24d594c6fe983302709ea37fdeceb7e556ea94cf695c806048e8ef9e8560803393a46001815580f35b634e487b7160e01b8d52602190528bfd5b634e487b7160e01b8e5260418552838efd5b7f496e636f72726563742045544820616d6f756e742073656e74000000000000008591601986898c519562461bcd60e51b8752860152840152820152fd5b9034610796578751916323b872dd60e01b87840152338584015230908301528681830152815260a0810181811067ffffffffffffffff8211176106f8578752610791908b6109b2565b6105e1565b91507f4554482073656e742062757420455243323020746f6b656e207370656369666990602261195960f21b946084978a519762461bcd60e51b8952880152860152840152820152fd5b710416d6f756e74206d757374206265203e20360741b8591601286898c519562461bcd60e51b8752860152840152820152fd5b7f54696d656c6f636b206d75737420626520696e207468652066757475726500008591601e86898c519562461bcd60e51b8752860152840152820152fd5b72125b9d985b1a59081c185c9d1a58da5c185b9d606a1b8591601386898c519562461bcd60e51b8752860152840152820152fd5b755377617020494420616c72656164792065786973747360501b8591601686898c519562461bcd60e51b8752860152840152820152fd5b634e487b7160e01b8f5260218652848ffd5b8680fd5b6001546001600160a01b031633036108e657565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6040810190811067ffffffffffffffff82111761094657604052565b634e487b7160e01b600052604160045260246000fd5b60026000541461096d576002600055565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b60018060a01b031690610a116040516109ca8161092a565b6020938482527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858301526000808587829751910182855af1610a0b610aa7565b91610af2565b805191821591848315610a83575b505050905015610a2c5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126103375782015190811515820361030b575080388084610a1f565b3d15610aed5767ffffffffffffffff903d8281116109465760405192601f8201601f19908116603f01168401908111848210176109465760405282523d6000602084013e565b606090565b91929015610b545750815115610b06575090565b3b15610b0f5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610b675750805190602001fd5b6044604051809262461bcd60e51b825260206004830152610b978151809281602486015260208686019101610ba5565b601f01601f19168101030190fd5b60005b838110610bb85750506000910152565b8181015183820152602001610ba8565b15610bcf57565b60405162461bcd60e51b815260206004820152601060248201526f29bbb0b81034b9903737ba1037b832b760811b6044820152606490fd5b15610c0e57565b60405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152608081019167ffffffffffffffff83118284101761094657610c99926040526109b2565b56fea2646970667358221220c39b19eeab47c15d46f00429cf0f830603464c478123750207f8963fbe4be12a64736f6c63430008130033",
"deployedBytecode": "0x60406080815260048036101561001457600080fd5b600091823560e01c80633b2433d61461054e578063715018a6146104f157806378dc33561461033b5780638da5cb5b1461030e578063eb84e7f214610275578063f2fde38b146101a35763fe2510ee1461006d57600080fd5b3461019f57602036600319011261019f5781359161008961095c565b828452600260205281842091600683019182549160ff83168281101561018c5760016100b59114610bc8565b6005850154421061014957505060ff1916600317905560028101546001600160a01b039190821680610131575061010384808080868654166003870154905af16100fd610aa7565b50610c07565b5416907fc672feaa452bd52b0000f3d29c943cd9331556ab05529d49e984311220c16c198380a36001815580f35b6101449083835416600384015491610c49565b610103565b906020606492519162461bcd60e51b8352820152601d60248201527f537761702074696d656c6f636b206e6f742079657420657870697265640000006044820152fd5b634e487b7160e01b885260218352602488fd5b8280fd5b503461019f57602036600319011261019f576001600160a01b03823581811693919290849003610271576101d56108d2565b831561021f575050600154826bffffffffffffffffffffffff60a01b821617600155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b8480fd5b50823461030b57602036600319011261030b578235815260026020528181209060018060a01b039182815416938360018301541693600283015416600383015490878401549260ff600660058701549601541696815198895260208901528701526060860152608085015260a0840152838210156102f85760e0838360c0820152f35b634e487b7160e01b815260218452602490fd5b80fd5b83823461033757816003193601126103375760015490516001600160a01b039091168152602090f35b5080fd5b50829034610337578060031936011261033757823560243561035b61095c565b818452602090600282528385206006810180549760ff8916818110156104de5760016103879114610bc8565b60058301544210156104a35784886103bd8951838101908882528481526103ad8161092a565b8b51928392839251928391610ba5565b8101039060025afa156104995787518184015403610465575060027f67c5e8c220036ca487fa89b9dff6f3f23451eca70c0d39ec7be725290b29ff909596979860ff19161790556001808060a01b039182600282015416801560001461044b575061043b898080808787870154166003870154905af16100fd610aa7565b0154169451908152a36001815580f35b61046090848484015416600384015491610c49565b61043b565b865162461bcd60e51b8152908101859052600e60248201526d125b9d985b1a59081cd958dc995d60921b6044820152606490fd5b86513d89823e3d90fd5b865162461bcd60e51b8152908101859052601560248201527414ddd85c081d1a5b595b1bd8dac8195e1c1a5c9959605a1b6044820152606490fd5b634e487b7160e01b895260218252602489fd5b833461030b578060031936011261030b5761050a6108d2565b600180546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b509060c036600319011261019f576001600160a01b03602480358281169484359392918690036108ce5760449287843596828816809803610337576064948535936084359660a4359861059f61095c565b8a865260ff60068960209860028a5220015416858110156108bc57610885578c1561085157428a11156108135786156107e0578b6107485786340361070a5750505b85519060e0820182811067ffffffffffffffff8211176106f85788878f8f8f91958f999897968f9682918f918252338a528d8a01948552818a0195865260608a0196875260808a0197885260a08a019889528d60c08b019d60018f5282526002905220975116916bffffffffffffffffffffffff60a01b928389541617885581600189019151168382541617905560028701925116908254161790555160038401555184830155516005820155600601925191808310156106e757505060ff80198354169116179055825196875286015284015260608301527f9fba3d24d594c6fe983302709ea37fdeceb7e556ea94cf695c806048e8ef9e8560803393a46001815580f35b634e487b7160e01b8d52602190528bfd5b634e487b7160e01b8e5260418552838efd5b7f496e636f72726563742045544820616d6f756e742073656e74000000000000008591601986898c519562461bcd60e51b8752860152840152820152fd5b9034610796578751916323b872dd60e01b87840152338584015230908301528681830152815260a0810181811067ffffffffffffffff8211176106f8578752610791908b6109b2565b6105e1565b91507f4554482073656e742062757420455243323020746f6b656e207370656369666990602261195960f21b946084978a519762461bcd60e51b8952880152860152840152820152fd5b710416d6f756e74206d757374206265203e20360741b8591601286898c519562461bcd60e51b8752860152840152820152fd5b7f54696d656c6f636b206d75737420626520696e207468652066757475726500008591601e86898c519562461bcd60e51b8752860152840152820152fd5b72125b9d985b1a59081c185c9d1a58da5c185b9d606a1b8591601386898c519562461bcd60e51b8752860152840152820152fd5b755377617020494420616c72656164792065786973747360501b8591601686898c519562461bcd60e51b8752860152840152820152fd5b634e487b7160e01b8f5260218652848ffd5b8680fd5b6001546001600160a01b031633036108e657565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6040810190811067ffffffffffffffff82111761094657604052565b634e487b7160e01b600052604160045260246000fd5b60026000541461096d576002600055565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b60018060a01b031690610a116040516109ca8161092a565b6020938482527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858301526000808587829751910182855af1610a0b610aa7565b91610af2565b805191821591848315610a83575b505050905015610a2c5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9193818094500103126103375782015190811515820361030b575080388084610a1f565b3d15610aed5767ffffffffffffffff903d8281116109465760405192601f8201601f19908116603f01168401908111848210176109465760405282523d6000602084013e565b606090565b91929015610b545750815115610b06575090565b3b15610b0f5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610b675750805190602001fd5b6044604051809262461bcd60e51b825260206004830152610b978151809281602486015260208686019101610ba5565b601f01601f19168101030190fd5b60005b838110610bb85750506000910152565b8181015183820152602001610ba8565b15610bcf57565b60405162461bcd60e51b815260206004820152601060248201526f29bbb0b81034b9903737ba1037b832b760811b6044820152606490fd5b15610c0e57565b60405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152608081019167ffffffffffffffff83118284101761094657610c99926040526109b2565b56fea2646970667358221220c39b19eeab47c15d46f00429cf0f830603464c478123750207f8963fbe4be12a64736f6c63430008130033",
"linkReferences": {},
"deployedLinkReferences": {}
}