From 7ea6c17ad883547897a0ce16a91f956769a2f142 Mon Sep 17 00:00:00 2001 From: Max Pushkarov Date: Wed, 3 Jan 2024 16:59:58 +0200 Subject: [PATCH 1/5] build(nitro-protocol): upgrade Solidity version --- packages/nitro-protocol/.solhint.json | 2 +- packages/nitro-protocol/contracts/ConsensusApp.sol | 2 +- packages/nitro-protocol/contracts/CountingApp.sol | 2 +- packages/nitro-protocol/contracts/ForceMove.sol | 2 +- packages/nitro-protocol/contracts/InterestBearingApp.sol | 2 +- packages/nitro-protocol/contracts/MultiAssetHolder.sol | 2 +- packages/nitro-protocol/contracts/NitroAdjudicator.sol | 2 +- packages/nitro-protocol/contracts/StatusManager.sol | 2 +- packages/nitro-protocol/contracts/Token.sol | 2 +- packages/nitro-protocol/contracts/TrivialApp.sol | 2 +- packages/nitro-protocol/contracts/VirtualPaymentApp.sol | 2 +- packages/nitro-protocol/contracts/auxiliary/BatchOperator.sol | 2 +- packages/nitro-protocol/contracts/deploy/Create2Deployer.sol | 2 +- packages/nitro-protocol/contracts/examples/HashLockedSwap.sol | 2 +- .../nitro-protocol/contracts/examples/SingleAssetPayments.sol | 2 +- packages/nitro-protocol/contracts/interfaces/IForceMove.sol | 2 +- packages/nitro-protocol/contracts/interfaces/IForceMoveApp.sol | 2 +- .../nitro-protocol/contracts/interfaces/IMultiAssetHolder.sol | 2 +- .../nitro-protocol/contracts/interfaces/INitroAdjudicator.sol | 2 +- packages/nitro-protocol/contracts/interfaces/INitroTypes.sol | 2 +- packages/nitro-protocol/contracts/interfaces/IStatusManager.sol | 2 +- packages/nitro-protocol/contracts/libraries/NitroUtils.sol | 2 +- .../contracts/libraries/signature-logic/Consensus.sol | 2 +- .../contracts/libraries/signature-logic/StrictTurnTaking.sol | 2 +- packages/nitro-protocol/contracts/test/BadToken.sol | 2 +- .../nitro-protocol/contracts/test/ShortcuttingTurnTaking.sol | 2 +- packages/nitro-protocol/contracts/test/TESTConsensus.sol | 2 +- packages/nitro-protocol/contracts/test/TESTForceMove.sol | 2 +- packages/nitro-protocol/contracts/test/TESTNitroAdjudicator.sol | 2 +- packages/nitro-protocol/contracts/test/TESTNitroUtils.sol | 2 +- packages/nitro-protocol/contracts/test/TESTStrictTurnTaking.sol | 2 +- packages/nitro-protocol/hardhat.config.ts | 2 +- 32 files changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/nitro-protocol/.solhint.json b/packages/nitro-protocol/.solhint.json index c279128ae..3a4411627 100644 --- a/packages/nitro-protocol/.solhint.json +++ b/packages/nitro-protocol/.solhint.json @@ -1,7 +1,7 @@ { "extends": "solhint:recommended", "rules": { - "compiler-version": ["error", "0.8.17"], + "compiler-version": ["error", "0.8.20"], "func-visibility": ["warn", {"ignoreConstructors": true}], "quotes": ["error", "single"], "func-name-mixedcase": "off", diff --git a/packages/nitro-protocol/contracts/ConsensusApp.sol b/packages/nitro-protocol/contracts/ConsensusApp.sol index b351c8dd7..019f821cb 100644 --- a/packages/nitro-protocol/contracts/ConsensusApp.sol +++ b/packages/nitro-protocol/contracts/ConsensusApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {IForceMoveApp} from './interfaces/IForceMoveApp.sol'; import {Consensus} from './libraries/signature-logic/Consensus.sol'; diff --git a/packages/nitro-protocol/contracts/CountingApp.sol b/packages/nitro-protocol/contracts/CountingApp.sol index 39790be30..21783882b 100644 --- a/packages/nitro-protocol/contracts/CountingApp.sol +++ b/packages/nitro-protocol/contracts/CountingApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; import {StrictTurnTaking} from './libraries/signature-logic/StrictTurnTaking.sol'; diff --git a/packages/nitro-protocol/contracts/ForceMove.sol b/packages/nitro-protocol/contracts/ForceMove.sol index adf94d377..653758de7 100644 --- a/packages/nitro-protocol/contracts/ForceMove.sol +++ b/packages/nitro-protocol/contracts/ForceMove.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {NitroUtils} from './libraries/NitroUtils.sol'; import {IForceMove} from './interfaces/IForceMove.sol'; diff --git a/packages/nitro-protocol/contracts/InterestBearingApp.sol b/packages/nitro-protocol/contracts/InterestBearingApp.sol index ce8ea6e8b..3c9b3c9ea 100644 --- a/packages/nitro-protocol/contracts/InterestBearingApp.sol +++ b/packages/nitro-protocol/contracts/InterestBearingApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {IForceMoveApp} from './interfaces/IForceMoveApp.sol'; import {Consensus} from './libraries/signature-logic/Consensus.sol'; diff --git a/packages/nitro-protocol/contracts/MultiAssetHolder.sol b/packages/nitro-protocol/contracts/MultiAssetHolder.sol index 54f9dae16..3478add4e 100644 --- a/packages/nitro-protocol/contracts/MultiAssetHolder.sol +++ b/packages/nitro-protocol/contracts/MultiAssetHolder.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol'; diff --git a/packages/nitro-protocol/contracts/NitroAdjudicator.sol b/packages/nitro-protocol/contracts/NitroAdjudicator.sol index 433dc66aa..0b32e5256 100644 --- a/packages/nitro-protocol/contracts/NitroAdjudicator.sol +++ b/packages/nitro-protocol/contracts/NitroAdjudicator.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; import {NitroUtils} from './libraries/NitroUtils.sol'; diff --git a/packages/nitro-protocol/contracts/StatusManager.sol b/packages/nitro-protocol/contracts/StatusManager.sol index 3ea3787f2..345079500 100644 --- a/packages/nitro-protocol/contracts/StatusManager.sol +++ b/packages/nitro-protocol/contracts/StatusManager.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {IStatusManager} from './interfaces/IStatusManager.sol'; diff --git a/packages/nitro-protocol/contracts/Token.sol b/packages/nitro-protocol/contracts/Token.sol index 98bb52dfd..03f135b98 100644 --- a/packages/nitro-protocol/contracts/Token.sol +++ b/packages/nitro-protocol/contracts/Token.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {ERC20} from '@openzeppelin/contracts/token/ERC20/ERC20.sol'; /** diff --git a/packages/nitro-protocol/contracts/TrivialApp.sol b/packages/nitro-protocol/contracts/TrivialApp.sol index e49ccbaf9..5ee230b3b 100644 --- a/packages/nitro-protocol/contracts/TrivialApp.sol +++ b/packages/nitro-protocol/contracts/TrivialApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {IForceMoveApp} from './interfaces/IForceMoveApp.sol'; diff --git a/packages/nitro-protocol/contracts/VirtualPaymentApp.sol b/packages/nitro-protocol/contracts/VirtualPaymentApp.sol index 501c43b21..4d86ade40 100644 --- a/packages/nitro-protocol/contracts/VirtualPaymentApp.sol +++ b/packages/nitro-protocol/contracts/VirtualPaymentApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {IForceMoveApp} from './interfaces/IForceMoveApp.sol'; import {NitroUtils} from './libraries/NitroUtils.sol'; diff --git a/packages/nitro-protocol/contracts/auxiliary/BatchOperator.sol b/packages/nitro-protocol/contracts/auxiliary/BatchOperator.sol index 51a156941..8e7b73e41 100644 --- a/packages/nitro-protocol/contracts/auxiliary/BatchOperator.sol +++ b/packages/nitro-protocol/contracts/auxiliary/BatchOperator.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {MultiAssetHolder} from '../MultiAssetHolder.sol'; import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; diff --git a/packages/nitro-protocol/contracts/deploy/Create2Deployer.sol b/packages/nitro-protocol/contracts/deploy/Create2Deployer.sol index 90ee04450..e5957a682 100644 --- a/packages/nitro-protocol/contracts/deploy/Create2Deployer.sol +++ b/packages/nitro-protocol/contracts/deploy/Create2Deployer.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // Taken from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/7201e6707f6631d9499a569f492870ebdd4133cf/contracts/mocks/Create2Impl.sol -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; import {Create2} from '@openzeppelin/contracts/utils/Create2.sol'; diff --git a/packages/nitro-protocol/contracts/examples/HashLockedSwap.sol b/packages/nitro-protocol/contracts/examples/HashLockedSwap.sol index 125b9f363..2109fdcc6 100644 --- a/packages/nitro-protocol/contracts/examples/HashLockedSwap.sol +++ b/packages/nitro-protocol/contracts/examples/HashLockedSwap.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; import {StrictTurnTaking} from '../libraries/signature-logic/StrictTurnTaking.sol'; diff --git a/packages/nitro-protocol/contracts/examples/SingleAssetPayments.sol b/packages/nitro-protocol/contracts/examples/SingleAssetPayments.sol index d8569bda3..342a5cf79 100644 --- a/packages/nitro-protocol/contracts/examples/SingleAssetPayments.sol +++ b/packages/nitro-protocol/contracts/examples/SingleAssetPayments.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; import {StrictTurnTaking} from '../libraries/signature-logic/StrictTurnTaking.sol'; diff --git a/packages/nitro-protocol/contracts/interfaces/IForceMove.sol b/packages/nitro-protocol/contracts/interfaces/IForceMove.sol index a5d153a2a..39f970900 100644 --- a/packages/nitro-protocol/contracts/interfaces/IForceMove.sol +++ b/packages/nitro-protocol/contracts/interfaces/IForceMove.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {INitroTypes} from './INitroTypes.sol'; diff --git a/packages/nitro-protocol/contracts/interfaces/IForceMoveApp.sol b/packages/nitro-protocol/contracts/interfaces/IForceMoveApp.sol index c30541f55..8ea579064 100644 --- a/packages/nitro-protocol/contracts/interfaces/IForceMoveApp.sol +++ b/packages/nitro-protocol/contracts/interfaces/IForceMoveApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {INitroTypes} from './INitroTypes.sol'; diff --git a/packages/nitro-protocol/contracts/interfaces/IMultiAssetHolder.sol b/packages/nitro-protocol/contracts/interfaces/IMultiAssetHolder.sol index f87d57174..11899ff52 100644 --- a/packages/nitro-protocol/contracts/interfaces/IMultiAssetHolder.sol +++ b/packages/nitro-protocol/contracts/interfaces/IMultiAssetHolder.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; /** * @dev The IMultiAssetHolder interface calls for functions that allow assets to be transferred from one channel to other channel and/or external destinations, as well as for guarantees to be claimed. diff --git a/packages/nitro-protocol/contracts/interfaces/INitroAdjudicator.sol b/packages/nitro-protocol/contracts/interfaces/INitroAdjudicator.sol index bfe069788..e94807c91 100644 --- a/packages/nitro-protocol/contracts/interfaces/INitroAdjudicator.sol +++ b/packages/nitro-protocol/contracts/interfaces/INitroAdjudicator.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; import {IMultiAssetHolder} from './IMultiAssetHolder.sol'; diff --git a/packages/nitro-protocol/contracts/interfaces/INitroTypes.sol b/packages/nitro-protocol/contracts/interfaces/INitroTypes.sol index 5779208de..2df6bc9bb 100644 --- a/packages/nitro-protocol/contracts/interfaces/INitroTypes.sol +++ b/packages/nitro-protocol/contracts/interfaces/INitroTypes.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; diff --git a/packages/nitro-protocol/contracts/interfaces/IStatusManager.sol b/packages/nitro-protocol/contracts/interfaces/IStatusManager.sol index b94e41108..ca1a921a7 100644 --- a/packages/nitro-protocol/contracts/interfaces/IStatusManager.sol +++ b/packages/nitro-protocol/contracts/interfaces/IStatusManager.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; interface IStatusManager { enum ChannelMode { diff --git a/packages/nitro-protocol/contracts/libraries/NitroUtils.sol b/packages/nitro-protocol/contracts/libraries/NitroUtils.sol index f27fd46a9..ec4f46b39 100644 --- a/packages/nitro-protocol/contracts/libraries/NitroUtils.sol +++ b/packages/nitro-protocol/contracts/libraries/NitroUtils.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {INitroTypes} from '../interfaces/INitroTypes.sol'; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; diff --git a/packages/nitro-protocol/contracts/libraries/signature-logic/Consensus.sol b/packages/nitro-protocol/contracts/libraries/signature-logic/Consensus.sol index 85be83783..eec991b07 100644 --- a/packages/nitro-protocol/contracts/libraries/signature-logic/Consensus.sol +++ b/packages/nitro-protocol/contracts/libraries/signature-logic/Consensus.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {NitroUtils} from '../NitroUtils.sol'; import {INitroTypes} from '../../interfaces/INitroTypes.sol'; diff --git a/packages/nitro-protocol/contracts/libraries/signature-logic/StrictTurnTaking.sol b/packages/nitro-protocol/contracts/libraries/signature-logic/StrictTurnTaking.sol index ece810479..a552457cb 100644 --- a/packages/nitro-protocol/contracts/libraries/signature-logic/StrictTurnTaking.sol +++ b/packages/nitro-protocol/contracts/libraries/signature-logic/StrictTurnTaking.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {NitroUtils} from '../NitroUtils.sol'; import {INitroTypes} from '../../interfaces/INitroTypes.sol'; diff --git a/packages/nitro-protocol/contracts/test/BadToken.sol b/packages/nitro-protocol/contracts/test/BadToken.sol index 6a0b7854f..07fb3b7eb 100644 --- a/packages/nitro-protocol/contracts/test/BadToken.sol +++ b/packages/nitro-protocol/contracts/test/BadToken.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/ERC20.sol) -pragma solidity 0.8.17; +pragma solidity 0.8.20; /** * @dev Copy-pasted from Openzeppelin ERC20 contract, but with the inheritance from IERC20 interface removed and no return value for transferFrom. diff --git a/packages/nitro-protocol/contracts/test/ShortcuttingTurnTaking.sol b/packages/nitro-protocol/contracts/test/ShortcuttingTurnTaking.sol index 2ee4e0624..fa80c8efc 100644 --- a/packages/nitro-protocol/contracts/test/ShortcuttingTurnTaking.sol +++ b/packages/nitro-protocol/contracts/test/ShortcuttingTurnTaking.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {NitroUtils} from '../libraries/NitroUtils.sol'; import {INitroTypes} from '../interfaces/INitroTypes.sol'; diff --git a/packages/nitro-protocol/contracts/test/TESTConsensus.sol b/packages/nitro-protocol/contracts/test/TESTConsensus.sol index 728ba1a2c..6333df571 100644 --- a/packages/nitro-protocol/contracts/test/TESTConsensus.sol +++ b/packages/nitro-protocol/contracts/test/TESTConsensus.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {Consensus} from '../libraries/signature-logic/Consensus.sol'; import {INitroTypes} from '../interfaces/INitroTypes.sol'; diff --git a/packages/nitro-protocol/contracts/test/TESTForceMove.sol b/packages/nitro-protocol/contracts/test/TESTForceMove.sol index d572f2cc6..7e70eb9b1 100644 --- a/packages/nitro-protocol/contracts/test/TESTForceMove.sol +++ b/packages/nitro-protocol/contracts/test/TESTForceMove.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {ForceMove} from '../ForceMove.sol'; diff --git a/packages/nitro-protocol/contracts/test/TESTNitroAdjudicator.sol b/packages/nitro-protocol/contracts/test/TESTNitroAdjudicator.sol index fcaf9050e..10f678dff 100644 --- a/packages/nitro-protocol/contracts/test/TESTNitroAdjudicator.sol +++ b/packages/nitro-protocol/contracts/test/TESTNitroAdjudicator.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {NitroAdjudicator} from '../NitroAdjudicator.sol'; import {TESTForceMove} from './TESTForceMove.sol'; diff --git a/packages/nitro-protocol/contracts/test/TESTNitroUtils.sol b/packages/nitro-protocol/contracts/test/TESTNitroUtils.sol index e33decbd5..47649d200 100644 --- a/packages/nitro-protocol/contracts/test/TESTNitroUtils.sol +++ b/packages/nitro-protocol/contracts/test/TESTNitroUtils.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {INitroTypes} from '../interfaces/INitroTypes.sol'; import {NitroUtils} from '../libraries/NitroUtils.sol'; diff --git a/packages/nitro-protocol/contracts/test/TESTStrictTurnTaking.sol b/packages/nitro-protocol/contracts/test/TESTStrictTurnTaking.sol index 0092d7f72..f1e4197e0 100644 --- a/packages/nitro-protocol/contracts/test/TESTStrictTurnTaking.sol +++ b/packages/nitro-protocol/contracts/test/TESTStrictTurnTaking.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.20; import {INitroTypes} from '../interfaces/INitroTypes.sol'; import {StrictTurnTaking} from '../libraries/signature-logic/StrictTurnTaking.sol'; diff --git a/packages/nitro-protocol/hardhat.config.ts b/packages/nitro-protocol/hardhat.config.ts index c411bb576..b2dc00e1b 100644 --- a/packages/nitro-protocol/hardhat.config.ts +++ b/packages/nitro-protocol/hardhat.config.ts @@ -33,7 +33,7 @@ const config: HardhatUserConfig & {watcher: any} = { solidity: { compilers: [ { - version: '0.8.17', + version: '0.8.20', settings: { optimizer: { enabled: true, From 61e6fe95f10822421e7de7fef713c869f8d3132a Mon Sep 17 00:00:00 2001 From: Max Pushkarov Date: Wed, 3 Jan 2024 17:07:52 +0200 Subject: [PATCH 2/5] chore(nitro-protocol): update gas benchmarks --- .../gas-benchmarks/gasResults.json | 100 +++++++++--------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/packages/nitro-protocol/gas-benchmarks/gasResults.json b/packages/nitro-protocol/gas-benchmarks/gasResults.json index 48d9bc80a..96a58f682 100644 --- a/packages/nitro-protocol/gas-benchmarks/gasResults.json +++ b/packages/nitro-protocol/gas-benchmarks/gasResults.json @@ -1,104 +1,104 @@ { "deployInfrastructureContracts": { "satp": { - "NitroAdjudicator": 3443915 + "NitroAdjudicator": 3405607 } }, "directlyFundAChannelWithETHFirst": { - "satp": 46496 + "satp": 46487 }, "directlyFundAChannelWithETHSecond": { - "satp": 29408 + "satp": 29399 }, "batchFundChannelsWithETHFirst": { "satp": { - "1": 60300, - "5": 192100, - "10": 356835, - "20": 686269, - "50": 1674655, - "100": 3321861 + "1": 60287, + "5": 192043, + "10": 356723, + "20": 686047, + "50": 1674103, + "100": 3320759 } }, "batchFundChannelsWithETHSecond": { "satp": { - "1": 43212, - "5": 106660, - "10": 185955, - "20": 344509, - "50": 820255, - "100": 1613061 + "1": 43199, + "5": 106603, + "10": 185843, + "20": 344287, + "50": 819703, + "100": 1611959 } }, "batchFundChannelsWithERCFirst": { "satp": { - "1": 105476, - "5": 221717, - "10": 383795, - "20": 707963, - "50": 1680455, - "100": 3301247 + "1": 105447, + "5": 221604, + "10": 383587, + "20": 707565, + "50": 1679487, + "100": 3299329 } }, "batchFundChannelsWithERCSecond": { "satp": { - "1": 91806, - "5": 140862, - "10": 212915, - "20": 366203, - "50": 826055, - "100": 1592447 + "1": 91776, + "5": 140772, + "10": 212707, + "20": 365805, + "50": 825087, + "100": 1590529 } }, "directlyFundAChannelWithERC20First": { "satp": { - "approve": 46193, - "deposit": 69866 + "approve": 46188, + "deposit": 69849 } }, "directlyFundAChannelWithERC20Second": { "satp": { - "approve": 46193, - "deposit": 52778 + "approve": 46188, + "deposit": 52761 } }, "ETHexit": { - "satp": 111514 + "satp": 111442 }, "ERC20exit": { - "satp": 112690 + "satp": 112614 }, "ETHexitSad": { "satp": { - "challenge": 113146, - "transferAllAssets": 82026, - "total": 195172 + "challenge": 113115, + "transferAllAssets": 81973, + "total": 195088 } }, "ETHexitSadLedgerFunded": { "satp": { - "challengeX": 113146, - "challengeL": 106283, - "transferAllAssetsL": 62113, - "transferAllAssetsX": 82026, - "total": 363568 + "challengeX": 113115, + "challengeL": 106266, + "transferAllAssetsL": 62066, + "transferAllAssetsX": 81973, + "total": 363420 } }, "ETHexitSadVirtualFunded": { "satp": { - "challengeL": 122389, - "challengeV": 172692, - "reclaimL": 61713, - "transferAllAssetsL": 113726, - "total": 470520 + "challengeL": 122344, + "challengeV": 172787, + "reclaimL": 61666, + "transferAllAssetsL": 113673, + "total": 470470 } }, "ETHClearChallenge": { "satp": { - "checkpointX": 73936, - "challengeResponseX": 96482, - "checkpointL": 69932, - "challengeResponseL": 89655, + "checkpointX": 73934, + "challengeResponseX": 96448, + "checkpointL": 69938, + "challengeResponseL": 89635, "challengeResponseV": 0 } } From fb84145b09f42ba7be05602bd707b17cd00b8bd8 Mon Sep 17 00:00:00 2001 From: Max Pushkarov Date: Wed, 3 Jan 2024 17:08:40 +0200 Subject: [PATCH 3/5] chore(node): regenerate adjudicator bindings --- node/engine/chainservice/adjudicator/NitroAdjudicator.go | 2 +- node/engine/chainservice/consensusapp/ConsensusApp.go | 2 +- node/engine/chainservice/erc20/Token.go | 2 +- node/engine/chainservice/virtualpaymentapp/VirtualPaymentApp.go | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/node/engine/chainservice/adjudicator/NitroAdjudicator.go b/node/engine/chainservice/adjudicator/NitroAdjudicator.go index 61a9c3bc3..753ab5340 100644 --- a/node/engine/chainservice/adjudicator/NitroAdjudicator.go +++ b/node/engine/chainservice/adjudicator/NitroAdjudicator.go @@ -94,7 +94,7 @@ type INitroTypesVariablePart struct { // NitroAdjudicatorMetaData contains all meta data concerning the NitroAdjudicator contract. var NitroAdjudicatorMetaData = &bind.MetaData{ ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assetIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialHoldings\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalHoldings\",\"type\":\"uint256\"}],\"name\":\"AllocationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newTurnNumRecord\",\"type\":\"uint48\"}],\"name\":\"ChallengeCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"finalizesAt\",\"type\":\"uint48\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structINitroTypes.SignedVariablePart[]\",\"name\":\"proof\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structINitroTypes.SignedVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"}],\"name\":\"ChallengeRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newTurnNumRecord\",\"type\":\"uint48\"}],\"name\":\"Checkpointed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"finalizesAt\",\"type\":\"uint48\"}],\"name\":\"Concluded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"destinationHoldings\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assetIndex\",\"type\":\"uint256\"}],\"name\":\"Reclaimed\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"channelNonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"appDefinition\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"challengeDuration\",\"type\":\"uint48\"}],\"internalType\":\"structINitroTypes.FixedPart\",\"name\":\"fixedPart\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart[]\",\"name\":\"proof\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature\",\"name\":\"challengerSig\",\"type\":\"tuple\"}],\"name\":\"challenge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"channelNonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"appDefinition\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"challengeDuration\",\"type\":\"uint48\"}],\"internalType\":\"structINitroTypes.FixedPart\",\"name\":\"fixedPart\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart[]\",\"name\":\"proof\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"}],\"name\":\"checkpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"sourceAllocations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"targetAllocations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"indexOfTargetInSource\",\"type\":\"uint256\"}],\"name\":\"compute_reclaim_effects\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"initialHoldings\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"indices\",\"type\":\"uint256[]\"}],\"name\":\"compute_transfer_effects_and_interactions\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"newAllocations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"allocatesOnlyZeros\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"exitAllocations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalPayouts\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"channelNonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"appDefinition\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"challengeDuration\",\"type\":\"uint48\"}],\"internalType\":\"structINitroTypes.FixedPart\",\"name\":\"fixedPart\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"}],\"name\":\"conclude\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"channelNonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"appDefinition\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"challengeDuration\",\"type\":\"uint48\"}],\"internalType\":\"structINitroTypes.FixedPart\",\"name\":\"fixedPart\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"}],\"name\":\"concludeAndTransferAllAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expectedHeld\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"holdings\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"sourceChannelId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sourceStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sourceOutcomeBytes\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"sourceAssetIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"indexOfTargetInSource\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"targetStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"targetOutcomeBytes\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"targetAssetIndex\",\"type\":\"uint256\"}],\"internalType\":\"structIMultiAssetHolder.ReclaimArgs\",\"name\":\"reclaimArgs\",\"type\":\"tuple\"}],\"name\":\"reclaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"channelNonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"appDefinition\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"challengeDuration\",\"type\":\"uint48\"}],\"internalType\":\"structINitroTypes.FixedPart\",\"name\":\"fixedPart\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart[]\",\"name\":\"proof\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"}],\"name\":\"stateIsSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"statusOf\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"fromChannelId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"outcomeBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"indices\",\"type\":\"uint256[]\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"transferAllAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"}],\"name\":\"unpackStatus\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"turnNumRecord\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"finalizesAt\",\"type\":\"uint48\"},{\"internalType\":\"uint160\",\"name\":\"fingerprint\",\"type\":\"uint160\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6080806040523461001657613d71908161001c8239f35b600080fdfe608060405260048036101561001357600080fd5b60003560e01c90816311e9f1781461193e578163166e56cd146118e95781632fb1d270146115d35781633033730e1461136e57816331afa0b41461108f578163552cfa5014611008578163566d54c614610f9d5781635685b7dc14610d065781636d2a9c9214610bc45781638286a0601461080d578163c7df14e2146107e3578163d3c4e738146104e2578163ec346235146100d7575063ee049b50146100b957600080fd5b346100d2576100d06100ca36612149565b9061245f565b005b600080fd5b346100d2576100f1906100e936612149565b80939161245f565b915151906100fe836138e7565b61010782613d1e565b6101448460005260006020526040600020548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b93915050604051926020938481019360008552604082015260408152610169816119d0565b73ffffffffffffffffffffffffffffffffffffffff809481925190201691160361049f5750600191835191601f196101b96101a385611aae565b946101b16040519687611a8b565b808652611aae565b018260005b828110610460575050506101d285516139cb565b6101dc86516139cb565b9060005b87518110156102c4576101f38189612662565b5188604082015191610254876102098685612662565b515116938460005260018a528d6040600020906000528a526040600020546102318789612662565b5261023c8688612662565b51906040519161024b83611a6f565b60008352612f9d565b909491156102bb575b91604061027e8880989796948e966102786102b69c8f612662565b52612662565b510152015160405192610290846119d0565b83528883015260408201526102a58289612662565b526102b08188612662565b506125e9565b6101e0565b60009c5061025d565b50919095879460005b825181101561038e5780877fc36da2054c5669d6dac211b7366d59f2d369151c21edf4940468614b449e0b9a8b610315848961030c610389988b612662565b51511692612662565b518160005260018b526040600020846000528b526103396040600020918254612f90565b9055610345848a612662565b519060005260018a526040600020836000528a526040600020549061038160405192839287846040919493926060820195825260208201520152565b0390a26125e9565b6102cd565b5085858389156103d45750600091825252600060408120555b60005b81518110156100d057806103ca6103c46103cf9385612662565b5161368f565b6125e9565b6103aa565b906104516103e3600093613d1e565b6104208560005260006020526040600020548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b5091906040519261043084611a1b565b65ffffffffffff809216845216848301528460408301526060820152613a63565b928252526040600020556103a7565b60405161046c816119d0565b6000815260405161047c81611a37565b6000815260609081858201528483015260408201528282880101520183906101be565b606490836040519162461bcd60e51b8352820152601560248201527f696e636f72726563742066696e6765727072696e7400000000000000000000006044820152fd5b346100d25760206003199080823601126100d25782359167ffffffffffffffff938484116100d257610100809285360301126100d257604051918201828110868211176107b557604052838101358252828201906024850135825260448501358681116100d25761055890823691880101611af0565b906040840191825260608401956064810135875260808501906084810135825260a086019860a48201358a5260c48201359081116100d2576105a160e491853691850101611af0565b918260c089015201359860e08701938a85526105dc885196516105d78c51986105c9816138e7565b8a518351848f012090613837565b612c84565b80966105e785612c84565b9c73ffffffffffffffffffffffffffffffffffffffff91600260ff604061062b816106208689610617828d612662565b5151169a612662565b5101518c5190612662565b5101511603610772578e969594939291610658604061064d610660948e612662565b5101518a5190612662565b515197612662565b5151160361072f57506106d08a9b60406106c57f4d3754632451ebba9812a9305e7bca17b67a17186a5cff93d2e9ae1b01e3d27b9d6106be888f6106db9b996107239f9e9d9b996106b1889b6138e7565b5191815191012090613837565b5189612662565b510151945190612662565b510151905191613356565b9184519260406106ec8a5185612662565b510152519060405161071a8161070c898201948a86526040830190613227565b03601f198101835282611a8b565b51902091613946565b519251604051908152a2005b6064908a6040519162461bcd60e51b8352820152601d60248201527f746172676574417373657420213d2067756172616e74656541737365740000006044820152fd5b6064858e6040519162461bcd60e51b8352820152601a60248201527f6e6f7420612067756172616e74656520616c6c6f636174696f6e0000000000006044820152fd5b6041827f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b346100d25760206003193601126100d2573560005260006020526020604060002054604051908152f35b346100d25760c06003193601126100d25767ffffffffffffffff9080358281116100d25761083e9036908301611eb2565b906024358381116100d257610856903690830161212b565b926044359081116100d25761086e9036908301611f7a565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c3601126100d2576040516108a4816119d0565b60643560ff811681036100d2578152608435602082015260a43560408201526108cc84613bf5565b9365ffffffffffff60408451015116936108e5866139fc565b6108ee8161218d565b610b935765ffffffffffff6109368760005260006020526040600020548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b5050168510610b4f575b61095461094e8589856127c9565b906121c6565b6109c1610962855184613ca7565b936109bc8451916040516020810190888252604080820152600960608201527f666f7263654d6f766500000000000000000000000000000000000000000000006080820152608081526109b481611a53565b519020613b17565b612676565b15610b0b57506109e565ffffffffffff60608301511665ffffffffffff42166121f6565b956040519665ffffffffffff60608901911688526060602089015281518091526080880190602060808260051b8b01019301916000905b828210610ac25750505050610a8165ffffffffffff60608194897f0aa12461ee6c137332989aa12cec79f4772ab2c1a8732a382aada7e9f3ec9d348c80610a73610aae9e9f99610a899a810360408401528d6123ef565b0390a20151168342166121f6565b935151613d1e565b9260405194610a9786611a1b565b855216602084015260408301526060820152613a63565b906000526000602052604060002055600080f35b90919293602080610afd837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808f6001960301865288516123ef565b960192019201909291610a1c565b60649060206040519162461bcd60e51b8352820152601f60248201527f4368616c6c656e676572206973206e6f742061207061727469636970616e74006044820152fd5b60649060206040519162461bcd60e51b8352820152601860248201527f7475726e4e756d5265636f7264206465637265617365642e00000000000000006044820152fd5b6001610b9e876139fc565b610ba78161218d565b03610bbb57610bb68587612ac3565b610940565b610bb686612b5a565b346100d25760606003193601126100d25767ffffffffffffffff81358181116100d257610bf49036908401611eb2565b906024358181116100d257610c0c903690850161212b565b926044359182116100d257610c2a61094e91610c5b93369101611f7a565b610c3384613bf5565b9465ffffffffffff6040835101511694610c4c87612b5a565b610c568688612ac3565b6127c9565b610c64826139fc565b610c90604051610c7381611a1b565b838152600060208201526000604082015260006060820152613a63565b836000526000602052604060002055610ca88161218d565b610cd95760207ff3f2d5574c50e581f1a2371fac7dee87f7c6d599a496765fbfa2547ce7fd5f1a91604051908152a2005b60207f07da0a0674fb921e484018c8b81d80e292745e5d8ed134b580c8b9c631c5e9e091604051908152a2005b346100d2576003196060813601126100d25781359067ffffffffffffffff928383116100d257828101833603946080848701126100d257602435948186116100d257366023870112156100d25785840135958287116100d2573660248860051b830101116100d257604435928084116100d25760408785360301126100d257604483019081359873ffffffffffffffffffffffffffffffffffffffff93848b16809b036100d257610df191610dcd610dd392610dc2368c611eb2565b9260243692016120bb565b9061292e565b95610deb610de1368a611eb2565b9136908b01611f7a565b906129a8565b966040519a7f9936d812000000000000000000000000000000000000000000000000000000008c526060828d01527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd60e48d01983591018112156100d25785016024810197910135908282116100d2578160051b360388136100d257608060648d01528190528a9897966101048a0196959493929160005b818110610f695750505094610efe9465ffffffffffff610eda6064878d9b9760009f9d99610eef988e6084819f610ec56024610ece9601611e8a565b16910152611d55565b1660a48c015201611e9f565b1660c488015284878303016024880152612774565b91848303016044850152612754565b03915afa908115610f5d57600090600092610f37575b50610f3360405192839215158352604060208401526040830190611c88565b0390f35b9050610f5691503d806000833e610f4e8183611a8b565b81019061270e565b9082610f14565b6040513d6000823e3d90fd5b9198999a5091929394959660019086610f818b611d55565b168152602080910199019101918c9a9998979695949392610e89565b346100d25760606003193601126100d25767ffffffffffffffff9080358281116100d257610fce9036908301611b37565b6024359283116100d257610feb610ff492610f3394369101611b37565b60443591613356565b604051918291602083526020830190611cad565b346100d25760206003193601126100d25773ffffffffffffffffffffffffffffffffffffffff61106e6060923560005260006020526040600020548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b9092916040519365ffffffffffff8092168552166020840152166040820152f35b346100d2576060806003193601126100d25760243567ffffffffffffffff81116100d2576110c09036908401611d76565b906110cb83356138e7565b6110e26110d783613d1e565b843590604435613837565b600191805191601f196110f76101a385611aae565b019060005b82811061132f5750505061111081516139cb565b61111a82516139cb565b9160005b81518110156111fc576111318183612662565b5160408101519061118f73ffffffffffffffffffffffffffffffffffffffff61115a8587612662565b5151169283600052600160205260406000208b356000526020526040600020546111848689612662565b5261023c8588612662565b90939291156111f3575b91602091869594936111ae6111ee988c612662565b5260406111bb878a612662565b5101520151604051926111cd846119d0565b8352602083015260408201526111e38288612662565b526102b08187612662565b61111e565b60009a50611199565b5090919260005b82518110156112d5578073ffffffffffffffffffffffffffffffffffffffff61122f6112d09386612662565b51511661123c8288612662565b51816000526020906001825260406000208b3560005282526112646040600020918254612f90565b90556112708388612662565b5191600052600181526040600020908a35600052527fc36da2054c5669d6dac211b7366d59f2d369151c21edf4940468614b449e0b9a6103816040600020546040519182918d359587846040919493926060820195825260208201520152565b611203565b50858286156113125750356000526000602052600060408120555b60005b81518110156100d057806103ca6103c461130d9385612662565b6112f3565b9061131f61132a92613d1e565b906044359035613946565b6112f0565b60209060405161133e816119d0565b6000815260405161134e81611a37565b6000815283908582820152818301528460408301528288010152016110fc565b346100d25760a06003193601126100d25767ffffffffffffffff9080359060446024803582358681116100d2576113a89036908601611af0565b946064968735906084359081116100d2576113c69036908801611c07565b9260005b600181018082116115a6578551811015611449576113f36113eb8388612662565b519187612662565b51111561140857611403906125e9565b6113ca565b89887f496e6469636573206d75737420626520736f72746564000000000000000000008960168a60206040519562461bcd60e51b8752860152840152820152fd5b5050876115816100d0959461145d846138e7565b836114768451946105d76020978897888401208a613837565b907fc36da2054c5669d6dac211b7366d59f2d369151c21edf4940468614b449e0b9a73ffffffffffffffffffffffffffffffffffffffff98896114b98686612662565b5151168060005260018852604060002084600052885261154f6114f16040600020549360406114e88a8a612662565b51015185612f9d565b909d9291508460005260018c526040600020886000528c526115196040600020918254612f90565b905560406115278a8a612662565b5101526040518a8101908b82526115458161070c604082018c613227565b5190209086613946565b6000908152600188526040808220858352895290819020548151878152602081019390935290820152606090a2612662565b51938451169301519060405193611597856119d0565b8452830152604082015261368f565b8660118a7f4e487b7100000000000000000000000000000000000000000000000000000000600052526000fd5b60806003193601126100d2576115e7611d32565b6024918235916064918235948460a01c156118a75773ffffffffffffffffffffffffffffffffffffffff831693846000526020926001845260406000208760005284526040600020549260443584036118685786611705578834036116c6575050507f87d4c0b5e30d6808bc8a94ba1c4d839b29d664151551a31753387ee9ef48429b949561167591612bb9565b92600052600181526040600020908560005252816040600020556116c1604051928392836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b0390a2005b601f90856040519362461bcd60e51b85528401528201527f496e636f7272656374206d73672e76616c756520666f72206465706f736974006044820152fd5b61179d6040939293516000808883017f23b872dd00000000000000000000000000000000000000000000000000000000815233868501523060448501528d8785015286845261175384611a53565b6040519361176085611a37565b8a85527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648b8601525190828d5af1611796612bc6565b908a612bf6565b8051868115918215611849575b50509050156117e2575050507f87d4c0b5e30d6808bc8a94ba1c4d839b29d664151551a31753387ee9ef48429b949561167591612bb9565b60849291602a7f6f7420737563636565640000000000000000000000000000000000000000000092876040519562461bcd60e51b87528601528401527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044840152820152fd5b83809293500103126100d2578561186091016126ca565b80868c6117aa565b601490856040519362461bcd60e51b85528401528201527f68656c6420213d20657870656374656448656c640000000000000000000000006044820152fd5b601f91925060206040519362461bcd60e51b85528401528201527f4465706f73697420746f2065787465726e616c2064657374696e6174696f6e006044820152fd5b346100d25760406003193601126100d25773ffffffffffffffffffffffffffffffffffffffff611917611d32565b16600052600160205260406000206024356000526020526020604060002054604051908152f35b346100d25760606003193601126100d25767ffffffffffffffff6024358181116100d25761196f9036908401611b37565b906044359081116100d2576119b1926119c6926119926119999336908401611c07565b9135612f9d565b92939190604051958695608087526080870190611cad565b91151560208601528482036040860152611cad565b9060608301520390f35b6060810190811067ffffffffffffffff8211176119ec57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6080810190811067ffffffffffffffff8211176119ec57604052565b6040810190811067ffffffffffffffff8211176119ec57604052565b60a0810190811067ffffffffffffffff8211176119ec57604052565b6020810190811067ffffffffffffffff8211176119ec57604052565b90601f601f19910116810190811067ffffffffffffffff8211176119ec57604052565b67ffffffffffffffff81116119ec5760051b60200190565b359060ff821682036100d257565b67ffffffffffffffff81116119ec57601f01601f191660200190565b81601f820112156100d257803590611b0782611ad4565b92611b156040519485611a8b565b828452602083830101116100d257816000926020809301838601378301015290565b9080601f830112156100d2578135611b4e81611aae565b92604091611b5e83519586611a8b565b808552602093848087019260051b840101938185116100d257858401925b858410611b8d575050505050505090565b67ffffffffffffffff84358181116100d257860191608080601f1985880301126100d257845190611bbd82611a1b565b8a8501358252858501358b830152606090611bd9828701611ac6565b878401528501359384116100d257611bf8878c80979681970101611af0565b90820152815201930192611b7c565b81601f820112156100d257803591611c1e83611aae565b92611c2c6040519485611a8b565b808452602092838086019260051b8201019283116100d2578301905b828210611c56575050505090565b81358152908301908301611c48565b60005b838110611c785750506000910152565b8181015183820152602001611c68565b90601f19601f602093611ca681518092818752878088019101611c65565b0116010190565b908082519081815260208091019281808460051b8301019501936000915b848310611cdb5750505050505090565b9091929394958480611d2283601f1986600196030187528a51805182528381015184830152604060ff81830151169083015260608091015191608080928201520190611c88565b9801930193019194939290611ccb565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100d257565b359073ffffffffffffffffffffffffffffffffffffffff821682036100d257565b9080601f830112156100d2578135611d8d81611aae565b92604091611d9d83519586611a8b565b808552602093848087019260051b840101938185116100d257858401925b858410611dcc575050505050505090565b67ffffffffffffffff84358181116100d2578601916060601f1990808286890301126100d257855191611dfe836119d0565b611e098c8701611d55565b8352868601358581116100d2578790870191828a0301126100d257865190611e3082611a37565b8c81013560048110156100d2578252878101358681116100d2578d8a91611e58930101611af0565b8c8201528b8301528401359283116100d257611e7b868b80969581960101611b37565b85820152815201930192611dbb565b359067ffffffffffffffff821682036100d257565b359065ffffffffffff821682036100d257565b9190916080818403126100d25760405190611ecc82611a1b565b8193813567ffffffffffffffff81116100d25782019080601f830112156100d257813590611ef982611aae565b91611f076040519384611a8b565b808352602093848085019260051b8201019283116100d2578401905b828210611f6357505050606092611f5e9284928652611f43818301611e8a565b90860152611f5360408201611d55565b604086015201611e9f565b910152565b848091611f6f84611d55565b815201910190611f23565b919060409283818303126100d25783518481019167ffffffffffffffff95828410878511176119ec57838152829682358181116100d2578301926080848803126100d257611fc786611a1b565b83358281116100d25787611fdc918601611d76565b8652602095868501358381116100d25788611ff8918701611af0565b60609586918289015261200c868201611e9f565b6080890152013580151581036100d25760a08701528552858101359182116100d257019085601f830112156100d25781359061204782611aae565b9661205482519889611a8b565b8288528685818a019402850101938185116100d2578701925b84841061207e575050505050500152565b85848303126100d2578786918451612095816119d0565b61209e87611ac6565b81528287013583820152858701358682015281520193019261206d565b929190926120c884611aae565b916120d66040519384611a8b565b829480845260208094019060051b8301928284116100d25780915b84831061210057505050505050565b823567ffffffffffffffff81116100d25786916121208684938601611f7a565b8152019201916120f1565b9080601f830112156100d257816020612146933591016120bb565b90565b9060406003198301126100d25767ffffffffffffffff6004358181116100d2578361217691600401611eb2565b926024359182116100d25761214691600401611f7a565b6003111561219757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b156121ce5750565b6121f29060405191829162461bcd60e51b8352602060048401526024830190611c88565b0390fd5b91909165ffffffffffff8080941691160191821161221057565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b906080810182519060808352815180915260a0830190602060a08260051b8601019301916000905b8282106122a85750505050606061228b819260208601518582036020870152611c88565b9365ffffffffffff60408201511660408501520151151591015290565b909192937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60868203018252845173ffffffffffffffffffffffffffffffffffffffff815116825260208101516060602084015280516004808210156123c157506020604092612328926060870152015182608086015260a0850190611c88565b910151916040818303910152815180825260208201906020808260051b85010194019260005b82811061236e575050505050602080600192960192019201909291612267565b90919293946020806123b483601f198760019603018952608060608b5180518452858101518685015260ff60408201511660408501520151918160608201520190611c88565b970195019392910161234e565b6021907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b8051906124046040928385528385019061223f565b9060208091015193818184039101528080855193848152019401926000905b83821061243257505050505090565b8451805160ff16875280840151878501528101518682015260609095019493820193600190910190612423565b919061246a83613bf5565b9261247484612b5a565b606082510151156125a557602061248b83836129a8565b015190816000925b612562575060ff90515191160361251e577f4f465027a3d06ea73dd12be0f5c5fc0a34e21f19d6eaed4834a7a944edabc901602084926125076124e065ffffffffffff4216925151613d1e565b604051906124ed82611a1b565b600082528385830152600060408301526060820152613a63565b8460005260008352604060002055604051908152a2565b606460405162461bcd60e51b815260206004820152600a60248201527f21756e616e696d6f7573000000000000000000000000000000000000000000006044820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019080821161221057169160ff809116908114612210576001019180612493565b606460405162461bcd60e51b815260206004820152601360248201527f5374617465206d7573742062652066696e616c000000000000000000000000006044820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146122105760010190565b8051156126235760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051600110156126235760400190565b80518210156126235760209160051b010190565b60005b82518110156126c25773ffffffffffffffffffffffffffffffffffffffff806126a28386612662565b5116908316146126ba576126b5906125e9565b612679565b505050600190565b505050600090565b519081151582036100d257565b909291926126e481611ad4565b916126f26040519384611a8b565b8294828452828201116100d257602061270c930190611c65565b565b91906040838203126100d257612723836126ca565b9260208101519067ffffffffffffffff82116100d257019080601f830112156100d2578151612146926020016126d7565b9060208061276b845160408552604085019061223f565b93015191015290565b90815180825260208092019182818360051b82019501936000915b84831061279f5750505050505090565b90919293949584806127b983856001950387528a51612754565b980193019301919493929061278f565b9291604084019173ffffffffffffffffffffffffffffffffffffffff916127fe6127f784865116938861292e565b91876129a8565b6040519687947f9936d8120000000000000000000000000000000000000000000000000000000086526060600487015260e4860196825160806064890152805180995261010488019860208092019060005b8181106128db5750505060009865ffffffffffff6060868b99968a999667ffffffffffffffff610eef976128a89b01511660848c0152511660a48a015201511660c48701526003199384878303016024880152612774565b03915afa918215610f5d5760009081936128c157509190565b906128d79293503d8091833e610f4e8183611a8b565b9091565b825186168c529a83019a8d9a5091830191600101612850565b6040519061290182611a37565b600060208360405161291281611a1b565b6060815260608382015283604082015283606082015281520152565b815191601f196129406101a385611aae565b0160005b81811061299157505060005b815181101561298b578061297161296a6129869385612662565b51856129a8565b61297b8287612662565b526102b08186612662565b612950565b50505090565b60209061299c6128f4565b82828801015201612944565b91906129b26128f4565b50805190604051916129c383611a37565b82526020928383019260009283855283955b808201805151881015612ab757612a05906129fe896129f7869896518d613ca7565b9251612662565b5190613b17565b92859473ffffffffffffffffffffffffffffffffffffffff809516955b8a518051821015612aa757612a38828892612662565b51168714612a4e57612a49906125e9565b612a22565b929891955093509060ff8111612a7a57906001612a70921b87511787526125e9565b95929190926129d5565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b50509350935095612a70906125e9565b50505093509350505090565b612b009060005260006020526040600020548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b505065ffffffffffff80911691161115612b1657565b606460405162461bcd60e51b815260206004820152601c60248201527f7475726e4e756d5265636f7264206e6f7420696e637265617365642e000000006044820152fd5b612b656002916139fc565b612b6e8161218d565b14612b7557565b606460405162461bcd60e51b815260206004820152601260248201527f4368616e6e656c2066696e616c697a65642e00000000000000000000000000006044820152fd5b9190820180921161221057565b3d15612bf1573d90612bd782611ad4565b91612be56040519384611a8b565b82523d6000602084013e565b606090565b91929015612c575750815115612c0a575090565b3b15612c135790565b606460405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156121ce5750805190602001fd5b9080601f830112156100d2578151612146926020016126d7565b805181016020828203126100d257602082015167ffffffffffffffff81116100d25760208201603f8285010112156100d2576020818401015190612cc782611aae565b93612cd56040519586611a8b565b82855260208501916020850160408560051b8385010101116100d257604081830101925b60408560051b83850101018410612d135750505050505090565b835167ffffffffffffffff81116100d25782840101601f1990606082828a0301126100d25760405191612d45836119d0565b604082015173ffffffffffffffffffffffffffffffffffffffff811681036100d2578352606082015167ffffffffffffffff81116100d257604090830191828b0301126100d25760405190612d9982611a37565b604081015160048110156100d257825260608101519067ffffffffffffffff82116100d2576040612dd09260208d01920101612c6a565b60208201526020830152608081015167ffffffffffffffff81116100d25760208901605f8284010112156100d2576040818301015190612e0f82611aae565b92612e1d6040519485611a8b565b828452602084019060208c0160608560051b8584010101116100d257606083820101915b60608560051b85840101018310612e6a5750505050506040820152815260209384019301612cf9565b825167ffffffffffffffff81116100d257608083860182018f037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001126100d25760405191612eb883611a1b565b8386018201606081015184526080810151602085015260a0015160ff811681036100d257604084015260c0828786010101519267ffffffffffffffff84116100d2578f602094936060869586612f159401928b8a01010101612c6a565b6060820152815201920191612e41565b90612f2f82611aae565b604090612f3e82519182611a8b565b838152601f19612f4e8295611aae565b0191600091825b848110612f63575050505050565b6020908351612f7181611a1b565b8581528286818301528686830152606080830152828501015201612f55565b9190820391821161221057565b919290835180151560001461321c57612fb590612f25565b91600091612fc38151612f25565b95600190818097938960009586935b612fe0575b50505050505050565b90919293949597835185101561321357612ffa8585612662565b51516130068685612662565b515260409060ff80836130198989612662565b51015116836130288988612662565b5101526060806130388989612662565b510151816130468a89612662565b510152602093846130578a8a612662565b5101518681111561320d575085965b8d8b51908b82159283156131e3575b5050506000146131b25750600283828f61308f908c612662565b510151161461316f578f96959493868f918f61312c906131329461313e988f988f908f916131389a898f946131078f8692886130e2836130dc88846130d4848e612662565b510151612f90565b93612662565b5101526130ef8187612662565b515198856130fd8389612662565b5101511695612662565b5101519482519661311788611a1b565b87528601528401528201526102788383612662565b50612bb9565b9c6125e9565b95612662565b510151613166575b6131599161315391612f90565b936125e9565b91909493928a9085612fd2565b60009a50613146565b84606491519062461bcd60e51b82526004820152601b60248201527f63616e6e6f74207472616e7366657220612067756172616e74656500000000006044820152fd5b905061313e9250889150846131cd83959e989796958a612662565b510151846131db8484612662565b510152612662565b8210925090826131f8575b50508e8b38613075565b6132049192508d612662565b51148a8f6131ee565b96613066565b97829150612fd7565b50612fb58151612f25565b90815180825260208092019182818360051b82019501936000915b8483106132525750505050505090565b9091929394958181038352865173ffffffffffffffffffffffffffffffffffffffff81511682528581015190606091828885015280516004808210156123c1575091886132b89285948796839801520151604092839182608088015260a0870190611c88565b91015193828183039101528351908181528581019286808460051b8401019601946000915b848310613300575050505050505090806001929801930193019194939290613242565b919395978061334289601f1987600196989a9c03018b526080878d5180518452858101518685015260ff89820151168985015201519181898201520190611c88565b99019701930190918b9796959394926132dd565b80517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081116122105761338b90612f25565b916133968483612662565b516060810151926040948551916133ac83611a37565b60009586845286602080950152878180518101031261368b57878051916133d283611a37565b85810151835201519084810191825287998890899c8a988b5b87518d1015613554578f848e14613545578c8f8f90613458858f8f908f6134128782612662565b515195826134208984612662565b51015160606134368a60ff856130fd8389612662565b510151938251986134468a611a1b565b89528801528601526060850152612662565b52613463848d612662565b508715908161352f575b506134f5575b5015806134e0575b613492575b61313261348c916125e9565b9b6133eb565b9e50986134d5908f6134c08b6134b68f6134ac8391612652565b510151938d612662565b5101918251612bb9565b9052896134cc8d612652565b51015190612bb9565b60019e909990613480565b506134eb8d89612662565b515187511461347b565b829c9196506134cc818c61351e8f6134b661352598826135158199612616565b51015194612662565b9052612616565b996001948c613473565b61353a91508b612662565b51518851148f61346d565b509b9d5061348c60019e6125e9565b509899509c969a99505093999250505015613648571561360557156135c2578301510361358057505090565b60649250519062461bcd60e51b825280600483015260248201527f746f74616c5265636c61696d6564213d67756172616e7465652e616d6f756e746044820152fd5b60648484519062461bcd60e51b82526004820152601460248201527f636f756c64206e6f742066696e642072696768740000000000000000000000006044820152fd5b60648585519062461bcd60e51b82526004820152601360248201527f636f756c64206e6f742066696e64206c656674000000000000000000000000006044820152fd5b60648686519062461bcd60e51b82526004820152601560248201527f636f756c64206e6f742066696e642074617267657400000000000000000000006044820152fd5b8680fd5b73ffffffffffffffffffffffffffffffffffffffff90818151169160005b6040808401908151918251841015612fd757846136cb858095612662565b5151916136dc602095869251612662565b510151918060a01c1560001461380c57168761375c57600080809381935af1613703612bc6565b5015613719575050613714906125e9565b6136ad565b60649250519062461bcd60e51b82526004820152601660248201527f436f756c64206e6f74207472616e7366657220455448000000000000000000006044820152fd5b82517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9190911660048201526024810191909152929190818460448160008b5af190811561380257506137cc575b5061371491506125e9565b82813d83116137fb575b6137e08183611a8b565b810103126100d2576137f4613714926126ca565b50386137c1565b503d6137d6565b513d6000823e3d90fd5b60008981526001865284812091815294525091208054613714939261383091612bb9565b90556125e9565b916138759060005260006020526040600020548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b9391505061389973ffffffffffffffffffffffffffffffffffffffff928392613add565b169116036138a357565b606460405162461bcd60e51b815260206004820152601560248201527f696e636f72726563742066696e6765727072696e7400000000000000000000006044820152fd5b6138f26002916139fc565b6138fb8161218d565b0361390257565b606460405162461bcd60e51b815260206004820152601660248201527f4368616e6e656c206e6f742066696e616c697a65642e000000000000000000006044820152fd5b91906139ba916139898460005260006020526040600020548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b5092906040519361399985611a1b565b65ffffffffffff809216855216602084015260408301526060820152613a63565b906000526000602052604060002055565b906139d582611aae565b6139e26040519182611a8b565b828152601f196139f28294611aae565b0190602036910137565b613a4065ffffffffffff9160005260006020526040600020548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b509050168015600014613a535750600090565b4210613a5e57600290565b600190565b73ffffffffffffffffffffffffffffffffffffffff613ad87fffffffffffff0000000000000000000000000000000000000000000000000000835160d01b1679ffffffffffff0000000000000000000000000000000000000000602085015160a01b1617926060604082015191015190613add565b161790565b73ffffffffffffffffffffffffffffffffffffffff916040519060208201928352604082015260408152613b10816119d0565b5190201690565b90600060806020926040948551858101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c8152613b5d816119d0565b5190209060ff8151169086868201519101519187519384528684015286830152606082015282805260015afa15613802576000519073ffffffffffffffffffffffffffffffffffffffff821615613bb2575090565b6064905162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152fd5b80519060209167ffffffffffffffff838301511673ffffffffffffffffffffffffffffffffffffffff9165ffffffffffff606084604087015116950151166040519485938785019760a086019060808a5285518092528060c088019601976000905b838210613c8a5750505050613c84955060408501526060840152608083015203601f198101835282611a8b565b51902090565b895181168852988201988a98509682019660019190910190613c57565b613c84613cb6613cf492613bf5565b926020810151815191606065ffffffffffff6040830151169101511515613d0760405196879460208601998a5260a0604087015260c0860190611c88565b601f199586868303016060870152613227565b91608084015260a083015203908101835282611a8b565b604051613c848161070c602082019460208652604083019061322756fea2646970667358221220771be8aedbd92521a6f4a164b61df06b32136008010d87eda57d4b1b9b4ea55764736f6c63430008110033", + Bin: "0x6080806040523461001657613cb6908161001b8239f35b5f80fdfe6080604052600480361015610012575f80fd5b5f3560e01c90816311e9f178146118d0578163166e56cd1461187f5781632fb1d270146115725781633033730e1461131957816331afa0b414611050578163552cfa5014610fcc578163566d54c614610f615781635685b7dc14610cd05781636d2a9c9214610b945781638286a060146107e5578163c7df14e2146107be578163d3c4e738146104bf578163ec346235146100d3575063ee049b50146100b6575f80fd5b346100cf576100cd6100c7366120cd565b906123da565b005b5f80fd5b346100cf576100ed906100e5366120cd565b8093916123da565b915151906100fa8361383a565b61010382613c63565b61013d845f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b9391505060405192602093848101935f855260408201526040815261016181611962565b73ffffffffffffffffffffffffffffffffffffffff809481925190201691160361047c5750600191835191601f196101b161019b85611a3e565b946101a96040519687611a1b565b808652611a3e565b01825f5b82811061043f575050506101c98551613918565b6101d38651613918565b905f5b87518110156102b4576101e981896125d5565b5188604082015191610245876101ff86856125d5565b51511693845f5260018a528d60405f20905f528a5260405f205461022387896125d5565b5261022e86886125d5565b51906040519161023d836119ff565b5f8352612f01565b909491156102ac575b91604061026f8880989796948e966102696102a79c8f6125d5565b526125d5565b51015201516040519261028184611962565b835288830152604082015261029682896125d5565b526102a181886125d5565b5061255e565b6101d6565b5f9c5061024e565b5091909587945f5b82518110156103755780877fc36da2054c5669d6dac211b7366d59f2d369151c21edf4940468614b449e0b9a8b61030484896102fb610370988b6125d5565b515116926125d5565b51815f5260018b5260405f20845f528b5261032460405f20918254612ef4565b9055610330848a6125d5565b51905f5260018a5260405f20835f528a5260405f20549061036860405192839287846040919493926060820195825260208201520152565b0390a261255e565b6102bc565b5085858389156103b857505f918252525f60408120555b5f5b81518110156100cd57806103ae6103a86103b393856125d5565b516135eb565b61255e565b61038e565b906104316103c65f93613c63565b610400855f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b50919060405192610410846119ab565b65ffffffffffff8092168452168483015284604083015260608201526139ab565b9282525260405f205561038c565b60405161044b81611962565b5f815260405161045a816119c7565b5f815260609081858201528483015260408201528282880101520183906101b5565b606490836040519162461bcd60e51b8352820152601560248201527f696e636f72726563742066696e6765727072696e7400000000000000000000006044820152fd5b346100cf5760206003199080823601126100cf5782359167ffffffffffffffff938484116100cf57610100809285360301126100cf576040519182018281108682111761079257604052838101358252828201906024850135825260448501358681116100cf5761053590823691880101611a80565b906040840191825260608401956064810135875260808501906084810135825260a086019860a48201358a5260c48201359081116100cf5761057e60e491853691850101611a80565b918260c089015201359860e08701938a85526105b9885196516105b48c51986105a68161383a565b8a518351848f01209061378d565b612be9565b80966105c485612be9565b9c73ffffffffffffffffffffffffffffffffffffffff91600260ff6040610608816105fd86896105f4828d6125d5565b5151169a6125d5565b5101518c51906125d5565b510151160361074f578e969594939291610635604061062a61063d948e6125d5565b5101518a51906125d5565b5151976125d5565b5151160361070c57506106ad8a9b60406106a27f4d3754632451ebba9812a9305e7bca17b67a17186a5cff93d2e9ae1b01e3d27b9d61069b888f6106b89b996107009f9e9d9b9961068e889b61383a565b519181519101209061378d565b51896125d5565b5101519451906125d5565b5101519051916132b3565b9184519260406106c98a51856125d5565b51015251906040516106f7816106e9898201948a86526040830190613186565b03601f198101835282611a1b565b51902091613899565b519251604051908152a2005b6064908a6040519162461bcd60e51b8352820152601d60248201527f746172676574417373657420213d2067756172616e74656541737365740000006044820152fd5b6064858e6040519162461bcd60e51b8352820152601a60248201527f6e6f7420612067756172616e74656520616c6c6f636174696f6e0000000000006044820152fd5b6041827f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b346100cf5760206003193601126100cf57355f525f602052602060405f2054604051908152f35b346100cf5760c06003193601126100cf5767ffffffffffffffff9080358281116100cf576108169036908301611e3e565b906024358381116100cf5761082e90369083016120af565b926044359081116100cf576108469036908301611f06565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c3601126100cf5760405161087c81611962565b60643560ff811681036100cf578152608435602082015260a43560408201526108a484613b3b565b9365ffffffffffff60408451015116936108bd86613949565b6108c681612111565b610b635765ffffffffffff61090b875f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b5050168510610b1f575b610929610923858985612739565b90612148565b610996610937855184613bec565b936109918451916040516020810190888252604080820152600960608201527f666f7263654d6f76650000000000000000000000000000000000000000000000608082015260808152610989816119e3565b519020613a5f565b6125e9565b15610adb57506109ba65ffffffffffff60608301511665ffffffffffff4216612178565b956040519665ffffffffffff60608901911688526060602089015281518091526080880190602060808260051b8b01019301915f905b828210610a925750505050610a5565ffffffffffff60608194897f0aa12461ee6c137332989aa12cec79f4772ab2c1a8732a382aada7e9f3ec9d348c80610a47610a829e9f99610a5d9a810360408401528d61236b565b0390a2015116834216612178565b935151613c63565b9260405194610a6b866119ab565b8552166020840152604083015260608201526139ab565b905f525f60205260405f20555f80f35b90919293602080610acd837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808f60019603018652885161236b565b9601920192019092916109f0565b60649060206040519162461bcd60e51b8352820152601f60248201527f4368616c6c656e676572206973206e6f742061207061727469636970616e74006044820152fd5b60649060206040519162461bcd60e51b8352820152601860248201527f7475726e4e756d5265636f7264206465637265617365642e00000000000000006044820152fd5b6001610b6e87613949565b610b7781612111565b03610b8b57610b868587612a2c565b610915565b610b8686612ac0565b346100cf5760606003193601126100cf5767ffffffffffffffff81358181116100cf57610bc49036908401611e3e565b906024358181116100cf57610bdc90369085016120af565b926044359182116100cf57610bfa61092391610c2b93369101611f06565b610c0384613b3b565b9465ffffffffffff6040835101511694610c1c87612ac0565b610c268688612a2c565b612739565b610c3482613949565b610c5d604051610c43816119ab565b8381525f60208201525f60408201525f60608201526139ab565b835f525f60205260405f2055610c7281612111565b610ca35760207ff3f2d5574c50e581f1a2371fac7dee87f7c6d599a496765fbfa2547ce7fd5f1a91604051908152a2005b60207f07da0a0674fb921e484018c8b81d80e292745e5d8ed134b580c8b9c631c5e9e091604051908152a2005b346100cf576003196060813601126100cf5781359067ffffffffffffffff928383116100cf57828101833603946080848701126100cf57602435948186116100cf57366023870112156100cf5785840135958287116100cf573660248860051b830101116100cf57604435928084116100cf5760408785360301126100cf57604483019081359873ffffffffffffffffffffffffffffffffffffffff93848b16809b036100cf57610dbb91610d97610d9d92610d8c368c611e3e565b92602436920161203f565b9061289a565b95610db5610dab368a611e3e565b9136908b01611f06565b90612912565b966040519a7f9936d812000000000000000000000000000000000000000000000000000000008c526060828d01527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd60e48d01983591018112156100cf5785016024810197910135908282116100cf578160051b360388136100cf57608060648d01528190528a9897966101048a019695949392915f5b818110610f2d5750505094610ec69465ffffffffffff610ea26064878d9b975f9f9d99610eb7988e6084819f610e8d6024610e969601611e16565b16910152611ce1565b1660a48c015201611e2b565b1660c4880152848783030160248801526126e5565b918483030160448501526126c5565b03915afa908115610f22575f905f92610efd575b50610ef960405192839215158352604060208401526040830190611c15565b0390f35b9050610f1b91503d805f833e610f138183611a1b565b81019061267f565b9082610eda565b6040513d5f823e3d90fd5b9198999a5091929394959660019086610f458b611ce1565b168152602080910199019101918c9a9998979695949392610e52565b346100cf5760606003193601126100cf5767ffffffffffffffff9080358281116100cf57610f929036908301611ac6565b6024359283116100cf57610faf610fb892610ef994369101611ac6565b604435916132b3565b604051918291602083526020830190611c3a565b346100cf5760206003193601126100cf5773ffffffffffffffffffffffffffffffffffffffff61102f606092355f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b9092916040519365ffffffffffff8092168552166020840152166040820152f35b346100cf576060806003193601126100cf5760243567ffffffffffffffff81116100cf576110819036908401611d02565b9061108c833561383a565b6110a361109883613c63565b84359060443561378d565b600191805191601f196110b861019b85611a3e565b01905f5b8281106112dc575050506110d08151613918565b6110da8251613918565b915f5b81518110156111b6576110f081836125d5565b5160408101519061114a73ffffffffffffffffffffffffffffffffffffffff61111985876125d5565b51511692835f52600160205260405f208b355f5260205260405f205461113f86896125d5565b5261022e85886125d5565b90939291156111ae575b91602091869594936111696111a9988c6125d5565b526040611176878a6125d5565b51015201516040519261118884611962565b83526020830152604082015261119e82886125d5565b526102a181876125d5565b6110dd565b5f9a50611154565b509091925f5b8251811015611286578073ffffffffffffffffffffffffffffffffffffffff6111e861128193866125d5565b5151166111f582886125d5565b51815f526020906001825260405f208b355f52825261121960405f20918254612ef4565b905561122583886125d5565b51915f526001815260405f20908a355f52527fc36da2054c5669d6dac211b7366d59f2d369151c21edf4940468614b449e0b9a61036860405f20546040519182918d359587846040919493926060820195825260208201520152565b6111bc565b50858286156112bf5750355f525f6020525f60408120555b5f5b81518110156100cd57806103ae6103a86112ba93856125d5565b6112a0565b906112cc6112d792613c63565b906044359035613899565b61129e565b6020906040516112eb81611962565b5f81526040516112fa816119c7565b5f815283908582820152818301528460408301528288010152016110bc565b346100cf5760a06003193601126100cf5767ffffffffffffffff9080359060446024803582358681116100cf576113539036908601611a80565b946064968735906084359081116100cf576113719036908801611b96565b925f5b600181018082116115475785518110156113f35761139d61139583886125d5565b5191876125d5565b5111156113b2576113ad9061255e565b611374565b89887f496e6469636573206d75737420626520736f72746564000000000000000000008960168a60206040519562461bcd60e51b8752860152840152820152fd5b5050876115226100cd95946114078461383a565b836114208451946105b46020978897888401208a61378d565b907fc36da2054c5669d6dac211b7366d59f2d369151c21edf4940468614b449e0b9a73ffffffffffffffffffffffffffffffffffffffff988961146386866125d5565b515116805f526001885260405f20845f5288526114f161149760405f205493604061148e8a8a6125d5565b51015185612f01565b909d929150845f5260018c5260405f20885f528c526114bb60405f20918254612ef4565b905560406114c98a8a6125d5565b5101526040518a8101908b82526114e7816106e9604082018c613186565b5190209086613899565b5f908152600188526040808220858352895290819020548151878152602081019390935290820152606090a26125d5565b5193845116930151906040519361153885611962565b845283015260408201526135eb565b8660118a7f4e487b71000000000000000000000000000000000000000000000000000000005f52525ffd5b60806003193601126100cf57611586611cbe565b6024918235916064918235948460a01c1561183d5773ffffffffffffffffffffffffffffffffffffffff831693845f526020926001845260405f20875f52845260405f20549260443584036117fe578661169c5788340361165d575050507f87d4c0b5e30d6808bc8a94ba1c4d839b29d664151551a31753387ee9ef48429b949561161091612b1f565b925f526001815260405f2090855f52528160405f2055611658604051928392836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b0390a2005b601f90856040519362461bcd60e51b85528401528201527f496e636f7272656374206d73672e76616c756520666f72206465706f736974006044820152fd5b6117336040939293515f808883017f23b872dd00000000000000000000000000000000000000000000000000000000815233868501523060448501528d878501528684526116e9846119e3565b604051936116f6856119c7565b8a85527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648b8601525190828d5af161172c612b2c565b908a612b5b565b80518681159182156117df575b5050905015611778575050507f87d4c0b5e30d6808bc8a94ba1c4d839b29d664151551a31753387ee9ef48429b949561161091612b1f565b60849291602a7f6f7420737563636565640000000000000000000000000000000000000000000092876040519562461bcd60e51b87528601528401527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044840152820152fd5b83809293500103126100cf57856117f6910161263b565b80868c611740565b601490856040519362461bcd60e51b85528401528201527f68656c6420213d20657870656374656448656c640000000000000000000000006044820152fd5b601f91925060206040519362461bcd60e51b85528401528201527f4465706f73697420746f2065787465726e616c2064657374696e6174696f6e006044820152fd5b346100cf5760406003193601126100cf5773ffffffffffffffffffffffffffffffffffffffff6118ad611cbe565b165f52600160205260405f206024355f52602052602060405f2054604051908152f35b346100cf5760606003193601126100cf5767ffffffffffffffff6024358181116100cf576119019036908401611ac6565b906044359081116100cf57611943926119589261192461192b9336908401611b96565b9135612f01565b92939190604051958695608087526080870190611c3a565b91151560208601528482036040860152611c3a565b9060608301520390f35b6060810190811067ffffffffffffffff82111761197e57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761197e57604052565b6040810190811067ffffffffffffffff82111761197e57604052565b60a0810190811067ffffffffffffffff82111761197e57604052565b6020810190811067ffffffffffffffff82111761197e57604052565b90601f601f19910116810190811067ffffffffffffffff82111761197e57604052565b67ffffffffffffffff811161197e5760051b60200190565b359060ff821682036100cf57565b67ffffffffffffffff811161197e57601f01601f191660200190565b81601f820112156100cf57803590611a9782611a64565b92611aa56040519485611a1b565b828452602083830101116100cf57815f926020809301838601378301015290565b9080601f830112156100cf578135611add81611a3e565b92604091611aed83519586611a1b565b808552602093848087019260051b840101938185116100cf57858401925b858410611b1c575050505050505090565b67ffffffffffffffff84358181116100cf57860191608080601f1985880301126100cf57845190611b4c826119ab565b8a8501358252858501358b830152606090611b68828701611a56565b878401528501359384116100cf57611b87878c80979681970101611a80565b90820152815201930192611b0b565b81601f820112156100cf57803591611bad83611a3e565b92611bbb6040519485611a1b565b808452602092838086019260051b8201019283116100cf578301905b828210611be5575050505090565b81358152908301908301611bd7565b5f5b838110611c055750505f910152565b8181015183820152602001611bf6565b90601f19601f602093611c3381518092818752878088019101611bf4565b0116010190565b908082519081815260208091019281808460051b8301019501935f915b848310611c675750505050505090565b9091929394958480611cae83601f1986600196030187528a51805182528381015184830152604060ff81830151169083015260608091015191608080928201520190611c15565b9801930193019194939290611c57565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100cf57565b359073ffffffffffffffffffffffffffffffffffffffff821682036100cf57565b9080601f830112156100cf578135611d1981611a3e565b92604091611d2983519586611a1b565b808552602093848087019260051b840101938185116100cf57858401925b858410611d58575050505050505090565b67ffffffffffffffff84358181116100cf578601916060601f1990808286890301126100cf57855191611d8a83611962565b611d958c8701611ce1565b8352868601358581116100cf578790870191828a0301126100cf57865190611dbc826119c7565b8c81013560048110156100cf578252878101358681116100cf578d8a91611de4930101611a80565b8c8201528b8301528401359283116100cf57611e07868b80969581960101611ac6565b85820152815201930192611d47565b359067ffffffffffffffff821682036100cf57565b359065ffffffffffff821682036100cf57565b9190916080818403126100cf5760405190611e58826119ab565b8193813567ffffffffffffffff81116100cf5782019080601f830112156100cf57813590611e8582611a3e565b91611e936040519384611a1b565b808352602093848085019260051b8201019283116100cf578401905b828210611eef57505050606092611eea9284928652611ecf818301611e16565b90860152611edf60408201611ce1565b604086015201611e2b565b910152565b848091611efb84611ce1565b815201910190611eaf565b919060409283818303126100cf578351611f1f816119c7565b809482359067ffffffffffffffff918281116100cf578401916080838703126100cf57815194611f4e866119ab565b83358281116100cf5787611f63918601611d02565b8652602095868501358381116100cf5788611f7f918701611a80565b87820152611f8e848601611e2b565b8482015260608095013580151581036100cf57858201528552858101359182116100cf57019085601f830112156100cf57813590611fcb82611a3e565b96611fd882519889611a1b565b8288528685818a019402850101938185116100cf578701925b848410612002575050505050500152565b85848303126100cf57878691845161201981611962565b61202287611a56565b815282870135838201528587013586820152815201930192611ff1565b9291909261204c84611a3e565b9161205a6040519384611a1b565b829480845260208094019060051b8301928284116100cf5780915b84831061208457505050505050565b823567ffffffffffffffff81116100cf5786916120a48684938601611f06565b815201920191612075565b9080601f830112156100cf578160206120ca9335910161203f565b90565b9060406003198301126100cf5767ffffffffffffffff6004358181116100cf57836120fa91600401611e3e565b926024359182116100cf576120ca91600401611f06565b6003111561211b57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b156121505750565b6121749060405191829162461bcd60e51b8352602060048401526024830190611c15565b0390fd5b91909165ffffffffffff8080941691160191821161219257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b906080810182519060808352815180915260a0830190602060a08260051b8601019301915f905b8282106122275750505050606061220a819260208601518582036020870152611c15565b9365ffffffffffff60408201511660408501520151151591015290565b909192937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60868203018252845173ffffffffffffffffffffffffffffffffffffffff8151168252602081015160606020840152805160048082101561233f575060206040926122a7926060870152015182608086015260a0850190611c15565b910151916040818303910152815180825260208201906020808260051b8501019401925f5b8281106122ec5750505050506020806001929601920192019092916121e6565b909192939460208061233283601f198760019603018952608060608b5180518452858101518685015260ff60408201511660408501520151918160608201520190611c15565b97019501939291016122cc565b6021907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b805190612380604092838552838501906121bf565b9060208091015193818184039101528080855193848152019401925f905b8382106123ad57505050505090565b8451805160ff1687528084015187850152810151868201526060909501949382019360019091019061239e565b91906123e583613b3b565b926123ef84612ac0565b6060825101511561251a5760206124068383612912565b015190815f925b6124d7575060ff905151911603612493577f4f465027a3d06ea73dd12be0f5c5fc0a34e21f19d6eaed4834a7a944edabc9016020849261247f61245a65ffffffffffff4216925151613c63565b60405190612467826119ab565b5f825283858301525f604083015260608201526139ab565b845f525f835260405f2055604051908152a2565b606460405162461bcd60e51b815260206004820152600a60248201527f21756e616e696d6f7573000000000000000000000000000000000000000000006044820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019080821161219257169160ff80911690811461219257600101918061240d565b606460405162461bcd60e51b815260206004820152601360248201527f5374617465206d7573742062652066696e616c000000000000000000000000006044820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146121925760010190565b8051156125985760200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8051600110156125985760400190565b80518210156125985760209160051b010190565b5f5b82518110156126345773ffffffffffffffffffffffffffffffffffffffff8061261483866125d5565b51169083161461262c576126279061255e565b6125eb565b505050600190565b5050505f90565b519081151582036100cf57565b9092919261265581611a64565b916126636040519384611a1b565b8294828452828201116100cf57602061267d930190611bf4565b565b91906040838203126100cf576126948361263b565b9260208101519067ffffffffffffffff82116100cf57019080601f830112156100cf5781516120ca92602001612648565b906020806126dc84516040855260408501906121bf565b93015191015290565b90815180825260208092019182818360051b82019501935f915b84831061270f5750505050505090565b909192939495848061272983856001950387528a516126c5565b98019301930191949392906126ff565b9291604084019173ffffffffffffffffffffffffffffffffffffffff9161276e61276784865116938861289a565b9187612912565b6040519687947f9936d8120000000000000000000000000000000000000000000000000000000086526060600487015260e486019682516080606489015280518099526101048801986020809201905f5b818110612848575050505f9865ffffffffffff6060868b99968a999667ffffffffffffffff610eb7976128169b01511660848c0152511660a48a015201511660c487015260031993848783030160248801526126e5565b03915afa918215610f22575f90819361282e57509190565b906128449293503d8091833e610f138183611a1b565b9091565b825186168c529a83019a8d9a50918301916001016127bf565b6040519061286e826119c7565b5f60208360405161287e816119ab565b6060815260608382015283604082015283606082015281520152565b815191601f196128ac61019b85611a3e565b015f5b8181106128fb5750505f5b81518110156128f557806128db6128d46128f093856125d5565b5185612912565b6128e582876125d5565b526102a181866125d5565b6128ba565b50505090565b602090612906612861565b828288010152016128af565b919061291c612861565b508051906040519161292d836119c7565b8252602092838301925f9283855283955b808201805151881015612a205761296e9061296789612960869896518d613bec565b92516125d5565b5190613a5f565b92859473ffffffffffffffffffffffffffffffffffffffff809516955b8a518051821015612a10576129a18288926125d5565b511687146129b7576129b29061255e565b61298b565b929891955093509060ff81116129e3579060016129d9921b875117875261255e565b959291909261293e565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b505093509350956129d99061255e565b50505093509350505090565b612a66905f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b505065ffffffffffff80911691161115612a7c57565b606460405162461bcd60e51b815260206004820152601c60248201527f7475726e4e756d5265636f7264206e6f7420696e637265617365642e000000006044820152fd5b612acb600291613949565b612ad481612111565b14612adb57565b606460405162461bcd60e51b815260206004820152601260248201527f4368616e6e656c2066696e616c697a65642e00000000000000000000000000006044820152fd5b9190820180921161219257565b3d15612b56573d90612b3d82611a64565b91612b4b6040519384611a1b565b82523d5f602084013e565b606090565b91929015612bbc5750815115612b6f575090565b3b15612b785790565b606460405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156121505750805190602001fd5b9080601f830112156100cf5781516120ca92602001612648565b805181016020828203126100cf57602082015167ffffffffffffffff81116100cf5760208201603f8285010112156100cf576020818401015190612c2c82611a3e565b93612c3a6040519586611a1b565b82855260208501916020850160408560051b8385010101116100cf57604081830101925b60408560051b83850101018410612c785750505050505090565b835167ffffffffffffffff81116100cf5782840101601f1990606082828a0301126100cf5760405191612caa83611962565b604082015173ffffffffffffffffffffffffffffffffffffffff811681036100cf578352606082015167ffffffffffffffff81116100cf57604090830191828b0301126100cf5760405190612cfe826119c7565b604081015160048110156100cf57825260608101519067ffffffffffffffff82116100cf576040612d359260208d01920101612bcf565b60208201526020830152608081015167ffffffffffffffff81116100cf5760208901605f8284010112156100cf576040818301015190612d7482611a3e565b92612d826040519485611a1b565b828452602084019060208c0160608560051b8584010101116100cf57606083820101915b60608560051b85840101018310612dcf5750505050506040820152815260209384019301612c5e565b825167ffffffffffffffff81116100cf57608083860182018f037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001126100cf5760405191612e1d836119ab565b8386018201606081015184526080810151602085015260a0015160ff811681036100cf57604084015260c0828786010101519267ffffffffffffffff84116100cf578f602094936060869586612e7a9401928b8a01010101612bcf565b6060820152815201920191612da6565b90612e9482611a3e565b604090612ea382519182611a1b565b838152601f19612eb38295611a3e565b01915f91825b848110612ec7575050505050565b6020908351612ed5816119ab565b8581528286818301528686830152606080830152828501015201612eb9565b9190820391821161219257565b91929083518015155f1461317b57612f1890612e8a565b915f91612f258151612e8a565b9560019081809793895f9586935b612f41575b50505050505050565b90919293949597835185101561317257612f5b85856125d5565b5151612f6786856125d5565b515260409060ff8083612f7a89896125d5565b5101511683612f8989886125d5565b510152606080612f9989896125d5565b51015181612fa78a896125d5565b51015260209384612fb88a8a6125d5565b5101518681111561316c575085965b8d8b51908b8215928315613142575b5050505f146131115750600283828f612fef908c6125d5565b51015116146130ce578f96959493868f918f61308c906130929461309e988f988f908f916130989a898f946130678f8692886130428361303c8884613034848e6125d5565b510151612ef4565b936125d5565b51015261304f81876125d5565b5151988561305d83896125d5565b51015116956125d5565b51015194825196613077886119ab565b875286015284015282015261026983836125d5565b50612b1f565b9c61255e565b956125d5565b5101516130c6575b6130b9916130b391612ef4565b9361255e565b91909493928a9085612f33565b5f9a506130a6565b84606491519062461bcd60e51b82526004820152601b60248201527f63616e6e6f74207472616e7366657220612067756172616e74656500000000006044820152fd5b905061309e92508891508461312c83959e989796958a6125d5565b5101518461313a84846125d5565b5101526125d5565b821092509082613157575b50508e8b5f612fd6565b6131639192508d6125d5565b51148a8f61314d565b96612fc7565b97829150612f38565b50612f188151612e8a565b90815180825260208092019182818360051b82019501935f915b8483106131b05750505050505090565b9091929394958181038352865173ffffffffffffffffffffffffffffffffffffffff815116825285810151906060918288850152805160048082101561233f575091886132169285948796839801520151604092839182608088015260a0870190611c15565b91015193828183039101528351908181528581019286808460051b8401019601945f915b84831061325d5750505050505050908060019298019301930191949392906131a0565b919395978061329f89601f1987600196989a9c03018b526080878d5180518452858101518685015260ff89820151168985015201519181898201520190611c15565b99019701930190918b97969593949261323a565b80517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908111612192576132e890612e8a565b916132f384836125d5565b51606081015192604094855191613309836119c7565b5f958684528660208095015287818051810103126135e7578780519161332e836119c7565b85810151835201519084810191825287998890899c8a988b5b87518d10156134b0578f848e146134a1578c8f8f906133b4858f8f908f61336e87826125d5565b5151958261337c89846125d5565b51015160606133928a60ff8561305d83896125d5565b510151938251986133a28a6119ab565b895288015286015260608501526125d5565b526133bf848d6125d5565b508715908161348b575b50613451575b50158061343c575b6133ee575b6130926133e89161255e565b9b613347565b9e5098613431908f61341c8b6134128f61340883916125c5565b510151938d6125d5565b5101918251612b1f565b9052896134288d6125c5565b51015190612b1f565b60019e9099906133dc565b506134478d896125d5565b51518751146133d7565b829c919650613428818c61347a8f6134126134819882613471819961258b565b510151946125d5565b905261258b565b996001948c6133cf565b61349691508b6125d5565b51518851148f6133c9565b509b9d506133e860019e61255e565b509899509c969a995050939992505050156135a45715613561571561351e57830151036134dc57505090565b60649250519062461bcd60e51b825280600483015260248201527f746f74616c5265636c61696d6564213d67756172616e7465652e616d6f756e746044820152fd5b60648484519062461bcd60e51b82526004820152601460248201527f636f756c64206e6f742066696e642072696768740000000000000000000000006044820152fd5b60648585519062461bcd60e51b82526004820152601360248201527f636f756c64206e6f742066696e64206c656674000000000000000000000000006044820152fd5b60648686519062461bcd60e51b82526004820152601560248201527f636f756c64206e6f742066696e642074617267657400000000000000000000006044820152fd5b8680fd5b73ffffffffffffffffffffffffffffffffffffffff9081815116915f5b6040808401908151918251841015612f3857846136268580956125d5565b5151916136376020958692516125d5565b510151918060a01c155f146137635716876136b5575f80809381935af161365c612b2c565b501561367257505061366d9061255e565b613608565b60649250519062461bcd60e51b82526004820152601660248201527f436f756c64206e6f74207472616e7366657220455448000000000000000000006044820152fd5b82517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152602481019190915292919081846044815f8b5af190811561375a5750613724575b5061366d915061255e565b82813d8311613753575b6137388183611a1b565b810103126100cf5761374c61366d9261263b565b505f613719565b503d61372e565b513d5f823e3d90fd5b5f898152600186528481209181529452509120805461366d939261378691612b1f565b905561255e565b916137c8905f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b939150506137ec73ffffffffffffffffffffffffffffffffffffffff928392613a25565b169116036137f657565b606460405162461bcd60e51b815260206004820152601560248201527f696e636f72726563742066696e6765727072696e7400000000000000000000006044820152fd5b613845600291613949565b61384e81612111565b0361385557565b606460405162461bcd60e51b815260206004820152601660248201527f4368616e6e656c206e6f742066696e616c697a65642e000000000000000000006044820152fd5b919061390a916138d9845f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b509290604051936138e9856119ab565b65ffffffffffff8092168552166020840152604083015260608201526139ab565b905f525f60205260405f2055565b9061392282611a3e565b61392f6040519182611a1b565b828152601f1961393f8294611a3e565b0190602036910137565b61398a65ffffffffffff915f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b5090501680155f1461399b57505f90565b42106139a657600290565b600190565b73ffffffffffffffffffffffffffffffffffffffff613a207fffffffffffff0000000000000000000000000000000000000000000000000000835160d01b1679ffffffffffff0000000000000000000000000000000000000000602085015160a01b1617926060604082015191015190613a25565b161790565b73ffffffffffffffffffffffffffffffffffffffff916040519060208201928352604082015260408152613a5881611962565b5190201690565b905f60806020926040948551858101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c8152613aa481611962565b5190209060ff8151169086868201519101519187519384528684015286830152606082015282805260015afa1561375a575f519073ffffffffffffffffffffffffffffffffffffffff821615613af8575090565b6064905162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152fd5b80519060209167ffffffffffffffff838301511673ffffffffffffffffffffffffffffffffffffffff9165ffffffffffff606084604087015116950151166040519485938785019760a086019060808a5285518092528060c088019601975f905b838210613bcf5750505050613bc9955060408501526060840152608083015203601f198101835282611a1b565b51902090565b895181168852988201988a98509682019660019190910190613b9c565b613bc9613bfb613c3992613b3b565b926020810151815191606065ffffffffffff6040830151169101511515613c4c60405196879460208601998a5260a0604087015260c0860190611c15565b601f199586868303016060870152613186565b91608084015260a083015203908101835282611a1b565b604051613bc9816106e9602082019460208652604083019061318656fea2646970667358221220e597ecc41e3e9935d3fffc69130803a4b49ff086ddb901c6e368016e7e91007564736f6c63430008140033", } // NitroAdjudicatorABI is the input ABI used to generate the binding from. diff --git a/node/engine/chainservice/consensusapp/ConsensusApp.go b/node/engine/chainservice/consensusapp/ConsensusApp.go index 8e58db423..f4c52d773 100644 --- a/node/engine/chainservice/consensusapp/ConsensusApp.go +++ b/node/engine/chainservice/consensusapp/ConsensusApp.go @@ -75,7 +75,7 @@ type INitroTypesVariablePart struct { // ConsensusAppMetaData contains all meta data concerning the ConsensusApp contract. var ConsensusAppMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"channelNonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"appDefinition\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"challengeDuration\",\"type\":\"uint48\"}],\"internalType\":\"structINitroTypes.FixedPart\",\"name\":\"fixedPart\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"signedBy\",\"type\":\"uint256\"}],\"internalType\":\"structINitroTypes.RecoveredVariablePart[]\",\"name\":\"proof\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"signedBy\",\"type\":\"uint256\"}],\"internalType\":\"structINitroTypes.RecoveredVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"}],\"name\":\"stateIsSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Bin: "0x6080806040523461001657610a86908161001c8239f35b600080fdfe6101006004908136101561001257600080fd5b600090813560e01c639936d8121461002957600080fd5b3461043f576060917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc91838336011261043f5784359067ffffffffffffffff9081831161043b57608085843603011261043b576024908135838111610437573660238201121561043757808901359084821161043357838260051b82010136811161042f576044359186831161042b576040809a843603011261042b576080850185811088821117610400578a52878c01358781116103fc578801973660238a0112156103fc578c890135610105610100826104f6565b6104b2565b998a91808c52896020809d019160051b830101913683116103f8578a8d9101915b8383106103e0575050505086528681013588811681036103dc57610161916064918b8901526101576044820161050e565b8d89015201610534565b8b86015287610172610100866104f6565b809581520190868101915b8383106103b257505050506101959036908b016105b8565b905161035757840151908186925b6102be575060ff9051519116036102635784519683880192831188841017610239575050839291959352808352815194859360018552838286015280518094860152825b84811061022357505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016101e7565b604185917f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b86600a606492858851937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f21756e616e696d6f7573000000000000000000000000000000000000000000006044820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019080821161032c57169160ff8091169081146103015760010191806101a3565b838760118c7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b848860118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b606489600a85888b51937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f7c70726f6f667c213d30000000000000000000000000000000000000000000006044820152fd5b82358981116103d8578a916103cd83928b36918701016105b8565b81520192019161017d565b8b80fd5b8a80fd5b81906103eb8461050e565b8152019101908c90610126565b8d80fd5b8980fd5b868a60418f7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8880fd5b8780fd5b8680fd5b8580fd5b8380fd5b5080fd5b604051906040820182811067ffffffffffffffff82111761046357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051906080820182811067ffffffffffffffff82111761046357604052565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff82111761046357604052565b67ffffffffffffffff81116104635760051b60200190565b359073ffffffffffffffffffffffffffffffffffffffff8216820361052f57565b600080fd5b359065ffffffffffff8216820361052f57565b81601f8201121561052f5780359067ffffffffffffffff82116104635761059560207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f850116016104b2565b928284526020838301011161052f57816000926020809301838601378301015290565b604091816080528060a052031261052f576105d1610443565b60805180358060c05267ffffffffffffffff811161052f576080910160a051031261052f576105fe610492565b9060c051608051019267ffffffffffffffff84351161052f5760a0518435850190601f8201121561052f573591610637610100846104f6565b91602083858152019460a051873560c05160805101019060208760051b8301011161052f57939591949360200192905b873560c05160805101019160208660051b8401018510156109d65767ffffffffffffffff85351161052f5760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08635850160a05103011261052f576040519283606081011067ffffffffffffffff6060860111176109a85760206106f691606086016040528735010161050e565b83528435893560c05160805101010160408101359067ffffffffffffffff821161052f576040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910160a05103011261052f57610752610443565b85358a3560c05160805101010160046020604083013583010135101561052f578060406020920135010135815285358a3560c05160805101010167ffffffffffffffff604080830135830101351161052f5760a0516107c1916040808201359091019081013501602001610547565b602082015260208401528435893560c05160805101010160e05267ffffffffffffffff606060e05101351161052f5760a05160e0516060810135019690603f8801121561052f5761081861010060208901356104f6565b9860208a818a01358152019260a051606060e05101358d8a35903560c0516080510101010190604060208c013560051b8301011161052f57604001935b606060e05101358d8a35903560c0516080510101010190604060208c013560051b8301018610156109865785359167ffffffffffffffff831161052f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0836080920160a05103011261052f578160808f938c6108d0610492565b95604083606060e05101358435843560c05189510101010101013587526060838160e05101358435843560c0518951010101010101356020880152606060e05101359135903560c05185510101010101013560ff8116810361052f578f906040850152606060e0510135908c35903560c05160805101010101019060a08201359267ffffffffffffffff841161052f57610976602094936040869560a051920101610547565b6060820152815201940193610855565b5050604086019a909a5293855292979295505060209384019390920191610667565b602460007f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b975094959350505050815260c0516080510160208101359067ffffffffffffffff821161052f57610a0b9160a0519101610547565b6020820152610a22604060c0516080510101610534565b6040820152606060c051608051010135801515810361052f576060820152825260206080510135602083015256fea2646970667358221220020ee00ab3c1ffe643a97a1715514f1504837be84444c40e183de1b9b574744f64736f6c63430008110033", + Bin: "0x6080806040523461001657610a4d908161001b8239f35b5f80fdfe6040610100815260049081361015610015575f80fd5b5f90813560e01c639936d8121461002a575f80fd5b3461040b576060917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc838136011261040b5784359067ffffffffffffffff908183116104075760808184360301126104075760249081359083821161040357366023830112156104035781890135908482116103ff57838260051b8401013681116103f757604435918683116103fb57899083360301126103f7576100cd61040f565b93878c01358781116103f3578801973660238a0112156103f3578c8901356100fc6100f7826104c0565b61047c565b998a91808c52896020809d019160051b830101913683116103ef578a8d9101915b8383106103d7575050505086528681013588811681036103d357610158916064918b89015261014e604482016104d8565b8d890152016104fd565b8b860152876101696100f7866104c0565b809581520190868101915b8383106103a9575050505061018c9036908b01610580565b905161034e57840151908186925b6102b5575060ff90515191160361025a5784519683880192831188841017610230575050839291959352808352815194859360018552838286015280518094860152825b84811061021a57505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016101de565b604185917f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b86600a606492858851937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f21756e616e696d6f7573000000000000000000000000000000000000000000006044820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019080821161032357169160ff8091169081146102f857600101918061019a565b838760118c7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b848860118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b606489600a85888b51937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f7c70726f6f667c213d30000000000000000000000000000000000000000000006044820152fd5b82358981116103cf578a916103c483928b3691870101610580565b815201920191610174565b8b80fd5b8a80fd5b81906103e2846104d8565b8152019101908c9061011d565b8d80fd5b8980fd5b8780fd5b8880fd5b8680fd5b8580fd5b8380fd5b5080fd5b604051906080820182811067ffffffffffffffff82111761042f57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051906040820182811067ffffffffffffffff82111761042f57604052565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff82111761042f57604052565b67ffffffffffffffff811161042f5760051b60200190565b359073ffffffffffffffffffffffffffffffffffffffff821682036104f957565b5f80fd5b359065ffffffffffff821682036104f957565b81601f820112156104f95780359067ffffffffffffffff821161042f5761055e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160161047c565b92828452602083830101116104f957815f926020809301838601378301015290565b604091816080528060a05203126104f95761059961045c565b60805180358060c05267ffffffffffffffff81116104f9576080910160a05103126104f9576105c661040f565b9060c051608051019267ffffffffffffffff8435116104f95760a0518435850190601f820112156104f95735916105ff6100f7846104c0565b91602083858152019460a051873560c05160805101019060208760051b830101116104f957939591949360200192905b873560c05160805101019160208660051b84010185101561099d5767ffffffffffffffff8535116104f95760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08635850160a0510301126104f9576040519283606081011067ffffffffffffffff6060860111176109705760206106be9160608601604052873501016104d8565b83528435893560c05160805101010160408101359067ffffffffffffffff82116104f9576040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910160a0510301126104f95761071a61045c565b85358a3560c0516080510101016004602060408301358301013510156104f9578060406020920135010135815285358a3560c05160805101010167ffffffffffffffff60408083013583010135116104f95760a051610789916040808201359091019081013501602001610510565b602082015260208401528435893560c05160805101010160e05267ffffffffffffffff606060e0510135116104f95760a05160e0516060810135019690603f880112156104f9576107e06100f760208901356104c0565b9860208a818a01358152019260a051606060e05101358d8a35903560c0516080510101010190604060208c013560051b830101116104f957604001935b606060e05101358d8a35903560c0516080510101010190604060208c013560051b83010186101561094e5785359167ffffffffffffffff83116104f9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0836080920160a0510301126104f9578160808f938c61089861040f565b95604083606060e05101358435843560c05189510101010101013587526060838160e05101358435843560c0518951010101010101356020880152606060e05101359135903560c05185510101010101013560ff811681036104f9578f906040850152606060e0510135908c35903560c05160805101010101019060a08201359267ffffffffffffffff84116104f95761093e602094936040869560a051920101610510565b606082015281520194019361081d565b5050604086019a909a529385529297929550506020938401939092019161062f565b60245f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b975094959350505050815260c0516080510160208101359067ffffffffffffffff82116104f9576109d29160a0519101610510565b60208201526109e9604060c05160805101016104fd565b6040820152606060c05160805101013580151581036104f9576060820152825260206080510135602083015256fea26469706673582212208f5328d70250f5cb2121fb776e35cf6e8913ac721ebbe8ab67b97723b95c6b5164736f6c63430008140033", } // ConsensusAppABI is the input ABI used to generate the binding from. diff --git a/node/engine/chainservice/erc20/Token.go b/node/engine/chainservice/erc20/Token.go index c85b2b595..f31297042 100644 --- a/node/engine/chainservice/erc20/Token.go +++ b/node/engine/chainservice/erc20/Token.go @@ -32,7 +32,7 @@ var ( // TokenMetaData contains all meta data concerning the Token contract. var TokenMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608034620003ef57601f19906001600160401b03601f62000fe4388190038281018616850184811186821017620003f457859282916040528339602094859181010312620003ef57516001600160a01b0381169490859003620003ef57620000666200040a565b9260098452682a32b9ba2a37b5b2b760b91b85850152620000866200040a565b60049485825263151154d560e21b87830152805191838311620002f3576003928354926001938481811c91168015620003e4575b8b821014620003cf5790818984931162000379575b508a90898311600114620003145760009262000308575b505060001982861b1c191690831b1783555b8051938411620002f35786548281811c91168015620002e8575b89821014620002d35786811162000288575b5087908685116001146200021f578495509084929160009562000213575b50501b92600019911b1c19161782555b8315620001d357506002546402540be40091828201809211620001be57506002556000838152808352604080822080548401905551918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a3604051610bb990816200042b8239f35b601190634e487b7160e01b6000525260246000fd5b6064926040519262461bcd60e51b845283015260248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b01519350388062000142565b9291948416928760005284896000209460005b8b8983831062000270575050501062000255575b50505050811b01825562000152565b01519060f884600019921b161c191690553880808062000246565b86860151895590970196948501948893500162000232565b87600052886000208780870160051c8201928b8810620002c9575b0160051c019083905b828110620002bc57505062000124565b60008155018390620002ac565b92508192620002a3565b602288634e487b7160e01b6000525260246000fd5b90607f169062000112565b604187634e487b7160e01b6000525260246000fd5b015190503880620000e6565b908886941691876000528c600020928d6000905b82821062000361575050841162000348575b505050811b018355620000f8565b015160001983881b60f8161c191690553880806200033a565b83850151865589979095019493840193018e62000328565b909150856000528a6000208980850160051c8201928d8610620003c5575b918791869594930160051c01915b828110620003b5575050620000cf565b60008155859450879101620003a5565b9250819262000397565b60228a634e487b7160e01b6000525260246000fd5b90607f1690620000ba565b600080fd5b634e487b7160e01b600052604160045260246000fd5b60408051919082016001600160401b03811183821017620003f45760405256fe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461062a57508163095ea7b31461060057816318160ddd146105e157816323b872dd146104d1578163313ce567146104b5578163395093511461042957816370a08231146103e657816395d89b411461020e578163a457c2d71461012657508063a9059cbb146100f65763dd62ed3e1461009e57600080fd5b346100f257806003193601126100f257806020926100ba6107b4565b6100c26107dc565b73ffffffffffffffffffffffffffffffffffffffff91821683526001865283832091168252845220549051908152f35b5080fd5b50346100f257806003193601126100f25760209061011f6101156107b4565b60243590336107ff565b5160018152f35b9050823461020b578260031936011261020b576101416107b4565b918360243592338152600160205281812073ffffffffffffffffffffffffffffffffffffffff861682526020522054908282106101885760208561011f8585038733610a0e565b60849060208651917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152fd5b80fd5b8383346100f257816003193601126100f257805190828454600181811c908083169283156103dc575b60209384841081146103b057838852879594939291811561035557506001146102d9575b50505003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019267ffffffffffffffff8411838510176102ad57508291826102a992528261074e565b0390f35b806041867f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b8888529193925086917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061033f57505050907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092601f9282010191819361025b565b8054888501870152879450928501928101610304565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016848701525050151560051b830101905081601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061025b565b60248960228c7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b91607f1691610237565b5050346100f25760206003193601126100f2578060209273ffffffffffffffffffffffffffffffffffffffff61041a6107b4565b16815280845220549051908152f35b82843461020b578160031936011261020b576104436107b4565b338252600160205282822073ffffffffffffffffffffffffffffffffffffffff82168352602052828220549160243583018093116104895760208461011f858533610a0e565b806011867f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b5050346100f257816003193601126100f2576020905160128152f35b839150346100f25760606003193601126100f2576104ed6107b4565b6104f56107dc565b91846044359473ffffffffffffffffffffffffffffffffffffffff8416815260016020528181203382526020522054907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361055b575b60208661011f8787876107ff565b84821061058457509183916105796020969561011f95033383610a0e565b91939481935061054d565b60649060208751917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100f257816003193601126100f2576020906002549051908152f35b5050346100f257806003193601126100f25760209061011f6106206107b4565b6024359033610a0e565b8490843461074a578260031936011261074a5782600354600181811c90808316928315610740575b60209384841081146103b057838852879594939291811561035557506001146106c35750505003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019267ffffffffffffffff8411838510176102ad57508291826102a992528261074e565b600388529193925086917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061072a57505050907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092601f9282010191819361025b565b80548885018701528794509285019281016106ef565b91607f1691610652565b8280fd5b60208082528251818301819052939260005b8581106107a0575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b818101830151848201604001528201610760565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036107d757565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036107d757565b73ffffffffffffffffffffffffffffffffffffffff80911691821561098a57169182156109065760008281528060205260408120549180831061088257604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff809116918215610b005716918215610a7c5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fdfea264697066735822122004b2fe3abdf1a2b8f611b3ee3eb0b820dcbd0d928574feeca6f2f2e07e35278f64736f6c63430008110033", + Bin: "0x608034620003d457601f19906001600160401b03601f62000fbb388190038281018616850184811186821017620003d857859282916040528339602094859181010312620003d457516001600160a01b0381169490859003620003d45762000066620003ec565b9260098452682a32b9ba2a37b5b2b760b91b8585015262000086620003ec565b60049485825263151154d560e21b87830152805191838311620002e3576003928354926001938481811c91168015620003c9575b8b821014620003b65790818984931162000363575b508a9089831160011462000302575f92620002f6575b50505f1982861b1c191690831b1783555b8051938411620002e35786548281811c91168015620002d8575b89821014620002c5578681116200027d575b5087908685116001146200021857849550908492915f956200020c575b50501b925f19911b1c19161782555b8315620001cc57506002546402540be40091828201809211620001b957506002555f838152808352604080822080548401905551918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a3604051610bae90816200040d8239f35b601190634e487b7160e01b5f525260245ffd5b6064926040519262461bcd60e51b845283015260248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b015193505f806200013f565b929194841692875f5284895f20945f5b8b898383106200026557505050106200024b575b50505050811b0182556200014e565b01519060f8845f19921b161c191690555f8080806200023c565b86860151895590970196948501948893500162000228565b875f52885f208780870160051c8201928b8810620002bb575b0160051c019083905b828110620002af57505062000122565b5f81550183906200029f565b9250819262000296565b602288634e487b7160e01b5f525260245ffd5b90607f169062000110565b604187634e487b7160e01b5f525260245ffd5b015190505f80620000e5565b908886941691875f528c5f20928d5f905b8282106200034b575050841162000333575b505050811b018355620000f6565b01515f1983881b60f8161c191690555f808062000325565b83850151865589979095019493840193018e62000313565b909150855f528a5f208980850160051c8201928d8610620003ac575b918791869594930160051c01915b8281106200039d575050620000cf565b5f81558594508791016200038d565b925081926200037f565b60228a634e487b7160e01b5f525260245ffd5b90607f1690620000ba565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b60408051919082016001600160401b03811183821017620003d85760405256fe6080604081815260049182361015610015575f80fd5b5f92833560e01c91826306fdde031461062757508163095ea7b3146105fd57816318160ddd146105de57816323b872dd146104ce578163313ce567146104b2578163395093511461042657816370a08231146103e357816395d89b411461020b578163a457c2d71461012357508063a9059cbb146100f35763dd62ed3e1461009b575f80fd5b346100ef57806003193601126100ef57806020926100b76107af565b6100bf6107d6565b73ffffffffffffffffffffffffffffffffffffffff91821683526001865283832091168252845220549051908152f35b5080fd5b50346100ef57806003193601126100ef5760209061011c6101126107af565b60243590336107f9565b5160018152f35b9050823461020857826003193601126102085761013e6107af565b918360243592338152600160205281812073ffffffffffffffffffffffffffffffffffffffff861682526020522054908282106101855760208561011c8585038733610a07565b60849060208651917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152fd5b80fd5b8383346100ef57816003193601126100ef57805190828454600181811c908083169283156103d9575b60209384841081146103ad57838852879594939291811561035257506001146102d6575b50505003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019267ffffffffffffffff8411838510176102aa57508291826102a692528261074b565b0390f35b806041867f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b8888529193925086917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061033c57505050907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092601f92820101918193610258565b8054888501870152879450928501928101610301565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016848701525050151560051b830101905081601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610258565b60248960228c7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b91607f1691610234565b5050346100ef5760206003193601126100ef578060209273ffffffffffffffffffffffffffffffffffffffff6104176107af565b16815280845220549051908152f35b8284346102085781600319360112610208576104406107af565b338252600160205282822073ffffffffffffffffffffffffffffffffffffffff82168352602052828220549160243583018093116104865760208461011c858533610a07565b806011867f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b5050346100ef57816003193601126100ef576020905160128152f35b839150346100ef5760606003193601126100ef576104ea6107af565b6104f26107d6565b91846044359473ffffffffffffffffffffffffffffffffffffffff8416815260016020528181203382526020522054907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610558575b60208661011c8787876107f9565b84821061058157509183916105766020969561011c95033383610a07565b91939481935061054a565b60649060208751917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100ef57816003193601126100ef576020906002549051908152f35b5050346100ef57806003193601126100ef5760209061011c61061d6107af565b6024359033610a07565b8490843461074757826003193601126107475782600354600181811c9080831692831561073d575b60209384841081146103ad57838852879594939291811561035257506001146106c05750505003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019267ffffffffffffffff8411838510176102aa57508291826102a692528261074b565b600388529193925086917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061072757505050907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092601f92820101918193610258565b80548885018701528794509285019281016106ec565b91607f169161064f565b8280fd5b6020808252825181830181905293925f5b85811061079b575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f845f6040809697860101520116010190565b81810183015184820160400152820161075c565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036107d257565b5f80fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036107d257565b73ffffffffffffffffffffffffffffffffffffffff80911691821561098357169182156108ff575f8281528060205260408120549180831061087b57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff809116918215610af55716918215610a715760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f526001825260405f20855f5282528060405f2055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fdfea264697066735822122007db7b6a08f8f0ac2e43b141725af2341dd1ebb30b51582400c2f923040fd53964736f6c63430008140033", } // TokenABI is the input ABI used to generate the binding from. diff --git a/node/engine/chainservice/virtualpaymentapp/VirtualPaymentApp.go b/node/engine/chainservice/virtualpaymentapp/VirtualPaymentApp.go index 4c3a45c0b..9a4644faa 100644 --- a/node/engine/chainservice/virtualpaymentapp/VirtualPaymentApp.go +++ b/node/engine/chainservice/virtualpaymentapp/VirtualPaymentApp.go @@ -75,7 +75,7 @@ type INitroTypesVariablePart struct { // VirtualPaymentAppMetaData contains all meta data concerning the VirtualPaymentApp contract. var VirtualPaymentAppMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"channelNonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"appDefinition\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"challengeDuration\",\"type\":\"uint48\"}],\"internalType\":\"structINitroTypes.FixedPart\",\"name\":\"fixedPart\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"signedBy\",\"type\":\"uint256\"}],\"internalType\":\"structINitroTypes.RecoveredVariablePart[]\",\"name\":\"proof\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"signedBy\",\"type\":\"uint256\"}],\"internalType\":\"structINitroTypes.RecoveredVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"}],\"name\":\"stateIsSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Bin: "0x608080604052346100165761123b908161001c8239f35b600080fdfe60c0604052600436101561001257600080fd5b6000803560e01c639936d8121461002857600080fd5b346101545760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc81813601126101505760043567ffffffffffffffff9182821161014c57608081833603011261014c5760243591838311610144573660238401121561014457826004013591848311610148573660248460051b86010111610148576044359485116101485760409085360301126101445760246100d594600401930190600401610630565b604051938492151583526020604081850152825192836040860152825b84811061012e57505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100f2565b8580fd5b8680fd5b8480fd5b8280fd5b80fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101ab570180359067ffffffffffffffff82116101ab57602001918160051b360383136101ab57565b600080fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81813603018212156101ab570190565b3565ffffffffffff811681036101ab5790565b6080810190811067ffffffffffffffff82111761021257604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761021257604052565b6020810190811067ffffffffffffffff82111761021257604052565b6060810190811067ffffffffffffffff82111761021257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761021257604052565b901561030f578035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1813603018212156101ab570190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b67ffffffffffffffff81116102125760051b60200190565b359073ffffffffffffffffffffffffffffffffffffffff821682036101ab57565b92919267ffffffffffffffff821161021257604051916103bf60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610295565b8294818452818301116101ab578281602093846000960137010152565b9080601f830112156101ab578160206103f793359101610377565b90565b90929192608093845261040c8161033e565b9060409061041c82519384610295565b8295818452602060a0948186520192600592831b860195825187116101ab5780945b87861061044f575050505050505050565b67ffffffffffffffff86358181116101ab5783019060608083885103126101ab57855192818401848110848211176105ef57875261048c81610356565b84528a518101358381116101ab57810187818a5103126101ab57875190888201828110868211176105ef578952803560048110156101ab5782528c51810135908582116101ab576104e0918b5191016103dc565b8c518201528b5185015286810135908382116101ab5701908751601f830112156101ab578135906105108261033e565b9361051d89519586610295565b8285528c519384808701948d1b820101948b5186116101ab5781015b85811061055957505050505050848201528152865101948651019461043e565b80358381116101ab578201948c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08782510301126101ab578f958c519061059f826101f6565b875181013582528d81013588518301528681013560ff811681036101ab57828f0152808f01358681116101ab578f916105de9251918a519101016103dc565b868201528152855101945101610539565b602460007f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b359065ffffffffffff821682036101ab57565b909291801561106b576001811461069f5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6261642070726f6f66206c656e677468000000000000000000000000000000006044820152fd5b6106a981856102d6565b6106b38380610157565b9190506040813603126101ab576040516106cc81610241565b813567ffffffffffffffff81116101ab578201906080823603126101ab57604051916106f7836101f6565b803567ffffffffffffffff81116101ab57810136601f820112156101ab576107269036906020813591016103fa565b8352602081013567ffffffffffffffff81116101ab5761074990369083016103dc565b6020840152606061075c6040830161061d565b916040850192835201359283151584036101ab57602065ffffffffffff9382600196606084950152815201940135845251160361100d5761079f60ff91516111b5565b1603610faf57600265ffffffffffff6107c360406107bd87806101b0565b016101e3565b1603610f51576107d38280610157565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810191508111610cff576001809160ff602087013591161c1603610ef35761081c83806101b0565b6020810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101ab570180359067ffffffffffffffff82116101ab5760200181360381136101ab57610878913691610377565b916080813603126101ab5760405190610890826101f6565b803567ffffffffffffffff81116101ab57810136601f820112156101ab578035906108ba8261033e565b916108c86040519384610295565b80835260208084019160051b830101913683116101ab57602001905b828210610edb575050508252602081013567ffffffffffffffff811681036101ab5761092991606091602085015261091e60408201610356565b60408501520161061d565b606082015282805181010392608084126101ab5760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06040519561096d87610241565b6020840151875201126101ab576040519081606081011067ffffffffffffffff606084011117610212576060820160405260408101519060ff821682036101ab57608091835260608101516020840152015160408201526020840152805167ffffffffffffffff6020830151169073ffffffffffffffffffffffffffffffffffffffff60408401511665ffffffffffff606085015116906040519360a08501608060208701528451809152602060c0870195019060005b818110610eaf57505050846000946080948294610a7794604060209a0152606084015285830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610295565b838151910120865160405190858201928352604082015260408152610a9b81610279565b5190208387015190604051858101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c8152610adf81610279565b5190209060ff8151169060408682015191015191604051938452868401526040830152606082015282805260015afa15610ea35773ffffffffffffffffffffffffffffffffffffffff60005116908115610e4557610b5273ffffffffffffffffffffffffffffffffffffffff91516111a8565b511603610de757610b96610b8c610b83610b7d610b77610b7d95610b9e9751996102d6565b806101b0565b80610157565b939095806101b0565b94909236916103fa565b9236916103fa565b90600181511480610ddc575b80610db4575b80610d8c575b15610d2e576020610be46040610bd383610bdb83610bd3896111a8565b5101516111a8565b510151946111a8565b51015190838203918211610cff5703610ca157610c026040916111a8565b51015180516001101561030f57604001516020015103610c43576001906040516020810181811067ffffffffffffffff821117610212576040526000815290565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f426f62206e6f742061646a757374656420636f72726563746c790000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f416c696365206e6f742061646a757374656420636f72726563746c79000000006044820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f6f6e6c79206e617469766520617373657420616c6c6f776564000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff610dab836111a8565b51511615610bb6565b5073ffffffffffffffffffffffffffffffffffffffff610dd3826111a8565b51511615610bb0565b506001825114610baa565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e76616c6964207369676e617475726520666f7220766f75636865720000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152fd5b6040513d6000823e3d90fd5b825173ffffffffffffffffffffffffffffffffffffffff16875260209687019690920191600101610a24565b60208091610ee884610356565b8152019101906108e4565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f726564656d7074696f6e206e6f74207369676e656420627920426f62000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f6261642063616e646964617465207475726e4e756d3b207c70726f6f667c3d316044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f706f737466756e642021756e616e696d6f75733b207c70726f6f667c3d3100006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6261642070726f6f665b305d2e7475726e4e756d3b207c70726f6f667c3d31006044820152fd5b5090915060ff61108861108160208501356111b5565b9280610157565b929050160361114a5765ffffffffffff806110a860406107bd85806101b0565b1615611139576110bf60406107bd846001956101b0565b16146111235760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f6261642063616e646964617465207475726e4e756d3b207c70726f6f667c3d306044820152fd5b6001906040516111328161025d565b6000815290565b50506001906040516111328161025d565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f21756e616e696d6f75733b207c70726f6f667c3d3000000000000000000000006044820152fd5b80511561030f5760200190565b806000915b6111c2575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190808211610cff57169060ff809116908114610cff5760010190806111ba56fea2646970667358221220932b5e221207abd55322ed463c8d69f512f2cb66a7a4e60b56983979cf09d33064736f6c63430008110033", + Bin: "0x60808060405234610016576111bf908161001b8239f35b5f80fdfe60c06040526004361015610011575f80fd5b5f803560e01c639936d81214610025575f80fd5b346101515760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc818136011261014d5760043567ffffffffffffffff918282116101495760808183360301126101495760243591838311610141573660238401121561014157826004013591848311610145573660248460051b86010111610145576044359485116101455760409085360301126101415760246100d2946004019301906004016105eb565b604051938492151583526020604081850152825192836040860152825b84811061012b57505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100ef565b8580fd5b8680fd5b8480fd5b8280fd5b80fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101a8570180359067ffffffffffffffff82116101a857602001918160051b360383136101a857565b5f80fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81813603018212156101a8570190565b3565ffffffffffff811681036101a85790565b6060810190811067ffffffffffffffff82111761020e57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761020e57604052565b6080810190811067ffffffffffffffff82111761020e57604052565b6020810190811067ffffffffffffffff82111761020e57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761020e57604052565b9015610309578035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1813603018212156101a8570190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b67ffffffffffffffff811161020e5760051b60200190565b359073ffffffffffffffffffffffffffffffffffffffff821682036101a857565b92919267ffffffffffffffff821161020e57604051916103b760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116018461028f565b8294818452818301116101a8578281602093845f960137010152565b9080601f830112156101a8578160206103ee9335910161036f565b90565b90929192608093845261040381610336565b906040906104138251938461028f565b8295818452602060a0948186520192600592831b860195825187116101a85780945b878610610446575050505050505050565b67ffffffffffffffff86358181116101a85783019060608083885103126101a857855192610473846101f2565b61047c8161034e565b84528a518101358381116101a857810187818a5103126101a8578751906104a28261023b565b803560048110156101a85782528c51810135908582116101a8576104c9918b5191016103d3565b8c518201528b5185015286810135908382116101a85701908751601f830112156101a8578135906104f982610336565b936105068951958661028f565b8285528c519384808701948d1b820101948b5186116101a85781015b858110610542575050505050508482015281528651019486510194610435565b80358381116101a8578201948c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08782510301126101a8578f958c519061058882610257565b875181013582528d81013588518301528681013560ff811681036101a857828f0152808f01358681116101a8578f916105c79251918a519101016103d3565b868201528152855101945101610522565b359065ffffffffffff821682036101a857565b9092918015610ff7576001811461065a5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6261642070726f6f66206c656e677468000000000000000000000000000000006044820152fd5b61066481856102d0565b61066e8380610154565b9190506040813603126101a8576040516106878161023b565b813567ffffffffffffffff81116101a8578201906080823603126101a857604051916106b283610257565b803567ffffffffffffffff81116101a857810136601f820112156101a8576106e19036906020813591016103f1565b8352602081013567ffffffffffffffff81116101a85761070490369083016103d3565b60208401526060610717604083016105d8565b916040850192835201359283151584036101a857602065ffffffffffff93826001966060849501528152019401358452511603610f995761075a60ff915161113a565b1603610f3b57600265ffffffffffff61077e604061077887806101ac565b016101df565b1603610edd5761078e8280610154565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810191508111610c8e576001809160ff602087013591161c1603610e7f576107d783806101ac565b6020810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101a8570180359067ffffffffffffffff82116101a85760200181360381136101a85761083391369161036f565b916080813603126101a8576040519061084b82610257565b803567ffffffffffffffff81116101a857810136601f820112156101a85780359061087582610336565b91610883604051938461028f565b80835260208084019160051b830101913683116101a857602001905b828210610e67575050508252602081013567ffffffffffffffff811681036101a8576108e49160609160208501526108d96040820161034e565b6040850152016105d8565b606082015282805181010392608084126101a85760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604051956109288761023b565b6020840151875201126101a85760405190610942826101f2565b60408101519060ff821682036101a857608091835260608101516020840152015160408201526020840152805167ffffffffffffffff6020830151169073ffffffffffffffffffffffffffffffffffffffff60408401511665ffffffffffff606085015116906040519360a08501608060208701528451809152602060c087019501905f5b818110610e3b57505050845f946080948294610a1994604060209a0152606084015285830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261028f565b838151910120865160405190858201928352604082015260408152610a3d816101f2565b5190208387015190604051858101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c8152610a81816101f2565b5190209060ff8151169060408682015191015191604051938452868401526040830152606082015282805260015afa15610e305773ffffffffffffffffffffffffffffffffffffffff5f5116908115610dd257610af373ffffffffffffffffffffffffffffffffffffffff915161112d565b511603610d7457610b37610b2d610b24610b1e610b18610b1e95610b3f9751996102d0565b806101ac565b80610154565b939095806101ac565b94909236916103f1565b9236916103f1565b90600181511480610d69575b80610d41575b80610d19575b15610cbb576020610b856040610b7483610b7c83610b748961112d565b51015161112d565b5101519461112d565b51015190838203918211610c8e5703610c3057610ba360409161112d565b51015180516001101561030957604001516020015103610bd257600190604051610bcc81610273565b5f815290565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f426f62206e6f742061646a757374656420636f72726563746c790000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f416c696365206e6f742061646a757374656420636f72726563746c79000000006044820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f6f6e6c79206e617469766520617373657420616c6c6f776564000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff610d388361112d565b51511615610b57565b5073ffffffffffffffffffffffffffffffffffffffff610d608261112d565b51511615610b51565b506001825114610b4b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e76616c6964207369676e617475726520666f7220766f75636865720000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152fd5b6040513d5f823e3d90fd5b825173ffffffffffffffffffffffffffffffffffffffff168752602096870196909201916001016109c7565b60208091610e748461034e565b81520191019061089f565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f726564656d7074696f6e206e6f74207369676e656420627920426f62000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f6261642063616e646964617465207475726e4e756d3b207c70726f6f667c3d316044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f706f737466756e642021756e616e696d6f75733b207c70726f6f667c3d3100006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6261642070726f6f665b305d2e7475726e4e756d3b207c70726f6f667c3d31006044820152fd5b5090915060ff61101461100d602085013561113a565b9280610154565b92905016036110cf5765ffffffffffff80611034604061077885806101ac565b16156110be5761104b6040610778846001956101ac565b16146110af5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f6261642063616e646964617465207475726e4e756d3b207c70726f6f667c3d306044820152fd5b600190604051610bcc81610273565b5050600190604051610bcc81610273565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f21756e616e696d6f75733b207c70726f6f667c3d3000000000000000000000006044820152fd5b8051156103095760200190565b805f915b611146575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190808211610c8e57169060ff809116908114610c8e57600101908061113e56fea26469706673582212201bcb27b844bea3cf54a921d872a5202e830548ca31a6511e8bb8b1ec193693fc64736f6c63430008140033", } // VirtualPaymentAppABI is the input ABI used to generate the binding from. From 10b0872a1a8a33f1fb35520c3af1cc31e3dab610 Mon Sep 17 00:00:00 2001 From: Max Pushkarov Date: Wed, 3 Jan 2024 17:24:21 +0200 Subject: [PATCH 4/5] fix(nitro-protocol): pin versions where neccessary --- packages/nitro-protocol/contracts/ConsensusApp.sol | 2 +- packages/nitro-protocol/contracts/CountingApp.sol | 2 +- packages/nitro-protocol/contracts/ForceMove.sol | 2 +- packages/nitro-protocol/contracts/InterestBearingApp.sol | 2 +- packages/nitro-protocol/contracts/MultiAssetHolder.sol | 2 +- packages/nitro-protocol/contracts/NitroAdjudicator.sol | 2 +- packages/nitro-protocol/contracts/StatusManager.sol | 2 +- packages/nitro-protocol/contracts/Token.sol | 2 +- packages/nitro-protocol/contracts/TrivialApp.sol | 2 +- packages/nitro-protocol/contracts/VirtualPaymentApp.sol | 2 +- packages/nitro-protocol/contracts/auxiliary/BatchOperator.sol | 2 +- packages/nitro-protocol/contracts/interfaces/IForceMove.sol | 2 +- packages/nitro-protocol/contracts/interfaces/IForceMoveApp.sol | 2 +- .../nitro-protocol/contracts/interfaces/IMultiAssetHolder.sol | 2 +- .../nitro-protocol/contracts/interfaces/INitroAdjudicator.sol | 2 +- packages/nitro-protocol/contracts/interfaces/INitroTypes.sol | 2 +- packages/nitro-protocol/contracts/interfaces/IStatusManager.sol | 2 +- packages/nitro-protocol/contracts/libraries/NitroUtils.sol | 2 +- .../contracts/libraries/signature-logic/Consensus.sol | 2 +- .../contracts/libraries/signature-logic/StrictTurnTaking.sol | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/packages/nitro-protocol/contracts/ConsensusApp.sol b/packages/nitro-protocol/contracts/ConsensusApp.sol index 019f821cb..bdf25b6da 100644 --- a/packages/nitro-protocol/contracts/ConsensusApp.sol +++ b/packages/nitro-protocol/contracts/ConsensusApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {IForceMoveApp} from './interfaces/IForceMoveApp.sol'; import {Consensus} from './libraries/signature-logic/Consensus.sol'; diff --git a/packages/nitro-protocol/contracts/CountingApp.sol b/packages/nitro-protocol/contracts/CountingApp.sol index 21783882b..d2513598e 100644 --- a/packages/nitro-protocol/contracts/CountingApp.sol +++ b/packages/nitro-protocol/contracts/CountingApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; import {StrictTurnTaking} from './libraries/signature-logic/StrictTurnTaking.sol'; diff --git a/packages/nitro-protocol/contracts/ForceMove.sol b/packages/nitro-protocol/contracts/ForceMove.sol index 653758de7..ec1ede044 100644 --- a/packages/nitro-protocol/contracts/ForceMove.sol +++ b/packages/nitro-protocol/contracts/ForceMove.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {NitroUtils} from './libraries/NitroUtils.sol'; import {IForceMove} from './interfaces/IForceMove.sol'; diff --git a/packages/nitro-protocol/contracts/InterestBearingApp.sol b/packages/nitro-protocol/contracts/InterestBearingApp.sol index 3c9b3c9ea..45a58c706 100644 --- a/packages/nitro-protocol/contracts/InterestBearingApp.sol +++ b/packages/nitro-protocol/contracts/InterestBearingApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {IForceMoveApp} from './interfaces/IForceMoveApp.sol'; import {Consensus} from './libraries/signature-logic/Consensus.sol'; diff --git a/packages/nitro-protocol/contracts/MultiAssetHolder.sol b/packages/nitro-protocol/contracts/MultiAssetHolder.sol index 3478add4e..5a5839474 100644 --- a/packages/nitro-protocol/contracts/MultiAssetHolder.sol +++ b/packages/nitro-protocol/contracts/MultiAssetHolder.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol'; diff --git a/packages/nitro-protocol/contracts/NitroAdjudicator.sol b/packages/nitro-protocol/contracts/NitroAdjudicator.sol index 0b32e5256..21fee01fa 100644 --- a/packages/nitro-protocol/contracts/NitroAdjudicator.sol +++ b/packages/nitro-protocol/contracts/NitroAdjudicator.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; import {NitroUtils} from './libraries/NitroUtils.sol'; diff --git a/packages/nitro-protocol/contracts/StatusManager.sol b/packages/nitro-protocol/contracts/StatusManager.sol index 345079500..58c0f6a8b 100644 --- a/packages/nitro-protocol/contracts/StatusManager.sol +++ b/packages/nitro-protocol/contracts/StatusManager.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {IStatusManager} from './interfaces/IStatusManager.sol'; diff --git a/packages/nitro-protocol/contracts/Token.sol b/packages/nitro-protocol/contracts/Token.sol index 03f135b98..9a4c12f12 100644 --- a/packages/nitro-protocol/contracts/Token.sol +++ b/packages/nitro-protocol/contracts/Token.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {ERC20} from '@openzeppelin/contracts/token/ERC20/ERC20.sol'; /** diff --git a/packages/nitro-protocol/contracts/TrivialApp.sol b/packages/nitro-protocol/contracts/TrivialApp.sol index 5ee230b3b..293a73732 100644 --- a/packages/nitro-protocol/contracts/TrivialApp.sol +++ b/packages/nitro-protocol/contracts/TrivialApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {IForceMoveApp} from './interfaces/IForceMoveApp.sol'; diff --git a/packages/nitro-protocol/contracts/VirtualPaymentApp.sol b/packages/nitro-protocol/contracts/VirtualPaymentApp.sol index 4d86ade40..6802e673d 100644 --- a/packages/nitro-protocol/contracts/VirtualPaymentApp.sol +++ b/packages/nitro-protocol/contracts/VirtualPaymentApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {IForceMoveApp} from './interfaces/IForceMoveApp.sol'; import {NitroUtils} from './libraries/NitroUtils.sol'; diff --git a/packages/nitro-protocol/contracts/auxiliary/BatchOperator.sol b/packages/nitro-protocol/contracts/auxiliary/BatchOperator.sol index 8e7b73e41..237da26fd 100644 --- a/packages/nitro-protocol/contracts/auxiliary/BatchOperator.sol +++ b/packages/nitro-protocol/contracts/auxiliary/BatchOperator.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {MultiAssetHolder} from '../MultiAssetHolder.sol'; import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; diff --git a/packages/nitro-protocol/contracts/interfaces/IForceMove.sol b/packages/nitro-protocol/contracts/interfaces/IForceMove.sol index 39f970900..460f81892 100644 --- a/packages/nitro-protocol/contracts/interfaces/IForceMove.sol +++ b/packages/nitro-protocol/contracts/interfaces/IForceMove.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {INitroTypes} from './INitroTypes.sol'; diff --git a/packages/nitro-protocol/contracts/interfaces/IForceMoveApp.sol b/packages/nitro-protocol/contracts/interfaces/IForceMoveApp.sol index 8ea579064..995ee692b 100644 --- a/packages/nitro-protocol/contracts/interfaces/IForceMoveApp.sol +++ b/packages/nitro-protocol/contracts/interfaces/IForceMoveApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {INitroTypes} from './INitroTypes.sol'; diff --git a/packages/nitro-protocol/contracts/interfaces/IMultiAssetHolder.sol b/packages/nitro-protocol/contracts/interfaces/IMultiAssetHolder.sol index 11899ff52..d191ff325 100644 --- a/packages/nitro-protocol/contracts/interfaces/IMultiAssetHolder.sol +++ b/packages/nitro-protocol/contracts/interfaces/IMultiAssetHolder.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; /** * @dev The IMultiAssetHolder interface calls for functions that allow assets to be transferred from one channel to other channel and/or external destinations, as well as for guarantees to be claimed. diff --git a/packages/nitro-protocol/contracts/interfaces/INitroAdjudicator.sol b/packages/nitro-protocol/contracts/interfaces/INitroAdjudicator.sol index e94807c91..92382a676 100644 --- a/packages/nitro-protocol/contracts/interfaces/INitroAdjudicator.sol +++ b/packages/nitro-protocol/contracts/interfaces/INitroAdjudicator.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; import {IMultiAssetHolder} from './IMultiAssetHolder.sol'; diff --git a/packages/nitro-protocol/contracts/interfaces/INitroTypes.sol b/packages/nitro-protocol/contracts/interfaces/INitroTypes.sol index 2df6bc9bb..6d7fd7e34 100644 --- a/packages/nitro-protocol/contracts/interfaces/INitroTypes.sol +++ b/packages/nitro-protocol/contracts/interfaces/INitroTypes.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; diff --git a/packages/nitro-protocol/contracts/interfaces/IStatusManager.sol b/packages/nitro-protocol/contracts/interfaces/IStatusManager.sol index ca1a921a7..cc091e030 100644 --- a/packages/nitro-protocol/contracts/interfaces/IStatusManager.sol +++ b/packages/nitro-protocol/contracts/interfaces/IStatusManager.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; interface IStatusManager { enum ChannelMode { diff --git a/packages/nitro-protocol/contracts/libraries/NitroUtils.sol b/packages/nitro-protocol/contracts/libraries/NitroUtils.sol index ec4f46b39..ecb4ad79a 100644 --- a/packages/nitro-protocol/contracts/libraries/NitroUtils.sol +++ b/packages/nitro-protocol/contracts/libraries/NitroUtils.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {INitroTypes} from '../interfaces/INitroTypes.sol'; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; diff --git a/packages/nitro-protocol/contracts/libraries/signature-logic/Consensus.sol b/packages/nitro-protocol/contracts/libraries/signature-logic/Consensus.sol index eec991b07..ce87d04b5 100644 --- a/packages/nitro-protocol/contracts/libraries/signature-logic/Consensus.sol +++ b/packages/nitro-protocol/contracts/libraries/signature-logic/Consensus.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {NitroUtils} from '../NitroUtils.sol'; import {INitroTypes} from '../../interfaces/INitroTypes.sol'; diff --git a/packages/nitro-protocol/contracts/libraries/signature-logic/StrictTurnTaking.sol b/packages/nitro-protocol/contracts/libraries/signature-logic/StrictTurnTaking.sol index a552457cb..994cbac6e 100644 --- a/packages/nitro-protocol/contracts/libraries/signature-logic/StrictTurnTaking.sol +++ b/packages/nitro-protocol/contracts/libraries/signature-logic/StrictTurnTaking.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.20; +pragma solidity ^0.8.20; import {NitroUtils} from '../NitroUtils.sol'; import {INitroTypes} from '../../interfaces/INitroTypes.sol'; From 6087949f733c47fb6af8f5839406788acf11dfe6 Mon Sep 17 00:00:00 2001 From: Max Pushkarov Date: Wed, 3 Jan 2024 17:38:18 +0200 Subject: [PATCH 5/5] fix(nitro-protocol): unpin versions for App contracts --- node/engine/chainservice/adjudicator/NitroAdjudicator.go | 2 +- node/engine/chainservice/consensusapp/ConsensusApp.go | 2 +- node/engine/chainservice/erc20/Token.go | 2 +- node/engine/chainservice/virtualpaymentapp/VirtualPaymentApp.go | 2 +- packages/nitro-protocol/contracts/ConsensusApp.sol | 2 +- packages/nitro-protocol/contracts/CountingApp.sol | 2 +- packages/nitro-protocol/contracts/InterestBearingApp.sol | 2 +- packages/nitro-protocol/contracts/TrivialApp.sol | 2 +- packages/nitro-protocol/contracts/VirtualPaymentApp.sol | 2 +- packages/nitro-protocol/gas-benchmarks/gasResults.json | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/node/engine/chainservice/adjudicator/NitroAdjudicator.go b/node/engine/chainservice/adjudicator/NitroAdjudicator.go index 753ab5340..e4e93f53f 100644 --- a/node/engine/chainservice/adjudicator/NitroAdjudicator.go +++ b/node/engine/chainservice/adjudicator/NitroAdjudicator.go @@ -94,7 +94,7 @@ type INitroTypesVariablePart struct { // NitroAdjudicatorMetaData contains all meta data concerning the NitroAdjudicator contract. var NitroAdjudicatorMetaData = &bind.MetaData{ ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assetIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialHoldings\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalHoldings\",\"type\":\"uint256\"}],\"name\":\"AllocationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newTurnNumRecord\",\"type\":\"uint48\"}],\"name\":\"ChallengeCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"finalizesAt\",\"type\":\"uint48\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structINitroTypes.SignedVariablePart[]\",\"name\":\"proof\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structINitroTypes.SignedVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"}],\"name\":\"ChallengeRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newTurnNumRecord\",\"type\":\"uint48\"}],\"name\":\"Checkpointed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"finalizesAt\",\"type\":\"uint48\"}],\"name\":\"Concluded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"destinationHoldings\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assetIndex\",\"type\":\"uint256\"}],\"name\":\"Reclaimed\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"channelNonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"appDefinition\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"challengeDuration\",\"type\":\"uint48\"}],\"internalType\":\"structINitroTypes.FixedPart\",\"name\":\"fixedPart\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart[]\",\"name\":\"proof\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature\",\"name\":\"challengerSig\",\"type\":\"tuple\"}],\"name\":\"challenge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"channelNonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"appDefinition\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"challengeDuration\",\"type\":\"uint48\"}],\"internalType\":\"structINitroTypes.FixedPart\",\"name\":\"fixedPart\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart[]\",\"name\":\"proof\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"}],\"name\":\"checkpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"sourceAllocations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"targetAllocations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"indexOfTargetInSource\",\"type\":\"uint256\"}],\"name\":\"compute_reclaim_effects\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"initialHoldings\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"indices\",\"type\":\"uint256[]\"}],\"name\":\"compute_transfer_effects_and_interactions\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"newAllocations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"allocatesOnlyZeros\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"exitAllocations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalPayouts\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"channelNonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"appDefinition\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"challengeDuration\",\"type\":\"uint48\"}],\"internalType\":\"structINitroTypes.FixedPart\",\"name\":\"fixedPart\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"}],\"name\":\"conclude\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"channelNonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"appDefinition\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"challengeDuration\",\"type\":\"uint48\"}],\"internalType\":\"structINitroTypes.FixedPart\",\"name\":\"fixedPart\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"}],\"name\":\"concludeAndTransferAllAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expectedHeld\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"holdings\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"sourceChannelId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sourceStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sourceOutcomeBytes\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"sourceAssetIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"indexOfTargetInSource\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"targetStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"targetOutcomeBytes\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"targetAssetIndex\",\"type\":\"uint256\"}],\"internalType\":\"structIMultiAssetHolder.ReclaimArgs\",\"name\":\"reclaimArgs\",\"type\":\"tuple\"}],\"name\":\"reclaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"channelNonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"appDefinition\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"challengeDuration\",\"type\":\"uint48\"}],\"internalType\":\"structINitroTypes.FixedPart\",\"name\":\"fixedPart\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart[]\",\"name\":\"proof\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structINitroTypes.Signature[]\",\"name\":\"sigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structINitroTypes.SignedVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"}],\"name\":\"stateIsSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"statusOf\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"fromChannelId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"outcomeBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"indices\",\"type\":\"uint256[]\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"transferAllAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"}],\"name\":\"unpackStatus\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"turnNumRecord\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"finalizesAt\",\"type\":\"uint48\"},{\"internalType\":\"uint160\",\"name\":\"fingerprint\",\"type\":\"uint160\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6080806040523461001657613cb6908161001b8239f35b5f80fdfe6080604052600480361015610012575f80fd5b5f3560e01c90816311e9f178146118d0578163166e56cd1461187f5781632fb1d270146115725781633033730e1461131957816331afa0b414611050578163552cfa5014610fcc578163566d54c614610f615781635685b7dc14610cd05781636d2a9c9214610b945781638286a060146107e5578163c7df14e2146107be578163d3c4e738146104bf578163ec346235146100d3575063ee049b50146100b6575f80fd5b346100cf576100cd6100c7366120cd565b906123da565b005b5f80fd5b346100cf576100ed906100e5366120cd565b8093916123da565b915151906100fa8361383a565b61010382613c63565b61013d845f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b9391505060405192602093848101935f855260408201526040815261016181611962565b73ffffffffffffffffffffffffffffffffffffffff809481925190201691160361047c5750600191835191601f196101b161019b85611a3e565b946101a96040519687611a1b565b808652611a3e565b01825f5b82811061043f575050506101c98551613918565b6101d38651613918565b905f5b87518110156102b4576101e981896125d5565b5188604082015191610245876101ff86856125d5565b51511693845f5260018a528d60405f20905f528a5260405f205461022387896125d5565b5261022e86886125d5565b51906040519161023d836119ff565b5f8352612f01565b909491156102ac575b91604061026f8880989796948e966102696102a79c8f6125d5565b526125d5565b51015201516040519261028184611962565b835288830152604082015261029682896125d5565b526102a181886125d5565b5061255e565b6101d6565b5f9c5061024e565b5091909587945f5b82518110156103755780877fc36da2054c5669d6dac211b7366d59f2d369151c21edf4940468614b449e0b9a8b61030484896102fb610370988b6125d5565b515116926125d5565b51815f5260018b5260405f20845f528b5261032460405f20918254612ef4565b9055610330848a6125d5565b51905f5260018a5260405f20835f528a5260405f20549061036860405192839287846040919493926060820195825260208201520152565b0390a261255e565b6102bc565b5085858389156103b857505f918252525f60408120555b5f5b81518110156100cd57806103ae6103a86103b393856125d5565b516135eb565b61255e565b61038e565b906104316103c65f93613c63565b610400855f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b50919060405192610410846119ab565b65ffffffffffff8092168452168483015284604083015260608201526139ab565b9282525260405f205561038c565b60405161044b81611962565b5f815260405161045a816119c7565b5f815260609081858201528483015260408201528282880101520183906101b5565b606490836040519162461bcd60e51b8352820152601560248201527f696e636f72726563742066696e6765727072696e7400000000000000000000006044820152fd5b346100cf5760206003199080823601126100cf5782359167ffffffffffffffff938484116100cf57610100809285360301126100cf576040519182018281108682111761079257604052838101358252828201906024850135825260448501358681116100cf5761053590823691880101611a80565b906040840191825260608401956064810135875260808501906084810135825260a086019860a48201358a5260c48201359081116100cf5761057e60e491853691850101611a80565b918260c089015201359860e08701938a85526105b9885196516105b48c51986105a68161383a565b8a518351848f01209061378d565b612be9565b80966105c485612be9565b9c73ffffffffffffffffffffffffffffffffffffffff91600260ff6040610608816105fd86896105f4828d6125d5565b5151169a6125d5565b5101518c51906125d5565b510151160361074f578e969594939291610635604061062a61063d948e6125d5565b5101518a51906125d5565b5151976125d5565b5151160361070c57506106ad8a9b60406106a27f4d3754632451ebba9812a9305e7bca17b67a17186a5cff93d2e9ae1b01e3d27b9d61069b888f6106b89b996107009f9e9d9b9961068e889b61383a565b519181519101209061378d565b51896125d5565b5101519451906125d5565b5101519051916132b3565b9184519260406106c98a51856125d5565b51015251906040516106f7816106e9898201948a86526040830190613186565b03601f198101835282611a1b565b51902091613899565b519251604051908152a2005b6064908a6040519162461bcd60e51b8352820152601d60248201527f746172676574417373657420213d2067756172616e74656541737365740000006044820152fd5b6064858e6040519162461bcd60e51b8352820152601a60248201527f6e6f7420612067756172616e74656520616c6c6f636174696f6e0000000000006044820152fd5b6041827f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b346100cf5760206003193601126100cf57355f525f602052602060405f2054604051908152f35b346100cf5760c06003193601126100cf5767ffffffffffffffff9080358281116100cf576108169036908301611e3e565b906024358381116100cf5761082e90369083016120af565b926044359081116100cf576108469036908301611f06565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c3601126100cf5760405161087c81611962565b60643560ff811681036100cf578152608435602082015260a43560408201526108a484613b3b565b9365ffffffffffff60408451015116936108bd86613949565b6108c681612111565b610b635765ffffffffffff61090b875f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b5050168510610b1f575b610929610923858985612739565b90612148565b610996610937855184613bec565b936109918451916040516020810190888252604080820152600960608201527f666f7263654d6f76650000000000000000000000000000000000000000000000608082015260808152610989816119e3565b519020613a5f565b6125e9565b15610adb57506109ba65ffffffffffff60608301511665ffffffffffff4216612178565b956040519665ffffffffffff60608901911688526060602089015281518091526080880190602060808260051b8b01019301915f905b828210610a925750505050610a5565ffffffffffff60608194897f0aa12461ee6c137332989aa12cec79f4772ab2c1a8732a382aada7e9f3ec9d348c80610a47610a829e9f99610a5d9a810360408401528d61236b565b0390a2015116834216612178565b935151613c63565b9260405194610a6b866119ab565b8552166020840152604083015260608201526139ab565b905f525f60205260405f20555f80f35b90919293602080610acd837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808f60019603018652885161236b565b9601920192019092916109f0565b60649060206040519162461bcd60e51b8352820152601f60248201527f4368616c6c656e676572206973206e6f742061207061727469636970616e74006044820152fd5b60649060206040519162461bcd60e51b8352820152601860248201527f7475726e4e756d5265636f7264206465637265617365642e00000000000000006044820152fd5b6001610b6e87613949565b610b7781612111565b03610b8b57610b868587612a2c565b610915565b610b8686612ac0565b346100cf5760606003193601126100cf5767ffffffffffffffff81358181116100cf57610bc49036908401611e3e565b906024358181116100cf57610bdc90369085016120af565b926044359182116100cf57610bfa61092391610c2b93369101611f06565b610c0384613b3b565b9465ffffffffffff6040835101511694610c1c87612ac0565b610c268688612a2c565b612739565b610c3482613949565b610c5d604051610c43816119ab565b8381525f60208201525f60408201525f60608201526139ab565b835f525f60205260405f2055610c7281612111565b610ca35760207ff3f2d5574c50e581f1a2371fac7dee87f7c6d599a496765fbfa2547ce7fd5f1a91604051908152a2005b60207f07da0a0674fb921e484018c8b81d80e292745e5d8ed134b580c8b9c631c5e9e091604051908152a2005b346100cf576003196060813601126100cf5781359067ffffffffffffffff928383116100cf57828101833603946080848701126100cf57602435948186116100cf57366023870112156100cf5785840135958287116100cf573660248860051b830101116100cf57604435928084116100cf5760408785360301126100cf57604483019081359873ffffffffffffffffffffffffffffffffffffffff93848b16809b036100cf57610dbb91610d97610d9d92610d8c368c611e3e565b92602436920161203f565b9061289a565b95610db5610dab368a611e3e565b9136908b01611f06565b90612912565b966040519a7f9936d812000000000000000000000000000000000000000000000000000000008c526060828d01527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd60e48d01983591018112156100cf5785016024810197910135908282116100cf578160051b360388136100cf57608060648d01528190528a9897966101048a019695949392915f5b818110610f2d5750505094610ec69465ffffffffffff610ea26064878d9b975f9f9d99610eb7988e6084819f610e8d6024610e969601611e16565b16910152611ce1565b1660a48c015201611e2b565b1660c4880152848783030160248801526126e5565b918483030160448501526126c5565b03915afa908115610f22575f905f92610efd575b50610ef960405192839215158352604060208401526040830190611c15565b0390f35b9050610f1b91503d805f833e610f138183611a1b565b81019061267f565b9082610eda565b6040513d5f823e3d90fd5b9198999a5091929394959660019086610f458b611ce1565b168152602080910199019101918c9a9998979695949392610e52565b346100cf5760606003193601126100cf5767ffffffffffffffff9080358281116100cf57610f929036908301611ac6565b6024359283116100cf57610faf610fb892610ef994369101611ac6565b604435916132b3565b604051918291602083526020830190611c3a565b346100cf5760206003193601126100cf5773ffffffffffffffffffffffffffffffffffffffff61102f606092355f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b9092916040519365ffffffffffff8092168552166020840152166040820152f35b346100cf576060806003193601126100cf5760243567ffffffffffffffff81116100cf576110819036908401611d02565b9061108c833561383a565b6110a361109883613c63565b84359060443561378d565b600191805191601f196110b861019b85611a3e565b01905f5b8281106112dc575050506110d08151613918565b6110da8251613918565b915f5b81518110156111b6576110f081836125d5565b5160408101519061114a73ffffffffffffffffffffffffffffffffffffffff61111985876125d5565b51511692835f52600160205260405f208b355f5260205260405f205461113f86896125d5565b5261022e85886125d5565b90939291156111ae575b91602091869594936111696111a9988c6125d5565b526040611176878a6125d5565b51015201516040519261118884611962565b83526020830152604082015261119e82886125d5565b526102a181876125d5565b6110dd565b5f9a50611154565b509091925f5b8251811015611286578073ffffffffffffffffffffffffffffffffffffffff6111e861128193866125d5565b5151166111f582886125d5565b51815f526020906001825260405f208b355f52825261121960405f20918254612ef4565b905561122583886125d5565b51915f526001815260405f20908a355f52527fc36da2054c5669d6dac211b7366d59f2d369151c21edf4940468614b449e0b9a61036860405f20546040519182918d359587846040919493926060820195825260208201520152565b6111bc565b50858286156112bf5750355f525f6020525f60408120555b5f5b81518110156100cd57806103ae6103a86112ba93856125d5565b6112a0565b906112cc6112d792613c63565b906044359035613899565b61129e565b6020906040516112eb81611962565b5f81526040516112fa816119c7565b5f815283908582820152818301528460408301528288010152016110bc565b346100cf5760a06003193601126100cf5767ffffffffffffffff9080359060446024803582358681116100cf576113539036908601611a80565b946064968735906084359081116100cf576113719036908801611b96565b925f5b600181018082116115475785518110156113f35761139d61139583886125d5565b5191876125d5565b5111156113b2576113ad9061255e565b611374565b89887f496e6469636573206d75737420626520736f72746564000000000000000000008960168a60206040519562461bcd60e51b8752860152840152820152fd5b5050876115226100cd95946114078461383a565b836114208451946105b46020978897888401208a61378d565b907fc36da2054c5669d6dac211b7366d59f2d369151c21edf4940468614b449e0b9a73ffffffffffffffffffffffffffffffffffffffff988961146386866125d5565b515116805f526001885260405f20845f5288526114f161149760405f205493604061148e8a8a6125d5565b51015185612f01565b909d929150845f5260018c5260405f20885f528c526114bb60405f20918254612ef4565b905560406114c98a8a6125d5565b5101526040518a8101908b82526114e7816106e9604082018c613186565b5190209086613899565b5f908152600188526040808220858352895290819020548151878152602081019390935290820152606090a26125d5565b5193845116930151906040519361153885611962565b845283015260408201526135eb565b8660118a7f4e487b71000000000000000000000000000000000000000000000000000000005f52525ffd5b60806003193601126100cf57611586611cbe565b6024918235916064918235948460a01c1561183d5773ffffffffffffffffffffffffffffffffffffffff831693845f526020926001845260405f20875f52845260405f20549260443584036117fe578661169c5788340361165d575050507f87d4c0b5e30d6808bc8a94ba1c4d839b29d664151551a31753387ee9ef48429b949561161091612b1f565b925f526001815260405f2090855f52528160405f2055611658604051928392836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b0390a2005b601f90856040519362461bcd60e51b85528401528201527f496e636f7272656374206d73672e76616c756520666f72206465706f736974006044820152fd5b6117336040939293515f808883017f23b872dd00000000000000000000000000000000000000000000000000000000815233868501523060448501528d878501528684526116e9846119e3565b604051936116f6856119c7565b8a85527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648b8601525190828d5af161172c612b2c565b908a612b5b565b80518681159182156117df575b5050905015611778575050507f87d4c0b5e30d6808bc8a94ba1c4d839b29d664151551a31753387ee9ef48429b949561161091612b1f565b60849291602a7f6f7420737563636565640000000000000000000000000000000000000000000092876040519562461bcd60e51b87528601528401527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044840152820152fd5b83809293500103126100cf57856117f6910161263b565b80868c611740565b601490856040519362461bcd60e51b85528401528201527f68656c6420213d20657870656374656448656c640000000000000000000000006044820152fd5b601f91925060206040519362461bcd60e51b85528401528201527f4465706f73697420746f2065787465726e616c2064657374696e6174696f6e006044820152fd5b346100cf5760406003193601126100cf5773ffffffffffffffffffffffffffffffffffffffff6118ad611cbe565b165f52600160205260405f206024355f52602052602060405f2054604051908152f35b346100cf5760606003193601126100cf5767ffffffffffffffff6024358181116100cf576119019036908401611ac6565b906044359081116100cf57611943926119589261192461192b9336908401611b96565b9135612f01565b92939190604051958695608087526080870190611c3a565b91151560208601528482036040860152611c3a565b9060608301520390f35b6060810190811067ffffffffffffffff82111761197e57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761197e57604052565b6040810190811067ffffffffffffffff82111761197e57604052565b60a0810190811067ffffffffffffffff82111761197e57604052565b6020810190811067ffffffffffffffff82111761197e57604052565b90601f601f19910116810190811067ffffffffffffffff82111761197e57604052565b67ffffffffffffffff811161197e5760051b60200190565b359060ff821682036100cf57565b67ffffffffffffffff811161197e57601f01601f191660200190565b81601f820112156100cf57803590611a9782611a64565b92611aa56040519485611a1b565b828452602083830101116100cf57815f926020809301838601378301015290565b9080601f830112156100cf578135611add81611a3e565b92604091611aed83519586611a1b565b808552602093848087019260051b840101938185116100cf57858401925b858410611b1c575050505050505090565b67ffffffffffffffff84358181116100cf57860191608080601f1985880301126100cf57845190611b4c826119ab565b8a8501358252858501358b830152606090611b68828701611a56565b878401528501359384116100cf57611b87878c80979681970101611a80565b90820152815201930192611b0b565b81601f820112156100cf57803591611bad83611a3e565b92611bbb6040519485611a1b565b808452602092838086019260051b8201019283116100cf578301905b828210611be5575050505090565b81358152908301908301611bd7565b5f5b838110611c055750505f910152565b8181015183820152602001611bf6565b90601f19601f602093611c3381518092818752878088019101611bf4565b0116010190565b908082519081815260208091019281808460051b8301019501935f915b848310611c675750505050505090565b9091929394958480611cae83601f1986600196030187528a51805182528381015184830152604060ff81830151169083015260608091015191608080928201520190611c15565b9801930193019194939290611c57565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100cf57565b359073ffffffffffffffffffffffffffffffffffffffff821682036100cf57565b9080601f830112156100cf578135611d1981611a3e565b92604091611d2983519586611a1b565b808552602093848087019260051b840101938185116100cf57858401925b858410611d58575050505050505090565b67ffffffffffffffff84358181116100cf578601916060601f1990808286890301126100cf57855191611d8a83611962565b611d958c8701611ce1565b8352868601358581116100cf578790870191828a0301126100cf57865190611dbc826119c7565b8c81013560048110156100cf578252878101358681116100cf578d8a91611de4930101611a80565b8c8201528b8301528401359283116100cf57611e07868b80969581960101611ac6565b85820152815201930192611d47565b359067ffffffffffffffff821682036100cf57565b359065ffffffffffff821682036100cf57565b9190916080818403126100cf5760405190611e58826119ab565b8193813567ffffffffffffffff81116100cf5782019080601f830112156100cf57813590611e8582611a3e565b91611e936040519384611a1b565b808352602093848085019260051b8201019283116100cf578401905b828210611eef57505050606092611eea9284928652611ecf818301611e16565b90860152611edf60408201611ce1565b604086015201611e2b565b910152565b848091611efb84611ce1565b815201910190611eaf565b919060409283818303126100cf578351611f1f816119c7565b809482359067ffffffffffffffff918281116100cf578401916080838703126100cf57815194611f4e866119ab565b83358281116100cf5787611f63918601611d02565b8652602095868501358381116100cf5788611f7f918701611a80565b87820152611f8e848601611e2b565b8482015260608095013580151581036100cf57858201528552858101359182116100cf57019085601f830112156100cf57813590611fcb82611a3e565b96611fd882519889611a1b565b8288528685818a019402850101938185116100cf578701925b848410612002575050505050500152565b85848303126100cf57878691845161201981611962565b61202287611a56565b815282870135838201528587013586820152815201930192611ff1565b9291909261204c84611a3e565b9161205a6040519384611a1b565b829480845260208094019060051b8301928284116100cf5780915b84831061208457505050505050565b823567ffffffffffffffff81116100cf5786916120a48684938601611f06565b815201920191612075565b9080601f830112156100cf578160206120ca9335910161203f565b90565b9060406003198301126100cf5767ffffffffffffffff6004358181116100cf57836120fa91600401611e3e565b926024359182116100cf576120ca91600401611f06565b6003111561211b57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b156121505750565b6121749060405191829162461bcd60e51b8352602060048401526024830190611c15565b0390fd5b91909165ffffffffffff8080941691160191821161219257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b906080810182519060808352815180915260a0830190602060a08260051b8601019301915f905b8282106122275750505050606061220a819260208601518582036020870152611c15565b9365ffffffffffff60408201511660408501520151151591015290565b909192937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60868203018252845173ffffffffffffffffffffffffffffffffffffffff8151168252602081015160606020840152805160048082101561233f575060206040926122a7926060870152015182608086015260a0850190611c15565b910151916040818303910152815180825260208201906020808260051b8501019401925f5b8281106122ec5750505050506020806001929601920192019092916121e6565b909192939460208061233283601f198760019603018952608060608b5180518452858101518685015260ff60408201511660408501520151918160608201520190611c15565b97019501939291016122cc565b6021907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b805190612380604092838552838501906121bf565b9060208091015193818184039101528080855193848152019401925f905b8382106123ad57505050505090565b8451805160ff1687528084015187850152810151868201526060909501949382019360019091019061239e565b91906123e583613b3b565b926123ef84612ac0565b6060825101511561251a5760206124068383612912565b015190815f925b6124d7575060ff905151911603612493577f4f465027a3d06ea73dd12be0f5c5fc0a34e21f19d6eaed4834a7a944edabc9016020849261247f61245a65ffffffffffff4216925151613c63565b60405190612467826119ab565b5f825283858301525f604083015260608201526139ab565b845f525f835260405f2055604051908152a2565b606460405162461bcd60e51b815260206004820152600a60248201527f21756e616e696d6f7573000000000000000000000000000000000000000000006044820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019080821161219257169160ff80911690811461219257600101918061240d565b606460405162461bcd60e51b815260206004820152601360248201527f5374617465206d7573742062652066696e616c000000000000000000000000006044820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146121925760010190565b8051156125985760200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8051600110156125985760400190565b80518210156125985760209160051b010190565b5f5b82518110156126345773ffffffffffffffffffffffffffffffffffffffff8061261483866125d5565b51169083161461262c576126279061255e565b6125eb565b505050600190565b5050505f90565b519081151582036100cf57565b9092919261265581611a64565b916126636040519384611a1b565b8294828452828201116100cf57602061267d930190611bf4565b565b91906040838203126100cf576126948361263b565b9260208101519067ffffffffffffffff82116100cf57019080601f830112156100cf5781516120ca92602001612648565b906020806126dc84516040855260408501906121bf565b93015191015290565b90815180825260208092019182818360051b82019501935f915b84831061270f5750505050505090565b909192939495848061272983856001950387528a516126c5565b98019301930191949392906126ff565b9291604084019173ffffffffffffffffffffffffffffffffffffffff9161276e61276784865116938861289a565b9187612912565b6040519687947f9936d8120000000000000000000000000000000000000000000000000000000086526060600487015260e486019682516080606489015280518099526101048801986020809201905f5b818110612848575050505f9865ffffffffffff6060868b99968a999667ffffffffffffffff610eb7976128169b01511660848c0152511660a48a015201511660c487015260031993848783030160248801526126e5565b03915afa918215610f22575f90819361282e57509190565b906128449293503d8091833e610f138183611a1b565b9091565b825186168c529a83019a8d9a50918301916001016127bf565b6040519061286e826119c7565b5f60208360405161287e816119ab565b6060815260608382015283604082015283606082015281520152565b815191601f196128ac61019b85611a3e565b015f5b8181106128fb5750505f5b81518110156128f557806128db6128d46128f093856125d5565b5185612912565b6128e582876125d5565b526102a181866125d5565b6128ba565b50505090565b602090612906612861565b828288010152016128af565b919061291c612861565b508051906040519161292d836119c7565b8252602092838301925f9283855283955b808201805151881015612a205761296e9061296789612960869896518d613bec565b92516125d5565b5190613a5f565b92859473ffffffffffffffffffffffffffffffffffffffff809516955b8a518051821015612a10576129a18288926125d5565b511687146129b7576129b29061255e565b61298b565b929891955093509060ff81116129e3579060016129d9921b875117875261255e565b959291909261293e565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b505093509350956129d99061255e565b50505093509350505090565b612a66905f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b505065ffffffffffff80911691161115612a7c57565b606460405162461bcd60e51b815260206004820152601c60248201527f7475726e4e756d5265636f7264206e6f7420696e637265617365642e000000006044820152fd5b612acb600291613949565b612ad481612111565b14612adb57565b606460405162461bcd60e51b815260206004820152601260248201527f4368616e6e656c2066696e616c697a65642e00000000000000000000000000006044820152fd5b9190820180921161219257565b3d15612b56573d90612b3d82611a64565b91612b4b6040519384611a1b565b82523d5f602084013e565b606090565b91929015612bbc5750815115612b6f575090565b3b15612b785790565b606460405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156121505750805190602001fd5b9080601f830112156100cf5781516120ca92602001612648565b805181016020828203126100cf57602082015167ffffffffffffffff81116100cf5760208201603f8285010112156100cf576020818401015190612c2c82611a3e565b93612c3a6040519586611a1b565b82855260208501916020850160408560051b8385010101116100cf57604081830101925b60408560051b83850101018410612c785750505050505090565b835167ffffffffffffffff81116100cf5782840101601f1990606082828a0301126100cf5760405191612caa83611962565b604082015173ffffffffffffffffffffffffffffffffffffffff811681036100cf578352606082015167ffffffffffffffff81116100cf57604090830191828b0301126100cf5760405190612cfe826119c7565b604081015160048110156100cf57825260608101519067ffffffffffffffff82116100cf576040612d359260208d01920101612bcf565b60208201526020830152608081015167ffffffffffffffff81116100cf5760208901605f8284010112156100cf576040818301015190612d7482611a3e565b92612d826040519485611a1b565b828452602084019060208c0160608560051b8584010101116100cf57606083820101915b60608560051b85840101018310612dcf5750505050506040820152815260209384019301612c5e565b825167ffffffffffffffff81116100cf57608083860182018f037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001126100cf5760405191612e1d836119ab565b8386018201606081015184526080810151602085015260a0015160ff811681036100cf57604084015260c0828786010101519267ffffffffffffffff84116100cf578f602094936060869586612e7a9401928b8a01010101612bcf565b6060820152815201920191612da6565b90612e9482611a3e565b604090612ea382519182611a1b565b838152601f19612eb38295611a3e565b01915f91825b848110612ec7575050505050565b6020908351612ed5816119ab565b8581528286818301528686830152606080830152828501015201612eb9565b9190820391821161219257565b91929083518015155f1461317b57612f1890612e8a565b915f91612f258151612e8a565b9560019081809793895f9586935b612f41575b50505050505050565b90919293949597835185101561317257612f5b85856125d5565b5151612f6786856125d5565b515260409060ff8083612f7a89896125d5565b5101511683612f8989886125d5565b510152606080612f9989896125d5565b51015181612fa78a896125d5565b51015260209384612fb88a8a6125d5565b5101518681111561316c575085965b8d8b51908b8215928315613142575b5050505f146131115750600283828f612fef908c6125d5565b51015116146130ce578f96959493868f918f61308c906130929461309e988f988f908f916130989a898f946130678f8692886130428361303c8884613034848e6125d5565b510151612ef4565b936125d5565b51015261304f81876125d5565b5151988561305d83896125d5565b51015116956125d5565b51015194825196613077886119ab565b875286015284015282015261026983836125d5565b50612b1f565b9c61255e565b956125d5565b5101516130c6575b6130b9916130b391612ef4565b9361255e565b91909493928a9085612f33565b5f9a506130a6565b84606491519062461bcd60e51b82526004820152601b60248201527f63616e6e6f74207472616e7366657220612067756172616e74656500000000006044820152fd5b905061309e92508891508461312c83959e989796958a6125d5565b5101518461313a84846125d5565b5101526125d5565b821092509082613157575b50508e8b5f612fd6565b6131639192508d6125d5565b51148a8f61314d565b96612fc7565b97829150612f38565b50612f188151612e8a565b90815180825260208092019182818360051b82019501935f915b8483106131b05750505050505090565b9091929394958181038352865173ffffffffffffffffffffffffffffffffffffffff815116825285810151906060918288850152805160048082101561233f575091886132169285948796839801520151604092839182608088015260a0870190611c15565b91015193828183039101528351908181528581019286808460051b8401019601945f915b84831061325d5750505050505050908060019298019301930191949392906131a0565b919395978061329f89601f1987600196989a9c03018b526080878d5180518452858101518685015260ff89820151168985015201519181898201520190611c15565b99019701930190918b97969593949261323a565b80517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908111612192576132e890612e8a565b916132f384836125d5565b51606081015192604094855191613309836119c7565b5f958684528660208095015287818051810103126135e7578780519161332e836119c7565b85810151835201519084810191825287998890899c8a988b5b87518d10156134b0578f848e146134a1578c8f8f906133b4858f8f908f61336e87826125d5565b5151958261337c89846125d5565b51015160606133928a60ff8561305d83896125d5565b510151938251986133a28a6119ab565b895288015286015260608501526125d5565b526133bf848d6125d5565b508715908161348b575b50613451575b50158061343c575b6133ee575b6130926133e89161255e565b9b613347565b9e5098613431908f61341c8b6134128f61340883916125c5565b510151938d6125d5565b5101918251612b1f565b9052896134288d6125c5565b51015190612b1f565b60019e9099906133dc565b506134478d896125d5565b51518751146133d7565b829c919650613428818c61347a8f6134126134819882613471819961258b565b510151946125d5565b905261258b565b996001948c6133cf565b61349691508b6125d5565b51518851148f6133c9565b509b9d506133e860019e61255e565b509899509c969a995050939992505050156135a45715613561571561351e57830151036134dc57505090565b60649250519062461bcd60e51b825280600483015260248201527f746f74616c5265636c61696d6564213d67756172616e7465652e616d6f756e746044820152fd5b60648484519062461bcd60e51b82526004820152601460248201527f636f756c64206e6f742066696e642072696768740000000000000000000000006044820152fd5b60648585519062461bcd60e51b82526004820152601360248201527f636f756c64206e6f742066696e64206c656674000000000000000000000000006044820152fd5b60648686519062461bcd60e51b82526004820152601560248201527f636f756c64206e6f742066696e642074617267657400000000000000000000006044820152fd5b8680fd5b73ffffffffffffffffffffffffffffffffffffffff9081815116915f5b6040808401908151918251841015612f3857846136268580956125d5565b5151916136376020958692516125d5565b510151918060a01c155f146137635716876136b5575f80809381935af161365c612b2c565b501561367257505061366d9061255e565b613608565b60649250519062461bcd60e51b82526004820152601660248201527f436f756c64206e6f74207472616e7366657220455448000000000000000000006044820152fd5b82517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152602481019190915292919081846044815f8b5af190811561375a5750613724575b5061366d915061255e565b82813d8311613753575b6137388183611a1b565b810103126100cf5761374c61366d9261263b565b505f613719565b503d61372e565b513d5f823e3d90fd5b5f898152600186528481209181529452509120805461366d939261378691612b1f565b905561255e565b916137c8905f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b939150506137ec73ffffffffffffffffffffffffffffffffffffffff928392613a25565b169116036137f657565b606460405162461bcd60e51b815260206004820152601560248201527f696e636f72726563742066696e6765727072696e7400000000000000000000006044820152fd5b613845600291613949565b61384e81612111565b0361385557565b606460405162461bcd60e51b815260206004820152601660248201527f4368616e6e656c206e6f742066696e616c697a65642e000000000000000000006044820152fd5b919061390a916138d9845f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b509290604051936138e9856119ab565b65ffffffffffff8092168552166020840152604083015260608201526139ab565b905f525f60205260405f2055565b9061392282611a3e565b61392f6040519182611a1b565b828152601f1961393f8294611a3e565b0190602036910137565b61398a65ffffffffffff915f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b5090501680155f1461399b57505f90565b42106139a657600290565b600190565b73ffffffffffffffffffffffffffffffffffffffff613a207fffffffffffff0000000000000000000000000000000000000000000000000000835160d01b1679ffffffffffff0000000000000000000000000000000000000000602085015160a01b1617926060604082015191015190613a25565b161790565b73ffffffffffffffffffffffffffffffffffffffff916040519060208201928352604082015260408152613a5881611962565b5190201690565b905f60806020926040948551858101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c8152613aa481611962565b5190209060ff8151169086868201519101519187519384528684015286830152606082015282805260015afa1561375a575f519073ffffffffffffffffffffffffffffffffffffffff821615613af8575090565b6064905162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152fd5b80519060209167ffffffffffffffff838301511673ffffffffffffffffffffffffffffffffffffffff9165ffffffffffff606084604087015116950151166040519485938785019760a086019060808a5285518092528060c088019601975f905b838210613bcf5750505050613bc9955060408501526060840152608083015203601f198101835282611a1b565b51902090565b895181168852988201988a98509682019660019190910190613b9c565b613bc9613bfb613c3992613b3b565b926020810151815191606065ffffffffffff6040830151169101511515613c4c60405196879460208601998a5260a0604087015260c0860190611c15565b601f199586868303016060870152613186565b91608084015260a083015203908101835282611a1b565b604051613bc9816106e9602082019460208652604083019061318656fea2646970667358221220e597ecc41e3e9935d3fffc69130803a4b49ff086ddb901c6e368016e7e91007564736f6c63430008140033", + Bin: "0x6080806040523461001657613cb6908161001b8239f35b5f80fdfe6080604052600480361015610012575f80fd5b5f3560e01c90816311e9f178146118d0578163166e56cd1461187f5781632fb1d270146115725781633033730e1461131957816331afa0b414611050578163552cfa5014610fcc578163566d54c614610f615781635685b7dc14610cd05781636d2a9c9214610b945781638286a060146107e5578163c7df14e2146107be578163d3c4e738146104bf578163ec346235146100d3575063ee049b50146100b6575f80fd5b346100cf576100cd6100c7366120cd565b906123da565b005b5f80fd5b346100cf576100ed906100e5366120cd565b8093916123da565b915151906100fa8361383a565b61010382613c63565b61013d845f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b9391505060405192602093848101935f855260408201526040815261016181611962565b73ffffffffffffffffffffffffffffffffffffffff809481925190201691160361047c5750600191835191601f196101b161019b85611a3e565b946101a96040519687611a1b565b808652611a3e565b01825f5b82811061043f575050506101c98551613918565b6101d38651613918565b905f5b87518110156102b4576101e981896125d5565b5188604082015191610245876101ff86856125d5565b51511693845f5260018a528d60405f20905f528a5260405f205461022387896125d5565b5261022e86886125d5565b51906040519161023d836119ff565b5f8352612f01565b909491156102ac575b91604061026f8880989796948e966102696102a79c8f6125d5565b526125d5565b51015201516040519261028184611962565b835288830152604082015261029682896125d5565b526102a181886125d5565b5061255e565b6101d6565b5f9c5061024e565b5091909587945f5b82518110156103755780877fc36da2054c5669d6dac211b7366d59f2d369151c21edf4940468614b449e0b9a8b61030484896102fb610370988b6125d5565b515116926125d5565b51815f5260018b5260405f20845f528b5261032460405f20918254612ef4565b9055610330848a6125d5565b51905f5260018a5260405f20835f528a5260405f20549061036860405192839287846040919493926060820195825260208201520152565b0390a261255e565b6102bc565b5085858389156103b857505f918252525f60408120555b5f5b81518110156100cd57806103ae6103a86103b393856125d5565b516135eb565b61255e565b61038e565b906104316103c65f93613c63565b610400855f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b50919060405192610410846119ab565b65ffffffffffff8092168452168483015284604083015260608201526139ab565b9282525260405f205561038c565b60405161044b81611962565b5f815260405161045a816119c7565b5f815260609081858201528483015260408201528282880101520183906101b5565b606490836040519162461bcd60e51b8352820152601560248201527f696e636f72726563742066696e6765727072696e7400000000000000000000006044820152fd5b346100cf5760206003199080823601126100cf5782359167ffffffffffffffff938484116100cf57610100809285360301126100cf576040519182018281108682111761079257604052838101358252828201906024850135825260448501358681116100cf5761053590823691880101611a80565b906040840191825260608401956064810135875260808501906084810135825260a086019860a48201358a5260c48201359081116100cf5761057e60e491853691850101611a80565b918260c089015201359860e08701938a85526105b9885196516105b48c51986105a68161383a565b8a518351848f01209061378d565b612be9565b80966105c485612be9565b9c73ffffffffffffffffffffffffffffffffffffffff91600260ff6040610608816105fd86896105f4828d6125d5565b5151169a6125d5565b5101518c51906125d5565b510151160361074f578e969594939291610635604061062a61063d948e6125d5565b5101518a51906125d5565b5151976125d5565b5151160361070c57506106ad8a9b60406106a27f4d3754632451ebba9812a9305e7bca17b67a17186a5cff93d2e9ae1b01e3d27b9d61069b888f6106b89b996107009f9e9d9b9961068e889b61383a565b519181519101209061378d565b51896125d5565b5101519451906125d5565b5101519051916132b3565b9184519260406106c98a51856125d5565b51015251906040516106f7816106e9898201948a86526040830190613186565b03601f198101835282611a1b565b51902091613899565b519251604051908152a2005b6064908a6040519162461bcd60e51b8352820152601d60248201527f746172676574417373657420213d2067756172616e74656541737365740000006044820152fd5b6064858e6040519162461bcd60e51b8352820152601a60248201527f6e6f7420612067756172616e74656520616c6c6f636174696f6e0000000000006044820152fd5b6041827f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b346100cf5760206003193601126100cf57355f525f602052602060405f2054604051908152f35b346100cf5760c06003193601126100cf5767ffffffffffffffff9080358281116100cf576108169036908301611e3e565b906024358381116100cf5761082e90369083016120af565b926044359081116100cf576108469036908301611f06565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c3601126100cf5760405161087c81611962565b60643560ff811681036100cf578152608435602082015260a43560408201526108a484613b3b565b9365ffffffffffff60408451015116936108bd86613949565b6108c681612111565b610b635765ffffffffffff61090b875f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b5050168510610b1f575b610929610923858985612739565b90612148565b610996610937855184613bec565b936109918451916040516020810190888252604080820152600960608201527f666f7263654d6f76650000000000000000000000000000000000000000000000608082015260808152610989816119e3565b519020613a5f565b6125e9565b15610adb57506109ba65ffffffffffff60608301511665ffffffffffff4216612178565b956040519665ffffffffffff60608901911688526060602089015281518091526080880190602060808260051b8b01019301915f905b828210610a925750505050610a5565ffffffffffff60608194897f0aa12461ee6c137332989aa12cec79f4772ab2c1a8732a382aada7e9f3ec9d348c80610a47610a829e9f99610a5d9a810360408401528d61236b565b0390a2015116834216612178565b935151613c63565b9260405194610a6b866119ab565b8552166020840152604083015260608201526139ab565b905f525f60205260405f20555f80f35b90919293602080610acd837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808f60019603018652885161236b565b9601920192019092916109f0565b60649060206040519162461bcd60e51b8352820152601f60248201527f4368616c6c656e676572206973206e6f742061207061727469636970616e74006044820152fd5b60649060206040519162461bcd60e51b8352820152601860248201527f7475726e4e756d5265636f7264206465637265617365642e00000000000000006044820152fd5b6001610b6e87613949565b610b7781612111565b03610b8b57610b868587612a2c565b610915565b610b8686612ac0565b346100cf5760606003193601126100cf5767ffffffffffffffff81358181116100cf57610bc49036908401611e3e565b906024358181116100cf57610bdc90369085016120af565b926044359182116100cf57610bfa61092391610c2b93369101611f06565b610c0384613b3b565b9465ffffffffffff6040835101511694610c1c87612ac0565b610c268688612a2c565b612739565b610c3482613949565b610c5d604051610c43816119ab565b8381525f60208201525f60408201525f60608201526139ab565b835f525f60205260405f2055610c7281612111565b610ca35760207ff3f2d5574c50e581f1a2371fac7dee87f7c6d599a496765fbfa2547ce7fd5f1a91604051908152a2005b60207f07da0a0674fb921e484018c8b81d80e292745e5d8ed134b580c8b9c631c5e9e091604051908152a2005b346100cf576003196060813601126100cf5781359067ffffffffffffffff928383116100cf57828101833603946080848701126100cf57602435948186116100cf57366023870112156100cf5785840135958287116100cf573660248860051b830101116100cf57604435928084116100cf5760408785360301126100cf57604483019081359873ffffffffffffffffffffffffffffffffffffffff93848b16809b036100cf57610dbb91610d97610d9d92610d8c368c611e3e565b92602436920161203f565b9061289a565b95610db5610dab368a611e3e565b9136908b01611f06565b90612912565b966040519a7f9936d812000000000000000000000000000000000000000000000000000000008c526060828d01527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd60e48d01983591018112156100cf5785016024810197910135908282116100cf578160051b360388136100cf57608060648d01528190528a9897966101048a019695949392915f5b818110610f2d5750505094610ec69465ffffffffffff610ea26064878d9b975f9f9d99610eb7988e6084819f610e8d6024610e969601611e16565b16910152611ce1565b1660a48c015201611e2b565b1660c4880152848783030160248801526126e5565b918483030160448501526126c5565b03915afa908115610f22575f905f92610efd575b50610ef960405192839215158352604060208401526040830190611c15565b0390f35b9050610f1b91503d805f833e610f138183611a1b565b81019061267f565b9082610eda565b6040513d5f823e3d90fd5b9198999a5091929394959660019086610f458b611ce1565b168152602080910199019101918c9a9998979695949392610e52565b346100cf5760606003193601126100cf5767ffffffffffffffff9080358281116100cf57610f929036908301611ac6565b6024359283116100cf57610faf610fb892610ef994369101611ac6565b604435916132b3565b604051918291602083526020830190611c3a565b346100cf5760206003193601126100cf5773ffffffffffffffffffffffffffffffffffffffff61102f606092355f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b9092916040519365ffffffffffff8092168552166020840152166040820152f35b346100cf576060806003193601126100cf5760243567ffffffffffffffff81116100cf576110819036908401611d02565b9061108c833561383a565b6110a361109883613c63565b84359060443561378d565b600191805191601f196110b861019b85611a3e565b01905f5b8281106112dc575050506110d08151613918565b6110da8251613918565b915f5b81518110156111b6576110f081836125d5565b5160408101519061114a73ffffffffffffffffffffffffffffffffffffffff61111985876125d5565b51511692835f52600160205260405f208b355f5260205260405f205461113f86896125d5565b5261022e85886125d5565b90939291156111ae575b91602091869594936111696111a9988c6125d5565b526040611176878a6125d5565b51015201516040519261118884611962565b83526020830152604082015261119e82886125d5565b526102a181876125d5565b6110dd565b5f9a50611154565b509091925f5b8251811015611286578073ffffffffffffffffffffffffffffffffffffffff6111e861128193866125d5565b5151166111f582886125d5565b51815f526020906001825260405f208b355f52825261121960405f20918254612ef4565b905561122583886125d5565b51915f526001815260405f20908a355f52527fc36da2054c5669d6dac211b7366d59f2d369151c21edf4940468614b449e0b9a61036860405f20546040519182918d359587846040919493926060820195825260208201520152565b6111bc565b50858286156112bf5750355f525f6020525f60408120555b5f5b81518110156100cd57806103ae6103a86112ba93856125d5565b6112a0565b906112cc6112d792613c63565b906044359035613899565b61129e565b6020906040516112eb81611962565b5f81526040516112fa816119c7565b5f815283908582820152818301528460408301528288010152016110bc565b346100cf5760a06003193601126100cf5767ffffffffffffffff9080359060446024803582358681116100cf576113539036908601611a80565b946064968735906084359081116100cf576113719036908801611b96565b925f5b600181018082116115475785518110156113f35761139d61139583886125d5565b5191876125d5565b5111156113b2576113ad9061255e565b611374565b89887f496e6469636573206d75737420626520736f72746564000000000000000000008960168a60206040519562461bcd60e51b8752860152840152820152fd5b5050876115226100cd95946114078461383a565b836114208451946105b46020978897888401208a61378d565b907fc36da2054c5669d6dac211b7366d59f2d369151c21edf4940468614b449e0b9a73ffffffffffffffffffffffffffffffffffffffff988961146386866125d5565b515116805f526001885260405f20845f5288526114f161149760405f205493604061148e8a8a6125d5565b51015185612f01565b909d929150845f5260018c5260405f20885f528c526114bb60405f20918254612ef4565b905560406114c98a8a6125d5565b5101526040518a8101908b82526114e7816106e9604082018c613186565b5190209086613899565b5f908152600188526040808220858352895290819020548151878152602081019390935290820152606090a26125d5565b5193845116930151906040519361153885611962565b845283015260408201526135eb565b8660118a7f4e487b71000000000000000000000000000000000000000000000000000000005f52525ffd5b60806003193601126100cf57611586611cbe565b6024918235916064918235948460a01c1561183d5773ffffffffffffffffffffffffffffffffffffffff831693845f526020926001845260405f20875f52845260405f20549260443584036117fe578661169c5788340361165d575050507f87d4c0b5e30d6808bc8a94ba1c4d839b29d664151551a31753387ee9ef48429b949561161091612b1f565b925f526001815260405f2090855f52528160405f2055611658604051928392836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b0390a2005b601f90856040519362461bcd60e51b85528401528201527f496e636f7272656374206d73672e76616c756520666f72206465706f736974006044820152fd5b6117336040939293515f808883017f23b872dd00000000000000000000000000000000000000000000000000000000815233868501523060448501528d878501528684526116e9846119e3565b604051936116f6856119c7565b8a85527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648b8601525190828d5af161172c612b2c565b908a612b5b565b80518681159182156117df575b5050905015611778575050507f87d4c0b5e30d6808bc8a94ba1c4d839b29d664151551a31753387ee9ef48429b949561161091612b1f565b60849291602a7f6f7420737563636565640000000000000000000000000000000000000000000092876040519562461bcd60e51b87528601528401527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044840152820152fd5b83809293500103126100cf57856117f6910161263b565b80868c611740565b601490856040519362461bcd60e51b85528401528201527f68656c6420213d20657870656374656448656c640000000000000000000000006044820152fd5b601f91925060206040519362461bcd60e51b85528401528201527f4465706f73697420746f2065787465726e616c2064657374696e6174696f6e006044820152fd5b346100cf5760406003193601126100cf5773ffffffffffffffffffffffffffffffffffffffff6118ad611cbe565b165f52600160205260405f206024355f52602052602060405f2054604051908152f35b346100cf5760606003193601126100cf5767ffffffffffffffff6024358181116100cf576119019036908401611ac6565b906044359081116100cf57611943926119589261192461192b9336908401611b96565b9135612f01565b92939190604051958695608087526080870190611c3a565b91151560208601528482036040860152611c3a565b9060608301520390f35b6060810190811067ffffffffffffffff82111761197e57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761197e57604052565b6040810190811067ffffffffffffffff82111761197e57604052565b60a0810190811067ffffffffffffffff82111761197e57604052565b6020810190811067ffffffffffffffff82111761197e57604052565b90601f601f19910116810190811067ffffffffffffffff82111761197e57604052565b67ffffffffffffffff811161197e5760051b60200190565b359060ff821682036100cf57565b67ffffffffffffffff811161197e57601f01601f191660200190565b81601f820112156100cf57803590611a9782611a64565b92611aa56040519485611a1b565b828452602083830101116100cf57815f926020809301838601378301015290565b9080601f830112156100cf578135611add81611a3e565b92604091611aed83519586611a1b565b808552602093848087019260051b840101938185116100cf57858401925b858410611b1c575050505050505090565b67ffffffffffffffff84358181116100cf57860191608080601f1985880301126100cf57845190611b4c826119ab565b8a8501358252858501358b830152606090611b68828701611a56565b878401528501359384116100cf57611b87878c80979681970101611a80565b90820152815201930192611b0b565b81601f820112156100cf57803591611bad83611a3e565b92611bbb6040519485611a1b565b808452602092838086019260051b8201019283116100cf578301905b828210611be5575050505090565b81358152908301908301611bd7565b5f5b838110611c055750505f910152565b8181015183820152602001611bf6565b90601f19601f602093611c3381518092818752878088019101611bf4565b0116010190565b908082519081815260208091019281808460051b8301019501935f915b848310611c675750505050505090565b9091929394958480611cae83601f1986600196030187528a51805182528381015184830152604060ff81830151169083015260608091015191608080928201520190611c15565b9801930193019194939290611c57565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100cf57565b359073ffffffffffffffffffffffffffffffffffffffff821682036100cf57565b9080601f830112156100cf578135611d1981611a3e565b92604091611d2983519586611a1b565b808552602093848087019260051b840101938185116100cf57858401925b858410611d58575050505050505090565b67ffffffffffffffff84358181116100cf578601916060601f1990808286890301126100cf57855191611d8a83611962565b611d958c8701611ce1565b8352868601358581116100cf578790870191828a0301126100cf57865190611dbc826119c7565b8c81013560048110156100cf578252878101358681116100cf578d8a91611de4930101611a80565b8c8201528b8301528401359283116100cf57611e07868b80969581960101611ac6565b85820152815201930192611d47565b359067ffffffffffffffff821682036100cf57565b359065ffffffffffff821682036100cf57565b9190916080818403126100cf5760405190611e58826119ab565b8193813567ffffffffffffffff81116100cf5782019080601f830112156100cf57813590611e8582611a3e565b91611e936040519384611a1b565b808352602093848085019260051b8201019283116100cf578401905b828210611eef57505050606092611eea9284928652611ecf818301611e16565b90860152611edf60408201611ce1565b604086015201611e2b565b910152565b848091611efb84611ce1565b815201910190611eaf565b919060409283818303126100cf578351611f1f816119c7565b809482359067ffffffffffffffff918281116100cf578401916080838703126100cf57815194611f4e866119ab565b83358281116100cf5787611f63918601611d02565b8652602095868501358381116100cf5788611f7f918701611a80565b87820152611f8e848601611e2b565b8482015260608095013580151581036100cf57858201528552858101359182116100cf57019085601f830112156100cf57813590611fcb82611a3e565b96611fd882519889611a1b565b8288528685818a019402850101938185116100cf578701925b848410612002575050505050500152565b85848303126100cf57878691845161201981611962565b61202287611a56565b815282870135838201528587013586820152815201930192611ff1565b9291909261204c84611a3e565b9161205a6040519384611a1b565b829480845260208094019060051b8301928284116100cf5780915b84831061208457505050505050565b823567ffffffffffffffff81116100cf5786916120a48684938601611f06565b815201920191612075565b9080601f830112156100cf578160206120ca9335910161203f565b90565b9060406003198301126100cf5767ffffffffffffffff6004358181116100cf57836120fa91600401611e3e565b926024359182116100cf576120ca91600401611f06565b6003111561211b57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b156121505750565b6121749060405191829162461bcd60e51b8352602060048401526024830190611c15565b0390fd5b91909165ffffffffffff8080941691160191821161219257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b906080810182519060808352815180915260a0830190602060a08260051b8601019301915f905b8282106122275750505050606061220a819260208601518582036020870152611c15565b9365ffffffffffff60408201511660408501520151151591015290565b909192937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60868203018252845173ffffffffffffffffffffffffffffffffffffffff8151168252602081015160606020840152805160048082101561233f575060206040926122a7926060870152015182608086015260a0850190611c15565b910151916040818303910152815180825260208201906020808260051b8501019401925f5b8281106122ec5750505050506020806001929601920192019092916121e6565b909192939460208061233283601f198760019603018952608060608b5180518452858101518685015260ff60408201511660408501520151918160608201520190611c15565b97019501939291016122cc565b6021907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b805190612380604092838552838501906121bf565b9060208091015193818184039101528080855193848152019401925f905b8382106123ad57505050505090565b8451805160ff1687528084015187850152810151868201526060909501949382019360019091019061239e565b91906123e583613b3b565b926123ef84612ac0565b6060825101511561251a5760206124068383612912565b015190815f925b6124d7575060ff905151911603612493577f4f465027a3d06ea73dd12be0f5c5fc0a34e21f19d6eaed4834a7a944edabc9016020849261247f61245a65ffffffffffff4216925151613c63565b60405190612467826119ab565b5f825283858301525f604083015260608201526139ab565b845f525f835260405f2055604051908152a2565b606460405162461bcd60e51b815260206004820152600a60248201527f21756e616e696d6f7573000000000000000000000000000000000000000000006044820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019080821161219257169160ff80911690811461219257600101918061240d565b606460405162461bcd60e51b815260206004820152601360248201527f5374617465206d7573742062652066696e616c000000000000000000000000006044820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146121925760010190565b8051156125985760200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8051600110156125985760400190565b80518210156125985760209160051b010190565b5f5b82518110156126345773ffffffffffffffffffffffffffffffffffffffff8061261483866125d5565b51169083161461262c576126279061255e565b6125eb565b505050600190565b5050505f90565b519081151582036100cf57565b9092919261265581611a64565b916126636040519384611a1b565b8294828452828201116100cf57602061267d930190611bf4565b565b91906040838203126100cf576126948361263b565b9260208101519067ffffffffffffffff82116100cf57019080601f830112156100cf5781516120ca92602001612648565b906020806126dc84516040855260408501906121bf565b93015191015290565b90815180825260208092019182818360051b82019501935f915b84831061270f5750505050505090565b909192939495848061272983856001950387528a516126c5565b98019301930191949392906126ff565b9291604084019173ffffffffffffffffffffffffffffffffffffffff9161276e61276784865116938861289a565b9187612912565b6040519687947f9936d8120000000000000000000000000000000000000000000000000000000086526060600487015260e486019682516080606489015280518099526101048801986020809201905f5b818110612848575050505f9865ffffffffffff6060868b99968a999667ffffffffffffffff610eb7976128169b01511660848c0152511660a48a015201511660c487015260031993848783030160248801526126e5565b03915afa918215610f22575f90819361282e57509190565b906128449293503d8091833e610f138183611a1b565b9091565b825186168c529a83019a8d9a50918301916001016127bf565b6040519061286e826119c7565b5f60208360405161287e816119ab565b6060815260608382015283604082015283606082015281520152565b815191601f196128ac61019b85611a3e565b015f5b8181106128fb5750505f5b81518110156128f557806128db6128d46128f093856125d5565b5185612912565b6128e582876125d5565b526102a181866125d5565b6128ba565b50505090565b602090612906612861565b828288010152016128af565b919061291c612861565b508051906040519161292d836119c7565b8252602092838301925f9283855283955b808201805151881015612a205761296e9061296789612960869896518d613bec565b92516125d5565b5190613a5f565b92859473ffffffffffffffffffffffffffffffffffffffff809516955b8a518051821015612a10576129a18288926125d5565b511687146129b7576129b29061255e565b61298b565b929891955093509060ff81116129e3579060016129d9921b875117875261255e565b959291909261293e565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b505093509350956129d99061255e565b50505093509350505090565b612a66905f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b505065ffffffffffff80911691161115612a7c57565b606460405162461bcd60e51b815260206004820152601c60248201527f7475726e4e756d5265636f7264206e6f7420696e637265617365642e000000006044820152fd5b612acb600291613949565b612ad481612111565b14612adb57565b606460405162461bcd60e51b815260206004820152601260248201527f4368616e6e656c2066696e616c697a65642e00000000000000000000000000006044820152fd5b9190820180921161219257565b3d15612b56573d90612b3d82611a64565b91612b4b6040519384611a1b565b82523d5f602084013e565b606090565b91929015612bbc5750815115612b6f575090565b3b15612b785790565b606460405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156121505750805190602001fd5b9080601f830112156100cf5781516120ca92602001612648565b805181016020828203126100cf57602082015167ffffffffffffffff81116100cf5760208201603f8285010112156100cf576020818401015190612c2c82611a3e565b93612c3a6040519586611a1b565b82855260208501916020850160408560051b8385010101116100cf57604081830101925b60408560051b83850101018410612c785750505050505090565b835167ffffffffffffffff81116100cf5782840101601f1990606082828a0301126100cf5760405191612caa83611962565b604082015173ffffffffffffffffffffffffffffffffffffffff811681036100cf578352606082015167ffffffffffffffff81116100cf57604090830191828b0301126100cf5760405190612cfe826119c7565b604081015160048110156100cf57825260608101519067ffffffffffffffff82116100cf576040612d359260208d01920101612bcf565b60208201526020830152608081015167ffffffffffffffff81116100cf5760208901605f8284010112156100cf576040818301015190612d7482611a3e565b92612d826040519485611a1b565b828452602084019060208c0160608560051b8584010101116100cf57606083820101915b60608560051b85840101018310612dcf5750505050506040820152815260209384019301612c5e565b825167ffffffffffffffff81116100cf57608083860182018f037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001126100cf5760405191612e1d836119ab565b8386018201606081015184526080810151602085015260a0015160ff811681036100cf57604084015260c0828786010101519267ffffffffffffffff84116100cf578f602094936060869586612e7a9401928b8a01010101612bcf565b6060820152815201920191612da6565b90612e9482611a3e565b604090612ea382519182611a1b565b838152601f19612eb38295611a3e565b01915f91825b848110612ec7575050505050565b6020908351612ed5816119ab565b8581528286818301528686830152606080830152828501015201612eb9565b9190820391821161219257565b91929083518015155f1461317b57612f1890612e8a565b915f91612f258151612e8a565b9560019081809793895f9586935b612f41575b50505050505050565b90919293949597835185101561317257612f5b85856125d5565b5151612f6786856125d5565b515260409060ff8083612f7a89896125d5565b5101511683612f8989886125d5565b510152606080612f9989896125d5565b51015181612fa78a896125d5565b51015260209384612fb88a8a6125d5565b5101518681111561316c575085965b8d8b51908b8215928315613142575b5050505f146131115750600283828f612fef908c6125d5565b51015116146130ce578f96959493868f918f61308c906130929461309e988f988f908f916130989a898f946130678f8692886130428361303c8884613034848e6125d5565b510151612ef4565b936125d5565b51015261304f81876125d5565b5151988561305d83896125d5565b51015116956125d5565b51015194825196613077886119ab565b875286015284015282015261026983836125d5565b50612b1f565b9c61255e565b956125d5565b5101516130c6575b6130b9916130b391612ef4565b9361255e565b91909493928a9085612f33565b5f9a506130a6565b84606491519062461bcd60e51b82526004820152601b60248201527f63616e6e6f74207472616e7366657220612067756172616e74656500000000006044820152fd5b905061309e92508891508461312c83959e989796958a6125d5565b5101518461313a84846125d5565b5101526125d5565b821092509082613157575b50508e8b5f612fd6565b6131639192508d6125d5565b51148a8f61314d565b96612fc7565b97829150612f38565b50612f188151612e8a565b90815180825260208092019182818360051b82019501935f915b8483106131b05750505050505090565b9091929394958181038352865173ffffffffffffffffffffffffffffffffffffffff815116825285810151906060918288850152805160048082101561233f575091886132169285948796839801520151604092839182608088015260a0870190611c15565b91015193828183039101528351908181528581019286808460051b8401019601945f915b84831061325d5750505050505050908060019298019301930191949392906131a0565b919395978061329f89601f1987600196989a9c03018b526080878d5180518452858101518685015260ff89820151168985015201519181898201520190611c15565b99019701930190918b97969593949261323a565b80517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908111612192576132e890612e8a565b916132f384836125d5565b51606081015192604094855191613309836119c7565b5f958684528660208095015287818051810103126135e7578780519161332e836119c7565b85810151835201519084810191825287998890899c8a988b5b87518d10156134b0578f848e146134a1578c8f8f906133b4858f8f908f61336e87826125d5565b5151958261337c89846125d5565b51015160606133928a60ff8561305d83896125d5565b510151938251986133a28a6119ab565b895288015286015260608501526125d5565b526133bf848d6125d5565b508715908161348b575b50613451575b50158061343c575b6133ee575b6130926133e89161255e565b9b613347565b9e5098613431908f61341c8b6134128f61340883916125c5565b510151938d6125d5565b5101918251612b1f565b9052896134288d6125c5565b51015190612b1f565b60019e9099906133dc565b506134478d896125d5565b51518751146133d7565b829c919650613428818c61347a8f6134126134819882613471819961258b565b510151946125d5565b905261258b565b996001948c6133cf565b61349691508b6125d5565b51518851148f6133c9565b509b9d506133e860019e61255e565b509899509c969a995050939992505050156135a45715613561571561351e57830151036134dc57505090565b60649250519062461bcd60e51b825280600483015260248201527f746f74616c5265636c61696d6564213d67756172616e7465652e616d6f756e746044820152fd5b60648484519062461bcd60e51b82526004820152601460248201527f636f756c64206e6f742066696e642072696768740000000000000000000000006044820152fd5b60648585519062461bcd60e51b82526004820152601360248201527f636f756c64206e6f742066696e64206c656674000000000000000000000000006044820152fd5b60648686519062461bcd60e51b82526004820152601560248201527f636f756c64206e6f742066696e642074617267657400000000000000000000006044820152fd5b8680fd5b73ffffffffffffffffffffffffffffffffffffffff9081815116915f5b6040808401908151918251841015612f3857846136268580956125d5565b5151916136376020958692516125d5565b510151918060a01c155f146137635716876136b5575f80809381935af161365c612b2c565b501561367257505061366d9061255e565b613608565b60649250519062461bcd60e51b82526004820152601660248201527f436f756c64206e6f74207472616e7366657220455448000000000000000000006044820152fd5b82517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152602481019190915292919081846044815f8b5af190811561375a5750613724575b5061366d915061255e565b82813d8311613753575b6137388183611a1b565b810103126100cf5761374c61366d9261263b565b505f613719565b503d61372e565b513d5f823e3d90fd5b5f898152600186528481209181529452509120805461366d939261378691612b1f565b905561255e565b916137c8905f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b939150506137ec73ffffffffffffffffffffffffffffffffffffffff928392613a25565b169116036137f657565b606460405162461bcd60e51b815260206004820152601560248201527f696e636f72726563742066696e6765727072696e7400000000000000000000006044820152fd5b613845600291613949565b61384e81612111565b0361385557565b606460405162461bcd60e51b815260206004820152601660248201527f4368616e6e656c206e6f742066696e616c697a65642e000000000000000000006044820152fd5b919061390a916138d9845f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b509290604051936138e9856119ab565b65ffffffffffff8092168552166020840152604083015260608201526139ab565b905f525f60205260405f2055565b9061392282611a3e565b61392f6040519182611a1b565b828152601f1961393f8294611a3e565b0190602036910137565b61398a65ffffffffffff915f525f60205260405f20548060d01c9173ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8360a01c16921690565b5090501680155f1461399b57505f90565b42106139a657600290565b600190565b73ffffffffffffffffffffffffffffffffffffffff613a207fffffffffffff0000000000000000000000000000000000000000000000000000835160d01b1679ffffffffffff0000000000000000000000000000000000000000602085015160a01b1617926060604082015191015190613a25565b161790565b73ffffffffffffffffffffffffffffffffffffffff916040519060208201928352604082015260408152613a5881611962565b5190201690565b905f60806020926040948551858101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c8152613aa481611962565b5190209060ff8151169086868201519101519187519384528684015286830152606082015282805260015afa1561375a575f519073ffffffffffffffffffffffffffffffffffffffff821615613af8575090565b6064905162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152fd5b80519060209167ffffffffffffffff838301511673ffffffffffffffffffffffffffffffffffffffff9165ffffffffffff606084604087015116950151166040519485938785019760a086019060808a5285518092528060c088019601975f905b838210613bcf5750505050613bc9955060408501526060840152608083015203601f198101835282611a1b565b51902090565b895181168852988201988a98509682019660019190910190613b9c565b613bc9613bfb613c3992613b3b565b926020810151815191606065ffffffffffff6040830151169101511515613c4c60405196879460208601998a5260a0604087015260c0860190611c15565b601f199586868303016060870152613186565b91608084015260a083015203908101835282611a1b565b604051613bc9816106e9602082019460208652604083019061318656fea2646970667358221220cea1be1ecc243d3249a61fd5e941155c6ccde8b7ef0a2e7de6efadf8e45437ef64736f6c63430008140033", } // NitroAdjudicatorABI is the input ABI used to generate the binding from. diff --git a/node/engine/chainservice/consensusapp/ConsensusApp.go b/node/engine/chainservice/consensusapp/ConsensusApp.go index f4c52d773..f2bbeeeff 100644 --- a/node/engine/chainservice/consensusapp/ConsensusApp.go +++ b/node/engine/chainservice/consensusapp/ConsensusApp.go @@ -75,7 +75,7 @@ type INitroTypesVariablePart struct { // ConsensusAppMetaData contains all meta data concerning the ConsensusApp contract. var ConsensusAppMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"channelNonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"appDefinition\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"challengeDuration\",\"type\":\"uint48\"}],\"internalType\":\"structINitroTypes.FixedPart\",\"name\":\"fixedPart\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"signedBy\",\"type\":\"uint256\"}],\"internalType\":\"structINitroTypes.RecoveredVariablePart[]\",\"name\":\"proof\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"signedBy\",\"type\":\"uint256\"}],\"internalType\":\"structINitroTypes.RecoveredVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"}],\"name\":\"stateIsSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Bin: "0x6080806040523461001657610a4d908161001b8239f35b5f80fdfe6040610100815260049081361015610015575f80fd5b5f90813560e01c639936d8121461002a575f80fd5b3461040b576060917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc838136011261040b5784359067ffffffffffffffff908183116104075760808184360301126104075760249081359083821161040357366023830112156104035781890135908482116103ff57838260051b8401013681116103f757604435918683116103fb57899083360301126103f7576100cd61040f565b93878c01358781116103f3578801973660238a0112156103f3578c8901356100fc6100f7826104c0565b61047c565b998a91808c52896020809d019160051b830101913683116103ef578a8d9101915b8383106103d7575050505086528681013588811681036103d357610158916064918b89015261014e604482016104d8565b8d890152016104fd565b8b860152876101696100f7866104c0565b809581520190868101915b8383106103a9575050505061018c9036908b01610580565b905161034e57840151908186925b6102b5575060ff90515191160361025a5784519683880192831188841017610230575050839291959352808352815194859360018552838286015280518094860152825b84811061021a57505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016101de565b604185917f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b86600a606492858851937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f21756e616e696d6f7573000000000000000000000000000000000000000000006044820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019080821161032357169160ff8091169081146102f857600101918061019a565b838760118c7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b848860118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b606489600a85888b51937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f7c70726f6f667c213d30000000000000000000000000000000000000000000006044820152fd5b82358981116103cf578a916103c483928b3691870101610580565b815201920191610174565b8b80fd5b8a80fd5b81906103e2846104d8565b8152019101908c9061011d565b8d80fd5b8980fd5b8780fd5b8880fd5b8680fd5b8580fd5b8380fd5b5080fd5b604051906080820182811067ffffffffffffffff82111761042f57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051906040820182811067ffffffffffffffff82111761042f57604052565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff82111761042f57604052565b67ffffffffffffffff811161042f5760051b60200190565b359073ffffffffffffffffffffffffffffffffffffffff821682036104f957565b5f80fd5b359065ffffffffffff821682036104f957565b81601f820112156104f95780359067ffffffffffffffff821161042f5761055e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160161047c565b92828452602083830101116104f957815f926020809301838601378301015290565b604091816080528060a05203126104f95761059961045c565b60805180358060c05267ffffffffffffffff81116104f9576080910160a05103126104f9576105c661040f565b9060c051608051019267ffffffffffffffff8435116104f95760a0518435850190601f820112156104f95735916105ff6100f7846104c0565b91602083858152019460a051873560c05160805101019060208760051b830101116104f957939591949360200192905b873560c05160805101019160208660051b84010185101561099d5767ffffffffffffffff8535116104f95760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08635850160a0510301126104f9576040519283606081011067ffffffffffffffff6060860111176109705760206106be9160608601604052873501016104d8565b83528435893560c05160805101010160408101359067ffffffffffffffff82116104f9576040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910160a0510301126104f95761071a61045c565b85358a3560c0516080510101016004602060408301358301013510156104f9578060406020920135010135815285358a3560c05160805101010167ffffffffffffffff60408083013583010135116104f95760a051610789916040808201359091019081013501602001610510565b602082015260208401528435893560c05160805101010160e05267ffffffffffffffff606060e0510135116104f95760a05160e0516060810135019690603f880112156104f9576107e06100f760208901356104c0565b9860208a818a01358152019260a051606060e05101358d8a35903560c0516080510101010190604060208c013560051b830101116104f957604001935b606060e05101358d8a35903560c0516080510101010190604060208c013560051b83010186101561094e5785359167ffffffffffffffff83116104f9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0836080920160a0510301126104f9578160808f938c61089861040f565b95604083606060e05101358435843560c05189510101010101013587526060838160e05101358435843560c0518951010101010101356020880152606060e05101359135903560c05185510101010101013560ff811681036104f9578f906040850152606060e0510135908c35903560c05160805101010101019060a08201359267ffffffffffffffff84116104f95761093e602094936040869560a051920101610510565b606082015281520194019361081d565b5050604086019a909a529385529297929550506020938401939092019161062f565b60245f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b975094959350505050815260c0516080510160208101359067ffffffffffffffff82116104f9576109d29160a0519101610510565b60208201526109e9604060c05160805101016104fd565b6040820152606060c05160805101013580151581036104f9576060820152825260206080510135602083015256fea26469706673582212208f5328d70250f5cb2121fb776e35cf6e8913ac721ebbe8ab67b97723b95c6b5164736f6c63430008140033", + Bin: "0x6080806040523461001657610a4d908161001b8239f35b5f80fdfe6040610100815260049081361015610015575f80fd5b5f90813560e01c639936d8121461002a575f80fd5b3461040b576060917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc838136011261040b5784359067ffffffffffffffff908183116104075760808184360301126104075760249081359083821161040357366023830112156104035781890135908482116103ff57838260051b8401013681116103f757604435918683116103fb57899083360301126103f7576100cd61040f565b93878c01358781116103f3578801973660238a0112156103f3578c8901356100fc6100f7826104c0565b61047c565b998a91808c52896020809d019160051b830101913683116103ef578a8d9101915b8383106103d7575050505086528681013588811681036103d357610158916064918b89015261014e604482016104d8565b8d890152016104fd565b8b860152876101696100f7866104c0565b809581520190868101915b8383106103a9575050505061018c9036908b01610580565b905161034e57840151908186925b6102b5575060ff90515191160361025a5784519683880192831188841017610230575050839291959352808352815194859360018552838286015280518094860152825b84811061021a57505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016101de565b604185917f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b86600a606492858851937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f21756e616e696d6f7573000000000000000000000000000000000000000000006044820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019080821161032357169160ff8091169081146102f857600101918061019a565b838760118c7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b848860118d7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b606489600a85888b51937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f7c70726f6f667c213d30000000000000000000000000000000000000000000006044820152fd5b82358981116103cf578a916103c483928b3691870101610580565b815201920191610174565b8b80fd5b8a80fd5b81906103e2846104d8565b8152019101908c9061011d565b8d80fd5b8980fd5b8780fd5b8880fd5b8680fd5b8580fd5b8380fd5b5080fd5b604051906080820182811067ffffffffffffffff82111761042f57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051906040820182811067ffffffffffffffff82111761042f57604052565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff82111761042f57604052565b67ffffffffffffffff811161042f5760051b60200190565b359073ffffffffffffffffffffffffffffffffffffffff821682036104f957565b5f80fd5b359065ffffffffffff821682036104f957565b81601f820112156104f95780359067ffffffffffffffff821161042f5761055e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160161047c565b92828452602083830101116104f957815f926020809301838601378301015290565b604091816080528060a05203126104f95761059961045c565b60805180358060c05267ffffffffffffffff81116104f9576080910160a05103126104f9576105c661040f565b9060c051608051019267ffffffffffffffff8435116104f95760a0518435850190601f820112156104f95735916105ff6100f7846104c0565b91602083858152019460a051873560c05160805101019060208760051b830101116104f957939591949360200192905b873560c05160805101019160208660051b84010185101561099d5767ffffffffffffffff8535116104f95760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08635850160a0510301126104f9576040519283606081011067ffffffffffffffff6060860111176109705760206106be9160608601604052873501016104d8565b83528435893560c05160805101010160408101359067ffffffffffffffff82116104f9576040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910160a0510301126104f95761071a61045c565b85358a3560c0516080510101016004602060408301358301013510156104f9578060406020920135010135815285358a3560c05160805101010167ffffffffffffffff60408083013583010135116104f95760a051610789916040808201359091019081013501602001610510565b602082015260208401528435893560c05160805101010160e05267ffffffffffffffff606060e0510135116104f95760a05160e0516060810135019690603f880112156104f9576107e06100f760208901356104c0565b9860208a818a01358152019260a051606060e05101358d8a35903560c0516080510101010190604060208c013560051b830101116104f957604001935b606060e05101358d8a35903560c0516080510101010190604060208c013560051b83010186101561094e5785359167ffffffffffffffff83116104f9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0836080920160a0510301126104f9578160808f938c61089861040f565b95604083606060e05101358435843560c05189510101010101013587526060838160e05101358435843560c0518951010101010101356020880152606060e05101359135903560c05185510101010101013560ff811681036104f9578f906040850152606060e0510135908c35903560c05160805101010101019060a08201359267ffffffffffffffff84116104f95761093e602094936040869560a051920101610510565b606082015281520194019361081d565b5050604086019a909a529385529297929550506020938401939092019161062f565b60245f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b975094959350505050815260c0516080510160208101359067ffffffffffffffff82116104f9576109d29160a0519101610510565b60208201526109e9604060c05160805101016104fd565b6040820152606060c05160805101013580151581036104f9576060820152825260206080510135602083015256fea264697066735822122097eee5f1b78e2cb01d99b9411d7f631f2cb1d51241ef72d37a1f030d8f9acf9264736f6c63430008140033", } // ConsensusAppABI is the input ABI used to generate the binding from. diff --git a/node/engine/chainservice/erc20/Token.go b/node/engine/chainservice/erc20/Token.go index f31297042..a334a8717 100644 --- a/node/engine/chainservice/erc20/Token.go +++ b/node/engine/chainservice/erc20/Token.go @@ -32,7 +32,7 @@ var ( // TokenMetaData contains all meta data concerning the Token contract. var TokenMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608034620003d457601f19906001600160401b03601f62000fbb388190038281018616850184811186821017620003d857859282916040528339602094859181010312620003d457516001600160a01b0381169490859003620003d45762000066620003ec565b9260098452682a32b9ba2a37b5b2b760b91b8585015262000086620003ec565b60049485825263151154d560e21b87830152805191838311620002e3576003928354926001938481811c91168015620003c9575b8b821014620003b65790818984931162000363575b508a9089831160011462000302575f92620002f6575b50505f1982861b1c191690831b1783555b8051938411620002e35786548281811c91168015620002d8575b89821014620002c5578681116200027d575b5087908685116001146200021857849550908492915f956200020c575b50501b925f19911b1c19161782555b8315620001cc57506002546402540be40091828201809211620001b957506002555f838152808352604080822080548401905551918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a3604051610bae90816200040d8239f35b601190634e487b7160e01b5f525260245ffd5b6064926040519262461bcd60e51b845283015260248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b015193505f806200013f565b929194841692875f5284895f20945f5b8b898383106200026557505050106200024b575b50505050811b0182556200014e565b01519060f8845f19921b161c191690555f8080806200023c565b86860151895590970196948501948893500162000228565b875f52885f208780870160051c8201928b8810620002bb575b0160051c019083905b828110620002af57505062000122565b5f81550183906200029f565b9250819262000296565b602288634e487b7160e01b5f525260245ffd5b90607f169062000110565b604187634e487b7160e01b5f525260245ffd5b015190505f80620000e5565b908886941691875f528c5f20928d5f905b8282106200034b575050841162000333575b505050811b018355620000f6565b01515f1983881b60f8161c191690555f808062000325565b83850151865589979095019493840193018e62000313565b909150855f528a5f208980850160051c8201928d8610620003ac575b918791869594930160051c01915b8281106200039d575050620000cf565b5f81558594508791016200038d565b925081926200037f565b60228a634e487b7160e01b5f525260245ffd5b90607f1690620000ba565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b60408051919082016001600160401b03811183821017620003d85760405256fe6080604081815260049182361015610015575f80fd5b5f92833560e01c91826306fdde031461062757508163095ea7b3146105fd57816318160ddd146105de57816323b872dd146104ce578163313ce567146104b2578163395093511461042657816370a08231146103e357816395d89b411461020b578163a457c2d71461012357508063a9059cbb146100f35763dd62ed3e1461009b575f80fd5b346100ef57806003193601126100ef57806020926100b76107af565b6100bf6107d6565b73ffffffffffffffffffffffffffffffffffffffff91821683526001865283832091168252845220549051908152f35b5080fd5b50346100ef57806003193601126100ef5760209061011c6101126107af565b60243590336107f9565b5160018152f35b9050823461020857826003193601126102085761013e6107af565b918360243592338152600160205281812073ffffffffffffffffffffffffffffffffffffffff861682526020522054908282106101855760208561011c8585038733610a07565b60849060208651917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152fd5b80fd5b8383346100ef57816003193601126100ef57805190828454600181811c908083169283156103d9575b60209384841081146103ad57838852879594939291811561035257506001146102d6575b50505003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019267ffffffffffffffff8411838510176102aa57508291826102a692528261074b565b0390f35b806041867f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b8888529193925086917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061033c57505050907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092601f92820101918193610258565b8054888501870152879450928501928101610301565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016848701525050151560051b830101905081601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610258565b60248960228c7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b91607f1691610234565b5050346100ef5760206003193601126100ef578060209273ffffffffffffffffffffffffffffffffffffffff6104176107af565b16815280845220549051908152f35b8284346102085781600319360112610208576104406107af565b338252600160205282822073ffffffffffffffffffffffffffffffffffffffff82168352602052828220549160243583018093116104865760208461011c858533610a07565b806011867f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b5050346100ef57816003193601126100ef576020905160128152f35b839150346100ef5760606003193601126100ef576104ea6107af565b6104f26107d6565b91846044359473ffffffffffffffffffffffffffffffffffffffff8416815260016020528181203382526020522054907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610558575b60208661011c8787876107f9565b84821061058157509183916105766020969561011c95033383610a07565b91939481935061054a565b60649060208751917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100ef57816003193601126100ef576020906002549051908152f35b5050346100ef57806003193601126100ef5760209061011c61061d6107af565b6024359033610a07565b8490843461074757826003193601126107475782600354600181811c9080831692831561073d575b60209384841081146103ad57838852879594939291811561035257506001146106c05750505003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019267ffffffffffffffff8411838510176102aa57508291826102a692528261074b565b600388529193925086917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061072757505050907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092601f92820101918193610258565b80548885018701528794509285019281016106ec565b91607f169161064f565b8280fd5b6020808252825181830181905293925f5b85811061079b575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f845f6040809697860101520116010190565b81810183015184820160400152820161075c565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036107d257565b5f80fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036107d257565b73ffffffffffffffffffffffffffffffffffffffff80911691821561098357169182156108ff575f8281528060205260408120549180831061087b57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff809116918215610af55716918215610a715760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f526001825260405f20855f5282528060405f2055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fdfea264697066735822122007db7b6a08f8f0ac2e43b141725af2341dd1ebb30b51582400c2f923040fd53964736f6c63430008140033", + Bin: "0x608034620003d457601f19906001600160401b03601f62000fbb388190038281018616850184811186821017620003d857859282916040528339602094859181010312620003d457516001600160a01b0381169490859003620003d45762000066620003ec565b9260098452682a32b9ba2a37b5b2b760b91b8585015262000086620003ec565b60049485825263151154d560e21b87830152805191838311620002e3576003928354926001938481811c91168015620003c9575b8b821014620003b65790818984931162000363575b508a9089831160011462000302575f92620002f6575b50505f1982861b1c191690831b1783555b8051938411620002e35786548281811c91168015620002d8575b89821014620002c5578681116200027d575b5087908685116001146200021857849550908492915f956200020c575b50501b925f19911b1c19161782555b8315620001cc57506002546402540be40091828201809211620001b957506002555f838152808352604080822080548401905551918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a3604051610bae90816200040d8239f35b601190634e487b7160e01b5f525260245ffd5b6064926040519262461bcd60e51b845283015260248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b015193505f806200013f565b929194841692875f5284895f20945f5b8b898383106200026557505050106200024b575b50505050811b0182556200014e565b01519060f8845f19921b161c191690555f8080806200023c565b86860151895590970196948501948893500162000228565b875f52885f208780870160051c8201928b8810620002bb575b0160051c019083905b828110620002af57505062000122565b5f81550183906200029f565b9250819262000296565b602288634e487b7160e01b5f525260245ffd5b90607f169062000110565b604187634e487b7160e01b5f525260245ffd5b015190505f80620000e5565b908886941691875f528c5f20928d5f905b8282106200034b575050841162000333575b505050811b018355620000f6565b01515f1983881b60f8161c191690555f808062000325565b83850151865589979095019493840193018e62000313565b909150855f528a5f208980850160051c8201928d8610620003ac575b918791869594930160051c01915b8281106200039d575050620000cf565b5f81558594508791016200038d565b925081926200037f565b60228a634e487b7160e01b5f525260245ffd5b90607f1690620000ba565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b60408051919082016001600160401b03811183821017620003d85760405256fe6080604081815260049182361015610015575f80fd5b5f92833560e01c91826306fdde031461062757508163095ea7b3146105fd57816318160ddd146105de57816323b872dd146104ce578163313ce567146104b2578163395093511461042657816370a08231146103e357816395d89b411461020b578163a457c2d71461012357508063a9059cbb146100f35763dd62ed3e1461009b575f80fd5b346100ef57806003193601126100ef57806020926100b76107af565b6100bf6107d6565b73ffffffffffffffffffffffffffffffffffffffff91821683526001865283832091168252845220549051908152f35b5080fd5b50346100ef57806003193601126100ef5760209061011c6101126107af565b60243590336107f9565b5160018152f35b9050823461020857826003193601126102085761013e6107af565b918360243592338152600160205281812073ffffffffffffffffffffffffffffffffffffffff861682526020522054908282106101855760208561011c8585038733610a07565b60849060208651917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152fd5b80fd5b8383346100ef57816003193601126100ef57805190828454600181811c908083169283156103d9575b60209384841081146103ad57838852879594939291811561035257506001146102d6575b50505003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019267ffffffffffffffff8411838510176102aa57508291826102a692528261074b565b0390f35b806041867f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b8888529193925086917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061033c57505050907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092601f92820101918193610258565b8054888501870152879450928501928101610301565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016848701525050151560051b830101905081601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610258565b60248960228c7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b91607f1691610234565b5050346100ef5760206003193601126100ef578060209273ffffffffffffffffffffffffffffffffffffffff6104176107af565b16815280845220549051908152f35b8284346102085781600319360112610208576104406107af565b338252600160205282822073ffffffffffffffffffffffffffffffffffffffff82168352602052828220549160243583018093116104865760208461011c858533610a07565b806011867f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b5050346100ef57816003193601126100ef576020905160128152f35b839150346100ef5760606003193601126100ef576104ea6107af565b6104f26107d6565b91846044359473ffffffffffffffffffffffffffffffffffffffff8416815260016020528181203382526020522054907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610558575b60208661011c8787876107f9565b84821061058157509183916105766020969561011c95033383610a07565b91939481935061054a565b60649060208751917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100ef57816003193601126100ef576020906002549051908152f35b5050346100ef57806003193601126100ef5760209061011c61061d6107af565b6024359033610a07565b8490843461074757826003193601126107475782600354600181811c9080831692831561073d575b60209384841081146103ad57838852879594939291811561035257506001146106c05750505003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019267ffffffffffffffff8411838510176102aa57508291826102a692528261074b565b600388529193925086917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061072757505050907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092601f92820101918193610258565b80548885018701528794509285019281016106ec565b91607f169161064f565b8280fd5b6020808252825181830181905293925f5b85811061079b575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f845f6040809697860101520116010190565b81810183015184820160400152820161075c565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036107d257565b5f80fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036107d257565b73ffffffffffffffffffffffffffffffffffffffff80911691821561098357169182156108ff575f8281528060205260408120549180831061087b57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff809116918215610af55716918215610a715760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f526001825260405f20855f5282528060405f2055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fdfea26469706673582212203169db5666c3110dc6d3209a2dc35968ba97ffee02af083ba3cb0dedbb7045f164736f6c63430008140033", } // TokenABI is the input ABI used to generate the binding from. diff --git a/node/engine/chainservice/virtualpaymentapp/VirtualPaymentApp.go b/node/engine/chainservice/virtualpaymentapp/VirtualPaymentApp.go index 9a4644faa..12fce2dc7 100644 --- a/node/engine/chainservice/virtualpaymentapp/VirtualPaymentApp.go +++ b/node/engine/chainservice/virtualpaymentapp/VirtualPaymentApp.go @@ -75,7 +75,7 @@ type INitroTypesVariablePart struct { // VirtualPaymentAppMetaData contains all meta data concerning the VirtualPaymentApp contract. var VirtualPaymentAppMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"channelNonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"appDefinition\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"challengeDuration\",\"type\":\"uint48\"}],\"internalType\":\"structINitroTypes.FixedPart\",\"name\":\"fixedPart\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"signedBy\",\"type\":\"uint256\"}],\"internalType\":\"structINitroTypes.RecoveredVariablePart[]\",\"name\":\"proof\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enumExitFormat.AssetType\",\"name\":\"assetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.AssetMetadata\",\"name\":\"assetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"destination\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"allocationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"structExitFormat.Allocation[]\",\"name\":\"allocations\",\"type\":\"tuple[]\"}],\"internalType\":\"structExitFormat.SingleAssetExit[]\",\"name\":\"outcome\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"uint48\",\"name\":\"turnNum\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structINitroTypes.VariablePart\",\"name\":\"variablePart\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"signedBy\",\"type\":\"uint256\"}],\"internalType\":\"structINitroTypes.RecoveredVariablePart\",\"name\":\"candidate\",\"type\":\"tuple\"}],\"name\":\"stateIsSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Bin: "0x60808060405234610016576111bf908161001b8239f35b5f80fdfe60c06040526004361015610011575f80fd5b5f803560e01c639936d81214610025575f80fd5b346101515760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc818136011261014d5760043567ffffffffffffffff918282116101495760808183360301126101495760243591838311610141573660238401121561014157826004013591848311610145573660248460051b86010111610145576044359485116101455760409085360301126101415760246100d2946004019301906004016105eb565b604051938492151583526020604081850152825192836040860152825b84811061012b57505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100ef565b8580fd5b8680fd5b8480fd5b8280fd5b80fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101a8570180359067ffffffffffffffff82116101a857602001918160051b360383136101a857565b5f80fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81813603018212156101a8570190565b3565ffffffffffff811681036101a85790565b6060810190811067ffffffffffffffff82111761020e57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761020e57604052565b6080810190811067ffffffffffffffff82111761020e57604052565b6020810190811067ffffffffffffffff82111761020e57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761020e57604052565b9015610309578035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1813603018212156101a8570190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b67ffffffffffffffff811161020e5760051b60200190565b359073ffffffffffffffffffffffffffffffffffffffff821682036101a857565b92919267ffffffffffffffff821161020e57604051916103b760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116018461028f565b8294818452818301116101a8578281602093845f960137010152565b9080601f830112156101a8578160206103ee9335910161036f565b90565b90929192608093845261040381610336565b906040906104138251938461028f565b8295818452602060a0948186520192600592831b860195825187116101a85780945b878610610446575050505050505050565b67ffffffffffffffff86358181116101a85783019060608083885103126101a857855192610473846101f2565b61047c8161034e565b84528a518101358381116101a857810187818a5103126101a8578751906104a28261023b565b803560048110156101a85782528c51810135908582116101a8576104c9918b5191016103d3565b8c518201528b5185015286810135908382116101a85701908751601f830112156101a8578135906104f982610336565b936105068951958661028f565b8285528c519384808701948d1b820101948b5186116101a85781015b858110610542575050505050508482015281528651019486510194610435565b80358381116101a8578201948c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08782510301126101a8578f958c519061058882610257565b875181013582528d81013588518301528681013560ff811681036101a857828f0152808f01358681116101a8578f916105c79251918a519101016103d3565b868201528152855101945101610522565b359065ffffffffffff821682036101a857565b9092918015610ff7576001811461065a5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6261642070726f6f66206c656e677468000000000000000000000000000000006044820152fd5b61066481856102d0565b61066e8380610154565b9190506040813603126101a8576040516106878161023b565b813567ffffffffffffffff81116101a8578201906080823603126101a857604051916106b283610257565b803567ffffffffffffffff81116101a857810136601f820112156101a8576106e19036906020813591016103f1565b8352602081013567ffffffffffffffff81116101a85761070490369083016103d3565b60208401526060610717604083016105d8565b916040850192835201359283151584036101a857602065ffffffffffff93826001966060849501528152019401358452511603610f995761075a60ff915161113a565b1603610f3b57600265ffffffffffff61077e604061077887806101ac565b016101df565b1603610edd5761078e8280610154565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810191508111610c8e576001809160ff602087013591161c1603610e7f576107d783806101ac565b6020810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101a8570180359067ffffffffffffffff82116101a85760200181360381136101a85761083391369161036f565b916080813603126101a8576040519061084b82610257565b803567ffffffffffffffff81116101a857810136601f820112156101a85780359061087582610336565b91610883604051938461028f565b80835260208084019160051b830101913683116101a857602001905b828210610e67575050508252602081013567ffffffffffffffff811681036101a8576108e49160609160208501526108d96040820161034e565b6040850152016105d8565b606082015282805181010392608084126101a85760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604051956109288761023b565b6020840151875201126101a85760405190610942826101f2565b60408101519060ff821682036101a857608091835260608101516020840152015160408201526020840152805167ffffffffffffffff6020830151169073ffffffffffffffffffffffffffffffffffffffff60408401511665ffffffffffff606085015116906040519360a08501608060208701528451809152602060c087019501905f5b818110610e3b57505050845f946080948294610a1994604060209a0152606084015285830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261028f565b838151910120865160405190858201928352604082015260408152610a3d816101f2565b5190208387015190604051858101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c8152610a81816101f2565b5190209060ff8151169060408682015191015191604051938452868401526040830152606082015282805260015afa15610e305773ffffffffffffffffffffffffffffffffffffffff5f5116908115610dd257610af373ffffffffffffffffffffffffffffffffffffffff915161112d565b511603610d7457610b37610b2d610b24610b1e610b18610b1e95610b3f9751996102d0565b806101ac565b80610154565b939095806101ac565b94909236916103f1565b9236916103f1565b90600181511480610d69575b80610d41575b80610d19575b15610cbb576020610b856040610b7483610b7c83610b748961112d565b51015161112d565b5101519461112d565b51015190838203918211610c8e5703610c3057610ba360409161112d565b51015180516001101561030957604001516020015103610bd257600190604051610bcc81610273565b5f815290565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f426f62206e6f742061646a757374656420636f72726563746c790000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f416c696365206e6f742061646a757374656420636f72726563746c79000000006044820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f6f6e6c79206e617469766520617373657420616c6c6f776564000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff610d388361112d565b51511615610b57565b5073ffffffffffffffffffffffffffffffffffffffff610d608261112d565b51511615610b51565b506001825114610b4b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e76616c6964207369676e617475726520666f7220766f75636865720000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152fd5b6040513d5f823e3d90fd5b825173ffffffffffffffffffffffffffffffffffffffff168752602096870196909201916001016109c7565b60208091610e748461034e565b81520191019061089f565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f726564656d7074696f6e206e6f74207369676e656420627920426f62000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f6261642063616e646964617465207475726e4e756d3b207c70726f6f667c3d316044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f706f737466756e642021756e616e696d6f75733b207c70726f6f667c3d3100006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6261642070726f6f665b305d2e7475726e4e756d3b207c70726f6f667c3d31006044820152fd5b5090915060ff61101461100d602085013561113a565b9280610154565b92905016036110cf5765ffffffffffff80611034604061077885806101ac565b16156110be5761104b6040610778846001956101ac565b16146110af5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f6261642063616e646964617465207475726e4e756d3b207c70726f6f667c3d306044820152fd5b600190604051610bcc81610273565b5050600190604051610bcc81610273565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f21756e616e696d6f75733b207c70726f6f667c3d3000000000000000000000006044820152fd5b8051156103095760200190565b805f915b611146575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190808211610c8e57169060ff809116908114610c8e57600101908061113e56fea26469706673582212201bcb27b844bea3cf54a921d872a5202e830548ca31a6511e8bb8b1ec193693fc64736f6c63430008140033", + Bin: "0x60808060405234610016576111bf908161001b8239f35b5f80fdfe60c06040526004361015610011575f80fd5b5f803560e01c639936d81214610025575f80fd5b346101515760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc818136011261014d5760043567ffffffffffffffff918282116101495760808183360301126101495760243591838311610141573660238401121561014157826004013591848311610145573660248460051b86010111610145576044359485116101455760409085360301126101415760246100d2946004019301906004016105eb565b604051938492151583526020604081850152825192836040860152825b84811061012b57505050828201840152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168101030190f35b81810183015188820188015287955082016100ef565b8580fd5b8680fd5b8480fd5b8280fd5b80fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101a8570180359067ffffffffffffffff82116101a857602001918160051b360383136101a857565b5f80fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81813603018212156101a8570190565b3565ffffffffffff811681036101a85790565b6060810190811067ffffffffffffffff82111761020e57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761020e57604052565b6080810190811067ffffffffffffffff82111761020e57604052565b6020810190811067ffffffffffffffff82111761020e57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761020e57604052565b9015610309578035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1813603018212156101a8570190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b67ffffffffffffffff811161020e5760051b60200190565b359073ffffffffffffffffffffffffffffffffffffffff821682036101a857565b92919267ffffffffffffffff821161020e57604051916103b760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116018461028f565b8294818452818301116101a8578281602093845f960137010152565b9080601f830112156101a8578160206103ee9335910161036f565b90565b90929192608093845261040381610336565b906040906104138251938461028f565b8295818452602060a0948186520192600592831b860195825187116101a85780945b878610610446575050505050505050565b67ffffffffffffffff86358181116101a85783019060608083885103126101a857855192610473846101f2565b61047c8161034e565b84528a518101358381116101a857810187818a5103126101a8578751906104a28261023b565b803560048110156101a85782528c51810135908582116101a8576104c9918b5191016103d3565b8c518201528b5185015286810135908382116101a85701908751601f830112156101a8578135906104f982610336565b936105068951958661028f565b8285528c519384808701948d1b820101948b5186116101a85781015b858110610542575050505050508482015281528651019486510194610435565b80358381116101a8578201948c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08782510301126101a8578f958c519061058882610257565b875181013582528d81013588518301528681013560ff811681036101a857828f0152808f01358681116101a8578f916105c79251918a519101016103d3565b868201528152855101945101610522565b359065ffffffffffff821682036101a857565b9092918015610ff7576001811461065a5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6261642070726f6f66206c656e677468000000000000000000000000000000006044820152fd5b61066481856102d0565b61066e8380610154565b9190506040813603126101a8576040516106878161023b565b813567ffffffffffffffff81116101a8578201906080823603126101a857604051916106b283610257565b803567ffffffffffffffff81116101a857810136601f820112156101a8576106e19036906020813591016103f1565b8352602081013567ffffffffffffffff81116101a85761070490369083016103d3565b60208401526060610717604083016105d8565b916040850192835201359283151584036101a857602065ffffffffffff93826001966060849501528152019401358452511603610f995761075a60ff915161113a565b1603610f3b57600265ffffffffffff61077e604061077887806101ac565b016101df565b1603610edd5761078e8280610154565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810191508111610c8e576001809160ff602087013591161c1603610e7f576107d783806101ac565b6020810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101a8570180359067ffffffffffffffff82116101a85760200181360381136101a85761083391369161036f565b916080813603126101a8576040519061084b82610257565b803567ffffffffffffffff81116101a857810136601f820112156101a85780359061087582610336565b91610883604051938461028f565b80835260208084019160051b830101913683116101a857602001905b828210610e67575050508252602081013567ffffffffffffffff811681036101a8576108e49160609160208501526108d96040820161034e565b6040850152016105d8565b606082015282805181010392608084126101a85760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604051956109288761023b565b6020840151875201126101a85760405190610942826101f2565b60408101519060ff821682036101a857608091835260608101516020840152015160408201526020840152805167ffffffffffffffff6020830151169073ffffffffffffffffffffffffffffffffffffffff60408401511665ffffffffffff606085015116906040519360a08501608060208701528451809152602060c087019501905f5b818110610e3b57505050845f946080948294610a1994604060209a0152606084015285830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261028f565b838151910120865160405190858201928352604082015260408152610a3d816101f2565b5190208387015190604051858101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c8152610a81816101f2565b5190209060ff8151169060408682015191015191604051938452868401526040830152606082015282805260015afa15610e305773ffffffffffffffffffffffffffffffffffffffff5f5116908115610dd257610af373ffffffffffffffffffffffffffffffffffffffff915161112d565b511603610d7457610b37610b2d610b24610b1e610b18610b1e95610b3f9751996102d0565b806101ac565b80610154565b939095806101ac565b94909236916103f1565b9236916103f1565b90600181511480610d69575b80610d41575b80610d19575b15610cbb576020610b856040610b7483610b7c83610b748961112d565b51015161112d565b5101519461112d565b51015190838203918211610c8e5703610c3057610ba360409161112d565b51015180516001101561030957604001516020015103610bd257600190604051610bcc81610273565b5f815290565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f426f62206e6f742061646a757374656420636f72726563746c790000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f416c696365206e6f742061646a757374656420636f72726563746c79000000006044820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f6f6e6c79206e617469766520617373657420616c6c6f776564000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff610d388361112d565b51511615610b57565b5073ffffffffffffffffffffffffffffffffffffffff610d608261112d565b51511615610b51565b506001825114610b4b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f696e76616c6964207369676e617475726520666f7220766f75636865720000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152fd5b6040513d5f823e3d90fd5b825173ffffffffffffffffffffffffffffffffffffffff168752602096870196909201916001016109c7565b60208091610e748461034e565b81520191019061089f565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f726564656d7074696f6e206e6f74207369676e656420627920426f62000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f6261642063616e646964617465207475726e4e756d3b207c70726f6f667c3d316044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f706f737466756e642021756e616e696d6f75733b207c70726f6f667c3d3100006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f6261642070726f6f665b305d2e7475726e4e756d3b207c70726f6f667c3d31006044820152fd5b5090915060ff61101461100d602085013561113a565b9280610154565b92905016036110cf5765ffffffffffff80611034604061077885806101ac565b16156110be5761104b6040610778846001956101ac565b16146110af5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f6261642063616e646964617465207475726e4e756d3b207c70726f6f667c3d306044820152fd5b600190604051610bcc81610273565b5050600190604051610bcc81610273565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f21756e616e696d6f75733b207c70726f6f667c3d3000000000000000000000006044820152fd5b8051156103095760200190565b805f915b611146575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190808211610c8e57169060ff809116908114610c8e57600101908061113e56fea264697066735822122027350ec4f707020d05bf4f616324db9ebd25f1041382401342b89ea575c7f7ee64736f6c63430008140033", } // VirtualPaymentAppABI is the input ABI used to generate the binding from. diff --git a/packages/nitro-protocol/contracts/ConsensusApp.sol b/packages/nitro-protocol/contracts/ConsensusApp.sol index bdf25b6da..019f821cb 100644 --- a/packages/nitro-protocol/contracts/ConsensusApp.sol +++ b/packages/nitro-protocol/contracts/ConsensusApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import {IForceMoveApp} from './interfaces/IForceMoveApp.sol'; import {Consensus} from './libraries/signature-logic/Consensus.sol'; diff --git a/packages/nitro-protocol/contracts/CountingApp.sol b/packages/nitro-protocol/contracts/CountingApp.sol index d2513598e..21783882b 100644 --- a/packages/nitro-protocol/contracts/CountingApp.sol +++ b/packages/nitro-protocol/contracts/CountingApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import {ExitFormat as Outcome} from '@statechannels/exit-format/contracts/ExitFormat.sol'; import {StrictTurnTaking} from './libraries/signature-logic/StrictTurnTaking.sol'; diff --git a/packages/nitro-protocol/contracts/InterestBearingApp.sol b/packages/nitro-protocol/contracts/InterestBearingApp.sol index 45a58c706..3c9b3c9ea 100644 --- a/packages/nitro-protocol/contracts/InterestBearingApp.sol +++ b/packages/nitro-protocol/contracts/InterestBearingApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import {IForceMoveApp} from './interfaces/IForceMoveApp.sol'; import {Consensus} from './libraries/signature-logic/Consensus.sol'; diff --git a/packages/nitro-protocol/contracts/TrivialApp.sol b/packages/nitro-protocol/contracts/TrivialApp.sol index 293a73732..5ee230b3b 100644 --- a/packages/nitro-protocol/contracts/TrivialApp.sol +++ b/packages/nitro-protocol/contracts/TrivialApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import {IForceMoveApp} from './interfaces/IForceMoveApp.sol'; diff --git a/packages/nitro-protocol/contracts/VirtualPaymentApp.sol b/packages/nitro-protocol/contracts/VirtualPaymentApp.sol index 6802e673d..4d86ade40 100644 --- a/packages/nitro-protocol/contracts/VirtualPaymentApp.sol +++ b/packages/nitro-protocol/contracts/VirtualPaymentApp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import {IForceMoveApp} from './interfaces/IForceMoveApp.sol'; import {NitroUtils} from './libraries/NitroUtils.sol'; diff --git a/packages/nitro-protocol/gas-benchmarks/gasResults.json b/packages/nitro-protocol/gas-benchmarks/gasResults.json index 96a58f682..755e0971e 100644 --- a/packages/nitro-protocol/gas-benchmarks/gasResults.json +++ b/packages/nitro-protocol/gas-benchmarks/gasResults.json @@ -1,7 +1,7 @@ { "deployInfrastructureContracts": { "satp": { - "NitroAdjudicator": 3405607 + "NitroAdjudicator": 3405619 } }, "directlyFundAChannelWithETHFirst": {