RSK Bridge 通过部署在0x1000006
. 我能够在 github 上找到Bridge 的 ABI 文件。
我正在寻找一个 Solidity 接口文件 - 有没有可用的,如果有,我在哪里可以找到它?
由于您有 ABI,请将其放入名为 \xe2\x80\x98bridge.json\xe2\x80\x99 的文件中。将以下脚本复制到同一文件夹中的文件,然后在终端命令行中启动它,如下所示:\xe2\x80\x98node filename.js\xe2\x80\x99。然后在同一文件夹中的文件 \xe2\x80\x98Bridge.sol\xe2\x80\x99 中找到你的 Solidity Bridge 接口。您需要在系统中安装 node.js 才能运行此脚本。
\nconst fs = require('fs')\n/** Name of the bridge ABI file */\nconst bridgeABI = require('./bridge.json')\n/** Filename for the generated Solidity bridge interface file */\nconst BRIDGE_SOL = 'Bridge.sol'\n\xe2\x80\x8b\nconst functions = bridgeABI.filter((element) => element.type === 'function')\nconst stream = fs.createWriteStream(BRIDGE_SOL)\nstream.write(`// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.7.0 <0.9.0;\n\xe2\x80\x8b\ninterface Bridge {\n`)\nfunctions.forEach((f) => {\n // function parameters\n const inputs = f.inputs\n .map((i) => {\n // add 'calldata' to the following types\n const type = ['bytes', 'bytes[]', 'bytes32[]', 'string'].includes(i.type)\n ? `${i.type} calldata`\n : i.type\n return `${type} _${i.name}`\n })\n .join(', ')\n // function return values\n const outputs = f.outputs\n .map((o) => {\n // add 'memory' to the following types\n const type = ['bytes', 'string'].includes(o.type)\n ? `${o.type} memory`\n : o.type\n return `${type}${o.name ? ` ${o.name}` : ''}`\n })\n .join(', ')\n // record a single function signature\n stream.write(\n ` ${f.type} ${f.name}(${inputs}) external${f.constant ? ' view' : ''}${\n outputs ? ` returns (${outputs})` : ''\n };\\n`,\n )\n})\nstream.write('}\\n')\nstream.end()\nconsole.log(`The bridge was generated. Find it in the file ${BRIDGE_SOL}`)\n
Run Code Online (Sandbox Code Playgroud)\n这是由上面的脚本生成的界面:
\n// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.7.0 <0.9.0;\n\ninterface Bridge {\n function getBtcBlockchainBestChainHeight() external view returns (int);\n function getStateForBtcReleaseClient() external view returns (bytes memory);\n function getStateForDebugging() external view returns (bytes memory);\n function getBtcBlockchainInitialBlockHeight() external view returns (int);\n function getBtcBlockchainBlockHashAtDepth(int256 _depth) external view returns (bytes memory);\n function getBtcTxHashProcessedHeight(string calldata _hash) external view returns (int64);\n function isBtcTxHashAlreadyProcessed(string calldata _hash) external view returns (bool);\n function getFederationAddress() external view returns (string memory);\n function registerBtcTransaction(bytes calldata _tx, int256 _height, bytes calldata _pmt) external view;\n function addSignature(bytes calldata _pubkey, bytes[] calldata _signatures, bytes calldata _txhash) external view;\n function receiveHeaders(bytes[] calldata _blocks) external view;\n function receiveHeader(bytes calldata _block) external view returns (int256);\n function getFederationSize() external view returns (int256);\n function getFederationThreshold() external view returns (int256);\n function getFederatorPublicKey(int256 _index) external view returns (bytes memory);\n function getFederatorPublicKeyOfType(int256 _index, string calldata _type) external view returns (bytes memory);\n function getFederationCreationTime() external view returns (int256);\n function getFederationCreationBlockNumber() external view returns (int256);\n function getRetiringFederationAddress() external view returns (string memory);\n function getRetiringFederationSize() external view returns (int256);\n function getRetiringFederationThreshold() external view returns (int256);\n function getRetiringFederatorPublicKey(int256 _index) external view returns (bytes memory);\n function getRetiringFederatorPublicKeyOfType(int256 _index, string calldata _type) external view returns (bytes memory);\n function getRetiringFederationCreationTime() external view returns (int256);\n function getRetiringFederationCreationBlockNumber() external view returns (int256);\n function createFederation() external returns (int256);\n function addFederatorPublicKey(bytes calldata _key) external returns (int256);\n function addFederatorPublicKeyMultikey(bytes calldata _btcKey, bytes calldata _rskKey, bytes calldata _mstKey) external returns (int256);\n function commitFederation(bytes calldata _hash) external returns (int256);\n function rollbackFederation() external returns (int256);\n function getPendingFederationHash() external view returns (bytes memory);\n function getPendingFederationSize() external view returns (int256);\n function getPendingFederatorPublicKey(int256 _index) external view returns (bytes memory);\n function getPendingFederatorPublicKeyOfType(int256 _index, string calldata _type) external view returns (bytes memory);\n function getLockWhitelistSize() external view returns (int256);\n function getLockWhitelistAddress(int256 _index) external view returns (string memory);\n function getLockWhitelistEntryByAddress(string calldata _address) external view returns (int256);\n function addLockWhitelistAddress(string calldata _address, int256 _maxTransferValue) external returns (int256);\n function addOneOffLockWhitelistAddress(string calldata _address, int256 _maxTransferValue) external returns (int256);\n function addUnlimitedLockWhitelistAddress(string calldata _address) external returns (int256);\n function removeLockWhitelistAddress(string calldata _address) external returns (int256);\n function setLockWhitelistDisableBlockDelay(int256 _disableDelay) external returns (int256);\n function getFeePerKb() external view returns (int256);\n function voteFeePerKbChange(int256 _feePerKb) external returns (int256);\n function updateCollections() external;\n function getMinimumLockTxValue() external view returns (int256);\n function getBtcTransactionConfirmations(bytes32 _txHash, bytes32 _blockHash, uint256 _merkleBranchPath, bytes32[] calldata _merkleBranchHashes) external view returns (int256);\n function getLockingCap() external view returns (int256);\n function increaseLockingCap(int256 _newLockingCap) external view returns (bool);\n function registerBtcCoinbaseTransaction(bytes calldata _btcTxSerialized, bytes32 _blockHash, bytes calldata _pmtSerialized, bytes32 _witnessMerkleRoot, bytes32 _witnessReservedValue) external view;\n function hasBtcBlockCoinbaseTransactionInformation(bytes32 _blockHash) external view returns (bool);\n function registerFastBridgeBtcTransaction(bytes calldata _btcTxSerialized, uint256 _height, bytes calldata _pmtSerialized, bytes32 _derivationArgumentsHash, bytes calldata _userRefundBtcAddress, address _liquidityBridgeContractAddress, bytes calldata _liquidityProviderBtcAddress, bool _shouldTransferToContract) external view returns (int256);\n function getActiveFederationCreationBlockHeight() external view returns (uint256);\n function getBtcBlockchainBestBlockHeader() external view returns (bytes memory);\n function getBtcBlockchainBlockHeaderByHash(bytes32 _btcBlockHash) external view returns (bytes memory);\n function getBtcBlockchainBlockHeaderByHeight(uint256 _btcBlockHeight) external view returns (bytes memory);\n function getBtcBlockchainParentBlockHeaderByHash(bytes32 _btcBlockHash) external view returns (bytes memory);\n}\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
54 次 |
最近记录: |